以下的文章主要是介绍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操作。

语法:

FOR UPDATE [OF [schema.]table.column[,[schema.]table.column]..

[nowait]

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

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

WHERE{CURRENT OF cursor_name|search_condition}

例:

DELCARE

CURSOR c1 IS SELECT empno,salary

FROM emp

WHERE comm IS NULL

FOR UPDATE OF comm;

v_comm NUMBER(10,2);

BEGIN

FOR r1 IN c1 LOOP

IF r1.salary<500THEN

v_comm:=r1.salary*0.25;

ELSEIF r1.salary<1000THEN

v_comm:=r1.salary*0.20;

ELSEIF r1.salary<3000THEN

v_comm:=r1.salary*0.15;

ELSE

v_comm:=r1.salary*0.12;

END IF;

UPDATE emp;

SETcomm=v_comm

WHERE CURRENT OF c1l;

END LOOP;

END

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

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

【编辑推荐】

【责任编辑:孙巧华 TEL:(010)68476606】

点赞 0

重置游标oracle,Oracle游标的删除与更新实际操作步骤相关推荐

  1. oracle批量查询更新,Oracle批量查询、删除、更新使用BULK COLLECT提高效率

    BULK COLLECT(成批聚合类型)和数组集合type类型is table of 表%rowtype index by binary_integer用法笔记. 例1: 批量查询项目资金账户号为 & ...

  2. oracle 外键 更新,Oracle外键级联删除与更新

    2012年Oracle:Oracle外键级联删除与更新 比来软件系统中要删除一标识表记标帜录,就要联系关系到同时删除良多若干好多张表,它们之间还存在着约束关系.所以考虑到在建树表时加上约束关系,具体内 ...

  3. Oracle中expdp与impdp--导入和导出操作步骤

    Oracle expdp 与impdp 一, 根据用户导出导入数据(用户和表空间都相同): 这些命令必须在Oracle 工具执行: create directory dpdata1 as 'E:\or ...

  4. oracle事件跟踪器使用,Oracle10046跟踪事件操作步骤

    1.开启10046事件跟踪 alter session set events 1.开启10046事件跟踪 alter session set events '10046 trace name cont ...

  5. 永久删除计算机文件怎么操作步骤,两种可以直接彻底删除文件的操作方法-电脑自学网...

    我们使用电脑时删除的资料.文件都是会转存到回收站里面的,想要彻底删除还需要到回收站进行删除,不少用户感觉太麻烦了.那么有什么方法可以直接彻底删除文件呢? 方法一. 1.首先我们在键盘上使用" ...

  6. bulk怎么使用oracle,oracle学习之bulk collect用法

    通过bulk collect减少loop处理的开销,使用Bulk Collect提高Oracle查询效率 Oracle8i中首次引入了Bulk Collect特性,该特性可以让我们在PL/SQL中能使 ...

  7. 关于数据的级联删除和更新

    两张表:"ProductCategory","Product". 有一个需求是这样的:在删除某个ProductCategory 的时候,同时删除该Categor ...

  8. mysql创建外键级联更新_MySQL中利用外键实现级联删除、更新

    MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引.在创建索引的时候,可以指定在删除.更新父表时,对子表进行的相应操作 ...

  9. mysql创建外键级联更新_MySQL使用外键实现级联删除与更新的方法

    本文实例讲述了MySQL使用外键实现级联删除与更新的方法.分享给大家供大家参考,具体如下: MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时 ...

最新文章

  1. Android AOSP 单独编译某一模块
  2. 写入访问权限冲突_全面介绍 Linux 权限
  3. vba根据内容调整word表格_【邮件合并】不会VBA也能批量生成Word封面
  4. 8idmp导入oracle 11g,11g导入8i的dmp文件问题
  5. 多方位助您快速精准查阅文献和发文章的利器——X-MOL
  6. multiprocessing.queue取数据要加锁么_干货 | 小程序多页面接口数据缓存
  7. DBeaver连接达梦|虚谷|人大金仓等国产数据库
  8. 使用spring集成的kafka收发消息
  9. 西门子rwd60参数设置调试手册_RWD60 RWD68 RWD62控制器调试指导说明
  10. 众善之源 or 万恶之源?详析微服务的好与坏
  11. Oracle 锁表问题查询处理
  12. 3029. 【NOIP2011DAY2】观光公交
  13. 计算机组成原理字发生器,计算机组成原理实验2.7时序发生器赖晓铮剖析.ppt
  14. flutter 微信语言选择_#Flutter项目(3)之仿写微信通讯录界面
  15. Eclipse里看到project 存在向上或者向下的箭头
  16. Android基于Google Zxing实现二维码/条形码扫描、生成二维码/条形码
  17. 科研有方 ——科研准备和科研步骤
  18. C++实战(一)——选择结构案例:三只小猪称体重
  19. android权限设置在哪找,Android权限申请与打开权限设置页面
  20. Java: 根据网易云音乐URL下载歌曲、歌词、专辑封面和MV

热门文章

  1. [渝粤教育] 中国地质大学 劳动与社会保障法 复习题 (2)
  2. JavaWeb公司员工管理系统
  3. python DEA:强/弱处置性假设下的考虑非期望产出的非径向距离函数
  4. 苏州大学计算机学院张莉,苏州大学计算机科学与技术学院硕导介绍:张 莉
  5. CEC2017:鱼鹰优化算法(Osprey optimization algorithm,OOA)求解cec2017(提供MATLAB代码)
  6. 固体力学里的拉梅参数mu和流体力学的动力粘度mu是不是一回事?
  7. KingRan库配置京东账号
  8. 曾GMV过亿的淘宝品牌FFAN(泛泛)宣布店铺歇业
  9. 上传txt文章,自动转变为英文文章,插入图片地址,自动识别并插入html
  10. 短信将死?互联网已经把短信逼上了绝路