1

我想在包的函数中使用光标,如下所示:

PACKAGE PKG
AS
TYPE RESULT_T
IS
  TABLE OF varchar2(30);
FUNCTION GENERATEF
  RETURN RESULT_T PIPELINED;
END PKG;
/
create or replace
PACKAGE BODY PKG
AS
FUNCTION GENERATEF
  RETURN RESULT_T PIPELINED
IS
BEGIN
  FOR TLC IN (select name from users)
  LOOP
    PIPE ROW(TLC.name);
  END LOOP;
  RETURN;
END;
END PKG;
/
SELECT * FROM TABLE(PKG.GENERATEF);

我认为现在的问题集中在

select name from users

因为如果我使用

select sysdate from dual

该功能运行良好。

如果我想从其他 VIEW 中提取数据,会带来如下错误:

错误(7,45):PL/SQL:ORA-00942:表或视图不存在”。

但实际上,这种观点是存在的。

我不知道问题出在哪里。而且我不确定是否可以像我提到的那样使用光标。

4

0 回答 0