zoukankan      html  css  js  c++  java
  • PLSQL中对cursor的where current of 的使用例子

    开始

    DECLARE
      CURSOR emp_cursor IS
        SELECT empno, ename, dname
        FROM emp_cpy, dept
        WHERE  emp_cpy.deptno=dept.deptno
        AND  emp_cpy.deptno = 20
        FOR UPDATE OF sal NOWAIT;
    
      emp_record emp_cursor%ROWTYPE;
    
    BEGIN
       
    LOOP
    
      IF NOT emp_cursor%ISOPEN  THEN
         OPEN emp_cursor;
      END IF; 
      
      FETCH emp_cursor INTO  emp_record; 
      EXIT WHEN emp_cursor%NOTFOUND;
      
      UPDATE emp_cpy 
      SET empno=1000 WHERE CURRENT OF emp_cursor;
      
      dbms_output.put_line
         ('empno is:' || emp_record.empno || '-- emp name is:' || emp_record.ename ||'-- dept is:' || emp_record.dname);
         
    END LOOP;
    
    IF emp_cursor%ISOPEN  THEN
         dbms_output.put_line('Now to close cursor!');
         CLOSE emp_cursor;
    END IF; 
    
    END;

    当时看到结果:

    anonymous block completed
    empno is:7369-- emp name is:SMITH-- dept is:RESEARCH
    empno is:7566-- emp name is:JONES-- dept is:RESEARCH
    empno is:7788-- emp name is:SCOTT-- dept is:RESEARCH
    empno is:7876-- emp name is:ADAMS-- dept is:RESEARCH
    empno is:7902-- emp name is:FORD-- dept is:RESEARCH
    Now to close cursor!

    我们再查询看看:

    SQL> select * from emp_cpy where deptno=20;
    
         EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM
    ---------- ---------- --------- ---------- --------- ---------- ----------
        DEPTNO
    ----------
          1000 SMITH      CLERK           7902 17-DEC-80        800
            20
    
          1000 JONES      MANAGER         7839 02-APR-81       2975
            20
    
          1000 SCOTT      ANALYST         7566 19-APR-87       3000
            20
    
    
         EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM
    ---------- ---------- --------- ---------- --------- ---------- ----------
        DEPTNO
    ----------
          1000 ADAMS      CLERK           7788 23-MAY-87       1100
            20
    
          1000 FORD       ANALYST         7566 03-DEC-81       3000
            20
    
    
    SQL> 

    再前面的整个的代码结束的时候,自动进行了提交:在结果集的范畴里,改变了 deptno的值。

     结束

  • 相关阅读:
    iOS_绘制带删除线的Label
    SSH深度历险(一)深入浅出Hibernate架构(一)-------映射解析——七种映射关系
    Android FoldingLayout 折叠布局 原理及实现(一)
    [JavaSecurity]
    AWR--service statistics
    VC驿站黑客编程(关机,重新启动,注销)
    每天进步一点点——Linux中的文件描写叙述符与打开文件之间的关系
    Cocos2d-X中的粒子
    cocos2dx3.0 对象池
    hdu 5317 RGCDQ
  • 原文地址:https://www.cnblogs.com/gaojian/p/2770320.html
Copyright © 2011-2022 走看看