oracle数据库----光标

Posted 北宫乾宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle数据库----光标相关的知识,希望对你有一定的参考价值。

光标的属性和限制

/*
1、光标的属性
%found %notfound
%isopen 判断光标是否打开
%rowcount 受影响的行数
2、光标的限制
默认的情况下,oracle数据库只允许在同一个会话中,打开300个光标

打开SQL PLUS:输入show parameter cursor

 


修改光标数的限制:
alter system set open_cursors=400 scope=both;
scope的取值:both,memory,spfile(数据库需要重启).
{ memory:只更改当前实例不更改参数文件
spfile:只更改参数文件不更改当前实例
scope=spfile 仅仅更改spfile里面的记载,不更改内存,也就是不立即生效,而是等下次数据库启动生效。有一些参数只允许用这种方法更改
scope=memory 仅仅更改内存,不改spfile。也就是下次启动就失效了
scope=both 内存和spfile都更改
不指定scope参数,等同于scope=both.}
*/
set serveroutput on

declare
--定义光标
cursor c1 is select names,score from table1 ;
pname table1.names%type;
pscore table1.score%type;
begin
--打开光标
open c1;
loop
--取出一行的记录
fetch c1 into pname,pscore;
exit when c1%notfound;

dbms_output.put_line(pname||\'的成绩为:\'||pscore);
dbms_output.put_line(\'受影响的行数为:\'||c1%rowcount);
end loop;
/*if c1%isopen then dbms_output.put_line(\'光标已经打开!\');
else
dbms_output.put_line(\'光标没有打开!\');
end if;*/
--关闭光标
close c1;

end;
/

带参数的光标

 

 

光标小案例

 

 

以上是关于oracle数据库----光标的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE 存储过程光标运行缓慢

从 pl/sql 中的函数返回数据作为光标而不创建类型 oracle 11g

在 oracle JPA () 中检索光标

在带有 oracle 光标的过程中使用用户定义的函数

oracle清屏翻页配置

参考光标类型 oracle