Oracle游标的删除与更新实际操作步骤
创始人
2024-06-28 20:51:18
0

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

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

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

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

语法:

 

  1. FOR UPDATE [OF [schema.]table.column[,[schema.]table.column]..  
  2. [nowait]  

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

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

 

  1. WHERE{CURRENT OF cursor_name|search_condition}  

例:

 

  1. DELCARE  
  2. CURSOR c1 IS SELECT empno,salary  
  3. FROM emp  
  4. WHERE comm IS NULL  
  5. FOR UPDATE OF comm;  
  6. v_comm NUMBER(10,2);  
  7. BEGIN  
  8. FOR r1 IN c1 LOOP  
  9. IF r1.salary<500 THEN  
  10. v_comm:=r1.salary*0.25;  
  11. ELSEIF r1.salary<1000 THEN  
  12. v_comm:=r1.salary*0.20;  
  13. ELSEIF r1.salary<3000 THEN  
  14. v_comm:=r1.salary*0.15;  
  15. ELSE  
  16. v_comm:=r1.salary*0.12;  
  17. END IF;  
  18. UPDATE emp;  
  19. SET comm=v_comm 
  20. WHERE CURRENT OF c1l;  
  21. END LOOP;  
  22. END   

 

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

文章出自: http://www.programbbs.com/doc/class10-3.htm

【编辑推荐】

  1. Oracle sql 性能的优化调整的2大步骤
  2. 对Oracle SQL相同语句的解析
  3. Oracle数据库和DB2取前10条记录的实际对比
  4. Oracle数据库与DM的强制访问的不同之处
  5. Oracle的实体-Oracle关系模型

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...