在PL/SQL中依然可以使用UPDATE和DELETE语句更新或删除数据行。显式游标只有在需要获得多行数据的情况下使用。PL/SQL提供了仅仅使用游标就可以执行删除或更新记录的方法。 UPDATE或DELETE语句中的WHERE CURRENT OF子串专门处理要执行UPDATE或DELETE操作的表中取出的最近的数据。

要使用这个方法,在声明游标时必须使用FOR UPDATE子串,当对话使用FOR UPDATE子串打开一个游标时,所有返回集中的数据行都将处于行级(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<500 THEN

v_comm:=r1。salary*0。25;

ELSEIF r1。salary<1000 THEN

v_comm:=r1。salary*0。20;

ELSEIF r1。salary<3000 THEN

v_comm:=r1。

salary*0。15;

ELSE

v_comm:=r1。salary*0。12;

END IF;

UPDATE emp;

SET comm=v_comm

WHERE CURRENT OF c1l;

END LOOP; END。

全部

Oracle游标有何用,Oracle游标使用方法有哪些?相关推荐

  1. 数据如何导入oracle数据库,如何用Oracle导入导出工具来实现Oracle数据库移植?

    Oracle数据库作为目前市场的主流数据库之一,许多应用都在其上进行开发,由于Oracle数据库更新换代的原因和不同的应用程序提供商,可能会造成在一个单位的应用中存在Oracle的几种版本,如Orac ...

  2. Oracle 11g 新特性 -- 自适应游标共享(Adaptive Cursor Sharing: ACS) 说明

    一.自适应游标共享(Adaptive Cursor Sharing) 说明 1.1 ACS概述 绑定变量使Oracle DB 可以为多条SQL 语句共享单个游标,以减少分析SQL 语句所使用的共享内存 ...

  3. Oracle主机变量锚定、游标变量

    System Global varaibles. 系统全局变量,只要sqlplus不断开连接,name这个变量会一直存在,切换用户会话对其无影响. SQL> -- 非plsql变量 SQL> ...

  4. Oracle 快速入门 PL/SQL游标

    目录 一.PL/SQL概念: ①数据类型: ②逻辑比较: ③控制语句: ④循环语句:有三种: 顺序语句:goto 标名--<<标名>>        ⑤异常: ⑥函数: 二.P ...

  5. Oracle显式游标和隐式游标

    游标的概念: 游标是SQL的一个内存工作区,由系统或用户以变量的形式定义.游标的作用就是用于临时存储从数据库中提取的数据块.在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处 ...

  6. oracle退出本循环,Oracle,跳出游标循环

    1,跳出游标的循环,不执行遍历了. 方法一:goto for c_row in 游标 loop if 条件 then dbms_output.put_line('测试跳出循环'); goto brea ...

  7. oracle 游标查询数据库,Oracle数据库使用游标查询结果集所有数据

    --Oracle使用游标查询结果集所有数据 DECLARE myTabelName NVARCHAR2(200):=''; --表名 myTableRowComment NVARCHAR2(200): ...

  8. 使用oracle 游标修改数据,Oracle 函数施行修改和游标传递

    Oracle 函数执行修改和游标传递 ORA-14551:不能在查询语句中执行dml语句,开始误以为函数里不能执行DML或DDL语句,后查到前辈通过采用自治事务解决,在此基础上演例 传递SQL语句对数 ...

  9. Oracle隐式游标和显式游标

    游标是什么?就是在内存开辟的一块临时存储空间. 1.Oracle隐式游标 1.1Oracle有常用的哪些隐式游标 1.2 Oracle隐式游标演示 -- 隐式游标 (使用的表为Oracle默认自带的e ...

最新文章

  1. android中volley通信框架简介
  2. codevs 1066 引水入城(DFS+DP)
  3. 深入理解javascript原型和闭包(15)——闭包
  4. 后悔!我早该把这1W字详解的 InnoDB 原理给你!
  5. MySQL-06:pyMySQL增删改查基本命令笔记
  6. 工业级POE交换机技术优势及供电方法详解!
  7. 2018-2019-2 20165303《网络对抗技术》Exp2 后门原理与实践
  8. 异常处理第一讲(SEH),筛选器异常,以及__asm的扩展,寄存器注入简介
  9. Java线程池ExecutorService
  10. c语言求不成功查找长度的代码_哈希查找算法(C语言实现)
  11. 代码重构方向原则指导
  12. 已知拱高和弦长,求弧长、半径、角度
  13. python输入一个三位数输出百位十位个位_编程实现:输入一个三位数,输出其百位、十位、个位上的数字。_学小易找答案...
  14. 会员运营五大难题与破解之道
  15. 怎么制作合法有效的电子签名?
  16. 学好UI设计必备软件
  17. Java编程到底是用idea好还是eclipse好?
  18. 28.html设置字体
  19. c++ 内存泄漏(Detected memory leaks)解决
  20. java的体系结构_java体系结构介绍

热门文章

  1. wxWidgets:wxBitmapButton类用法
  2. 在 WxHtmlWindow 中调用默认浏览器
  3. boost::next_permutation相关的测试程序
  4. boost::interprocess::bufferstream用法的测试程序
  5. boost::graph模块使用breadth_first_search()实现GGCL算法的测试程序
  6. GDCM:处理(各种操作处理)DICOM图像文件的测试程序
  7. DCMTK:类OFMap的测试程序
  8. VTK:PolyData之HighlightBadCells
  9. C++longest palindromic subsequence最长回文子序列算法实现(附完整源码)
  10. C语言内存管理之结构体