我想在包的函数中使用光标,如下所示:
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:表或视图不存在”。
但实际上,这种观点是存在的。
我不知道问题出在哪里。而且我不确定是否可以像我提到的那样使用光标。