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數據庫----光標