Oracle显示游标,游标的基本原理:
在Oracle中,在执行一个有SELECT、INSERT、UPDATE和DELETE语句PL/SQL块时,Oracle会在内存中为其分配一个缓冲区,将执行结果放在这个缓冲区中,而游标是该去的一个指针。
游标分类:
静态游标 动态游标。
静态游标又分隐式游标和显示游标。
显示游标的使用步骤:
1.声明游标
CURSOR cursor_name [(parameter[,parameter]…)]
[RETURN return_type] IS select_statement;
cursor_name指游标的名称
parameter用于为游标指定输入参数。在指定数据类型时,不能使用长度约束。例如NUMBER(4)、CHAR(10)等都是错误的。
return_type用于定义游标提取的行的类型。
select_statement指游标定义的查询语句。
2.打开游标
OPEN cursor_name[(parameters)];
3.提取游标
FETCH cursor_name INTO variables;
cursor_name值游标的名称
variables是变量名。
4.关闭游标
CLOSE cursor_name;
显示游标的属性:
%FOUND:只有在DML语句影响一行或多行时,%FOUND属性才会返回TRUE。
%NOTFOUND:%NOTFOUND属性与%FOUND属性的作用正好相反。如果DML语句没有影响任何行,则%NOTFOUND属性返回TRUE。
%ROWCOUNT:%ROWCOUNT属性返回DML语句影响的行数。如果DML语句没有影响任何行,则%ROWCOUNT属性将返回0。
%ISOPEN:%ISOPEN属性返回游标是否已打开。
使用显示游标删除或更新:
CURSOR cursor_name IS
select_statement FOR UPDATE [OF columns];
SELECT FOR UPDATE[OF columns]为更新查询,锁定选择的行。
1.当选择单标更新查询时,可以省略OF子句。
2.当选择多个表更新查询时,被锁定的行来源于OF子句后声明的列所在的表中的行。