我想在不创建包的情况下测试我的流水线功能 . 以下示例已简化:
DECLARE
FUNCTION testDC RETURN NCOL PIPELINED IS
BEGIN
PIPE ROW(5);
END;
BEGIN
FOR cur IN (select * from table (testDC())) LOOP
dbms_output.put_line('--> ');
END LOOP;
END;
但我得到这个错误:
ORA-06550:第7行,第7列:pls-00231:函数TESTDC不能在SQL ORA-06550中使用:第7行第7列:PL / SQL:ORA-00904 ::无效标识符ORA-06550:第7行,第7列:PL / SQL:忽略SQL语句
有什么更好的方法来测试这些功能?
2 回答
将流水线功能创建为独立过程或包成员 . 然后你可以从你的脚本中调用它 .
还要确保您引用的NCOL参数在可由调用脚本访问的模式中声明 .
您无法直接在PL / SQL中访问表函数 - 请参阅下面的测试用例 . 因此,正如其他人指出的那样,您必须将表函数定义为独立或打包 .