当前位置: 代码迷 >> Oracle开发 >> 请问下这个存储过程编译不过,是什么原因呢
  详细解决方案

请问下这个存储过程编译不过,是什么原因呢

热度:30   发布时间:2016-04-24 06:40:27.0
请教下这个存储过程编译不过,是什么原因呢?
CREATE OR REPLACE PROCEDURE SCOTT.GOOD
AS

   TYPE C1 IS REF CURSOR;
   B1  SCOTT.EMP%ROWTYPE;
   
BEGIN
   OPEN C1 FOR
      SELECT *
        FROM SCOTT.EMP;

   LOOP
      FETCH C1 INTO B1;
      EXIT WHEN C1%NOTFOUND;
      DBMS_OUTPUT.PUT_LINE(B1.ename);
   END LOOP;
   
   CLOSE C1;

END GOOD;
------解决方案--------------------
引用:
CREATE OR REPLACE PROCEDURE SCOTT.GOOD
AS

   TYPE C1 IS REF CURSOR;
   B1  SCOTT.EMP%ROWTYPE;
   
BEGIN
   OPEN C1 FOR
      SELECT *
        FROM SCOTT.EMP;

   LOOP
      FETCH C1 INTO B1;
      EXIT WHEN C1%NOTFOUND;
      DBMS_OUTPUT.PUT_LINE(B1.ename);
   END LOOP;
   
   CLOSE C1;

END GOOD;


CREATE OR REPLACE PROCEDURE GOOD AS

  TYPE C2 IS REF CURSOR;
  B1 tgp_funds%ROWTYPE;
  c1 c2;
  

BEGIN
  OPEN C1 FOR
    SELECT * FROM scott.emp;

  LOOP
    FETCH C1
      INTO B1;
    EXIT WHEN C1%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE(B1.emp_no);
  END LOOP;

  CLOSE C1;

END GOOD;
  相关解决方案