我的代码是:
CREATE OR REPLACE FUNCTION get_tab_ptf (p_rows IN NUMBER)
RETURN PIPELINED AS
BEGIN FOR i IN 1 .. p_rows
LOOP
PIPE ROW('Value is '||i);
END LOOP;
RETURN;
END;
我得到的错误是
:PLS-00201:必须声明标识符“ PIPELINED”
有什么解决方案?
答案 0 :(得分:1)
您首先应该为计划从函数中返回的元素定义一个集合类型。由于这是您要返回的字符串,因此table of VARCHAR2
应该是您的首选。
create or replace type numval_type as table of VARCHAR2(30);
现在,在PIPELINED
关键字之前提及此返回类型。
CREATE OR REPLACE FUNCTION get_tab_ptf (p_rows IN NUMBER)
RETURN numval_type PIPELINED AS -- type should be specified here after return
BEGIN FOR i IN 1 .. p_rows
LOOP
PIPE ROW('Value is '||i);
END LOOP;
RETURN;
END;
/
命名为
select * from TABLE(get_tab_ptf(100));