PLSQL中隐式打开cursor的小例子

开始

DECLARE
  CURSOR emp_cursor IS
    SELECT empno,ename,deptno FROM emp;

BEGIN
  FOR emp_record IN emp_cursor LOOP

    IF emp_record.deptno=30 THEN
    dbms_output.put_line(emp_record.empno ||'...'||emp_record.ename);
    END IF;
  END LOOP;

END;

在这里,对cursor的打开、fetch、关闭等都是隐藏的。

运行结果:

anonymous block completed
7499...ALLEN
7521...WARD
7654...MARTIN
7698...BLAKE
7844...TURNER
7900...JAMES

它还有一个变化的写法:

BEGIN
  FOR emp_record IN (SELECT empno,ename,deptno FROM emp) LOOP

    IF emp_record.deptno=30 THEN
    dbms_output.put_line(emp_record.empno ||'...'||emp_record.ename);
    END IF;
  END LOOP;

END;

结束

原文地址:https://www.cnblogs.com/gaojian/p/2769495.html