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数据库----光标的主要内容,如果未能解决你的问题,请参考以下文章