我该如何在函数中使用光标?

时间:2013-05-13 01:47:24

标签: sql oracle function cursor

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

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:表或视图不存在“。

但实际上,观点存在。

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

0 个答案:

没有答案