从概念到示例—Oracle隐式游标
2009-04-11 13:13:19 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨绘い鎺嬪灪閵囧嫰骞囬姣挎捇鏌熸笟鍨妞ゎ偅绮撳畷鍗炍旈埀顒勭嵁婵犲嫮纾介柛灞捐壘閳ь剛鎳撻~婵嬪Ω閳轰胶鐤呯紓浣割儐椤戞瑩宕ョ€n喗鐓曟い鎰靛亝缁舵氨绱撻崘鈺傜婵﹤顭峰畷鎺戔枎閹搭厽袦婵犵數濮崑鎾绘⒑椤掆偓缁夌敻骞嗛悙鍝勭婵烇綆鍓欐俊鑲╃磼閹邦収娈滈柡灞糕偓鎰佸悑閹肩补鈧尙鏁栧┑鐐村灦閹稿摜绮旈悽绋课﹂柛鏇ㄥ灠閸愨偓濡炪倖鍔﹀鈧繛宀婁邯濮婅櫣绱掑Ο璇茶敿闂佺ǹ娴烽弫璇差嚕婵犳碍鏅插璺猴工瀹撳棝姊虹紒妯哄缂佷焦鎸冲畷鎴﹀箻鐠囧弶宓嶅銈嗘尰缁嬫垶绂嶉悙顒佸弿婵☆垳鍘ф禍楣冩倵濮樼偓瀚�

一、游标的相关概念:
定义:
游标它是一个服务器端的存储区,这个区域提供给用户使用,在这个区域里
存储的是用户通过一个查询语句得到的结果集,用户通过控制这个游标区域当中
的指针 来提取游标中的数据,然后来进行操作。
实质:
是用户在远程客户端上对服务器内存区域的操作,由数据库为用户提供这样的
一个指针,使得用户能够去检索服务器内存区的数据。
(1)、 指向上下文区域的句柄或指针
(2)、上下文区域-用于SQL处理的内存区
(3)、上下文区域的内容
- 语句处理的行数
-指向语句的语法分析表示的指针
二、游标的类型
a)静态游标
- 隐式游标
- 显式游标
b)Ref游标
三、游标具有的属性
%notfound 询问是否没有结果集
%found 询问是否存在结果集
%rowcount 返回受影响的行数
%isopen 询问游标是否已经打开
四、先来说说隐式游标
隐式游标 ---由Oracle数据库自动创建,名称是(SQL) ,主要用途是可以返回一个操作是否成功或失败.
1.有Oracle在内部声明,由系统管理
2.用于处理
-DML语句 --注意只能用于DML语句哦。
-返回单行的查询
3.用于判断一个操作是否成功.
SQL%notfound --返回Boolean值 存在结果集返回 False
SQL%found --返回Boolean值 存在结果集返回 True
SQL%rowcount --用户成功提取数据的行数
SQL%isopen --在隐式游标里一般这个属性是自动打开和关闭的.且任何时候查询都返回False
示例:向表中插入一行数据,询问是否插入成功.
declare
iCount int:=0;
begin
insert into place values(2,'beijing');
DBMS_output.put_line('游标所影响的行数:'||SQL%rowcount);
if SQL%NotFount then
DBMS_output.put_line('NotFount为真);
else
DBMS_output.put_line('NofFount为假');
end if;
if SQL%Fount then
DBMS_output.put_line('Fount为真);
else
DBMS_output.put_line('Fount为假');
end if;
if SQL%isopen then
DBMS_output.put_line('isOpen为真);
else
DBMS_output.put_line('isOpen为假');
end if;
isCount:=SQL%rowcount;
DBMS_output.put_line('影响了'||isCount||'行');
end;
更多精彩
赞助商链接