数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Oracle游标的删除与更新实际操作步骤


发布日期:2018年03月27日
 
Oracle游标的删除与更新实际操作步骤

以下的文章主要是介绍Oracle游标的删除与更新我们都知道在PL/SQL中是可以使用UPDATE与DELETE语句来更新或者删除相关的数据行显式Oracle游标只有在需要获得多行数据的情况下使用

PL/SQL提供了仅仅使用Oracle游标就可以执行删除或更新记录的方法

UPDATE或DELETE语句中的WHERE CURRENT OF子串专门处理要执行UPDATE或DELETE操作的表中取出的最近的数据

要使用这个方法在声明游标时必须使用FOR UPDATE子串当对话使用FOR UPDATE子串打开一个Oracle游标时所有返回集中的数据行都将处于行级(ROWLEVEL)独占式锁定其他对象只能查询这些数据行不能进行UPDATEDELETE或SELECTFOR UPDATE操作

语法

FOR UPDATE [OF [schema]lumn[[schema]lumn]

[nowait]

在多表查询中使用OF子句来锁定特定的表如果忽略了OF子句那么所有表中选择的数据行都将被锁定如果这些数据行已经被其他会话锁定那么正常情况下ORACLE将等待直到数据行解锁

在UPDATE和DELETE中使用WHERE CURRENT OF子串的语法如下

WHERE{CURRENT OF cursor_name|search_condition}

DELCARE

CURSOR c IS SELECT empnosalary

FROM emp

WHERE comm IS NULL

FOR UPDATE OF comm;

v_comm NUMBER();

BEGIN

FOR r IN c LOOP

IF rsalary< THEN

v_comm:=rsalary*;

ELSEIF rsalary< THEN

v_comm:=rsalary*;

ELSEIF rsalary< THEN

v_comm:=rsalary*;

ELSE

v_comm:=rsalary*;

END IF;

UPDATE emp;

SET comm=v_comm

WHERE CURRENT OF cl;

END LOOP;

END

以上的相关内容就是对Oracle游标中的更新和删除的介绍望你能有所收获

               

上一篇:Oracle数据库游标使用大全

下一篇:Oracle中的硬解析与软解析