日期:2014-05-16  浏览次数:20366 次

游标管理
游标类型:隐式游标,显式游标,ref游标;
隐式游标:
在pl/sql中使用dml语句时自动创建隐式游标;
隐式游标自动声明,打开和关闭,其名为sql;
通过检查隐式游标的属性可以获得最近执行的DML语句的信息;
隐式游标的属性有:
%found-sql语句影响了一行或者多行时为true;
%notfound-sql语句没有影响任何行时为true;
%rowcount-sql语句影响的行数;
%isopen-游标是否打开,始终为false;
显式游标:
cursor 游标名(参数n..) is select 列1,列2.... where 列n=参数n
允许游标删除或更新活动集中的行
声明游标时必须使用select....for update[of 列名]语句.表示可以修改哪些列.
使用的时候:where current of 游标名;
ref游标:
ref游标和游标变量用于处理运行时动态执行的sql查询。
创建游标变量需要两个步骤:
声明ref游标类型,语法如下:
type 游标类型名 is ref cursor [return <return type>]
声明ref游标类型的变量;
声明强类型的ref游标:
type my_cursor is ref cursor return scott.dept%rowtype;
v_cursor my_cursor;
声明弱类型的ref游标:
type my_cursor is ref cursor
v_cursor my_cursor;
打开游标类型语法
open v_cursor for select_statement;
游标变量的优点:
1 可从不同的select语句提取结果集;
2 可作为过程的参数进行传递;
3 可以引用游标的所有属性;
4 可以进行赋值运算
游标变量的限制:
1 不能在程序包中声明游标变量
2 forupdate子句不能与游标变量一起使用
3 不能使用比较运算符