oracle “LANG_CUR”不是过程或未定义ORA-06550错误

wvt8vs2t  于 2023-08-03  发布在  Oracle
关注(0)|答案(1)|浏览(105)

我一直试图从一个表中获取1列使用引用游标在plsql中,表只有11列lang_cur是声明的游标。

create or replace PACKAGE  MOVIE_PKG
    AS
    PROCEDURE lang_display(lang_cur out SYS_REFCURSOR);
    END MOVIE_PKG;

    create or replace PACKAGE BODY MOVIE_PKG
    AS
    PROCEDURE lang_display(lang_cur out SYS_REFCURSOR)
    as
    begin
    OPEN lang_cur FOR select lang_name from LANGUAGE_SELECT;
    end lang_display;
    END MOVIE_PKG;
    
    declare
    lang_cur SYS_REFCURSOR;
    begin
    movie_pkg.lang_display(lang_cur);
    for data in lang_cur
    loop
    dbms_output.put_line('langauge:'||data.lang_name);
    end loop;
    end;

字符串

获取此错误(错误报告- ORA-06550:第5行,第13栏:PLS-00221:“LANG_CUR”不是程序或未定义ORA-06550:第5行,第1列:PL/SQL:语句被忽略0655000000 -“行%s,列%s:\n%s”* 原因:通常是PL/SQL编译错误。* 行动:)

ukxgm1gy

ukxgm1gy1#

可以使用FETCH

declare
  lang_cur SYS_REFCURSOR;
  lang_name LANGUAGE_SELECT.LANG_NAME%TYPE;
begin
  movie_pkg.lang_display(lang_cur);

  LOOP
    FETCH lang_cur INTO lang_name;
    EXIT WHEN lang_cur%NOTFOUND;
    
    dbms_output.put_line('langauge:'||lang_name);
  END LOOP;

  CLOSE lang_cur;
END;
/

字符串

相关问题