/**
1.光标的属性
%found %notfound
%isopen 判断光标是否打开
%rowcount 影响行数---而非总行数
2.光标数的限制--光标打开了一定要关闭-
光标打开超出配置极限会报错;
默认情况下,oracel一个会话中最多可以打开300个光标
*/
set serveroutput on
declare
--定义光标
cursor cemp is select empno,empjob from emp;
pempno emp.empno%type;
pjob emp.empjob%type;
begin
--打开光标
open cemp;
loop
--取出一条记录
fetch cemp into pempno,pjob;
exit when cemp%notfound;
--打印rowcount的值
dbms_output.put_line('rowcount:'||cemp%rowcount);
end loop;
--关闭光标
close cemp;
end;
/
连接超级管理,查看cursor相关的参数
open_cursors 一个会话中光标的最多数量,300是不够使用的;
alter system set open_cursors=400 scope=both;
scope的取值
memory,----只更改当前示例,不更改参数文件
spfile--只更改参数文件,不更改当前示例,需要重启数据库
both---包含以上2种更改;
SQL> conn sys/123456 as sysdba
已连接。
SQL> show user
USER 为 "SYS"
SQL> show parameter %cursor%
NAME TYPE VALUE
------------------------------------ ----------- -------------
cursor_sharing string EXACT
cursor_space_for_time boolean FALSE
open_cursors integer 300
session_cached_cursors integer 50
光标数的限制:
每个会话中只允许300个光标存在,可通过sys用户账号登录,通过show parameter cursor 来查询。
可通过改语句进行修改,alter system set open_cursors=20000 scope=both; --修改最大游标数
光标的属性:
%found(结果true、false) %notfound (与%found取反)
%isopen 是否打开
%rowcount 影响记录的行数。
光标的内置函数

光标的其余两个属性的使用:


1、光标的属性
%found:光标中是否有数据,有则返回true,无返回false。
%notfound:与上面相反。
%isopen:判断光标是否打开,打开返回true,否则返回false。
%rowcount:影响的行数,例如光标中有100条记录,现在这个指针到10行这里,那么它聚会返回10。它不是总行数。

2、光标数的限制:默认情况下,oracle数据库允许在同一会话下,只能打开300个光标(可以查看oracle初始化参数得到这个值)。它的意思是指open 光标之后,打开到一定数量就不可以在打开光标了。
注意:查询数据库参数时,需要使用管理员,这里使用sysdba。show parameter这里是模糊查询,后面可以接查询的名,它会自动加%%,如图。

修改系统参数语法:alter system set 参数字段=值。如图,这里的scope代表范围,它有三个值。如果scope为memory,那么修改只是更改当前实例,不更改参数文件。如果为spfile,那么修改只是更改参数文件,不更改当前实例(如果是spfile,数据库需要重新启动)。both代表前两个同时更改。

修改光标数的限制
alter system set open_cursor = 400 scope = both;
memory 只改当前实例
spfile 改参数文件,需要重启数据库
rowcount不是指一共多少行
1、光标的属性
%found %notfound
%isopen 判断光标是否打开
%rowcount 影响的行数
2、光标的限制:默认情况下,oracle数据库只允许在同一个会话中,打开300个光标
光标的其余两个属性
1.打开光标 2.光标数的限制
1.光标的属性
%found %notfound
%isopen:判断光标是否打开 true/false
%rowcount:影响的行数
2.光标数的限制:默认情况下,oracle数据库只允许在同一个会话中,打开300个光标

修改光标数的限制:
alter system set open_cursors=400 scope=both;
scope的取值:both,memory,spfile(数据库需要重启)
修改光标数的限制:
光标的限制,默认情况下只允许在同一个会话中,打开300个光标
光标的四个属性:

游标isopen属性:
游标的rowcount属性:
游标的
光标属性:
%found
%notfound
%isopen:判断是否打开光标
%rowcount:影响的行数
修改光标数:alter system set open_cursor =400 scope=both;
scope 的取值:boyh、memory、spfile
修改光标数量限制:alter system set open_cursors=400 scope=both;
光标的属性:%found %notfound %isopen %rowcount(影响的行数,不是总行数)。
光标数的限制:默认情况下,oracle数据库只允许在同一个会话中,打开300个光标。
管理员登录 show parameter cursor(前后模糊查询)
alter system set open_cursor = 400 scope = both;
scope的取值:both,memory,spfile(只更改参数文件,不更改当前实例,需要重启)。
游标的基本属性4个及修改默认游标上线值
光标属性
光标的属性:
%found %notfound
%isopen 判断光标是否打开
%rowcount 影响的行数(不是总行数)
光标数的限制:
默认情况下,oracle数据库只允许在同一个会话中,打开300个光标
修改光标数的限制:
alter system set open_cursors = 400 scope = both;
(scope的取值:both(同时更改),memory(只更改当前示例,不更改参数文件),spfile(只更改参数文件,不更改当前示例,数据库需要重启))

光标的属性:%found %notfound %isopen %rowcount(影响的行数,不是总行数)。
光标数的限制:默认情况下,oracle数据库只允许在同一个会话中,打开300个光标。
管理员登录 show parameter cursor(前后模糊查询)
alter system set open_cursor = 400 scope = both;
scope的取值:both,memory,spfile(只更改参数文件,不更改当前实例,需要重启)。
1光标的属性
%found %notfound
%isopen : 判断光标是否打开
%rowcount : 影响的行数
2.光标数的限制:默认情况下,oracle数据库只允许在同一个会话中,打开300个光标
>--切换到管理员,查看数据库初始化设置
>show user
>conn sys/password@192.168.56.101:1521/orcl as sysdba
>show parameter cursor
修改光标数的限制:
alter system set open_cursors=400 scope=both;
scope的取值:both(两个同时更改),memory(只更改当前实例,不更改参数文件),spfile(只更改参数文件,不更改当前文件,数据库需要重启)
if cemp%isopen then
dbms_output.put_line('光标已经打开');
end if;
loop
--取出一条记录
fetch cemp into pempno,pjob;
exit when cemp%notfound;
--打印rowcount的值
dbms_output.put_line('rowcount'||cemp%rowcount);
end loop;