我搜索这个问题,最后我在这个网站上找到了一个解决方案但是我收到了一个奇怪的错误。我搜索了错误,但因为我知道pl / sql非常基本我无法解决它。这是我的函数,它试图返回表的名称:
CREATE OR REPLACE Function FF(BSB_NUMBER IN BANK.BSB#%TYPE) RETURN SYS_REFCURSOR
IS
C_RESULT SYS_REFCURSOR;
BEGIN
OPEN C_RESULT for
select * from bank where bank.bsb# = BSB_NUMBER;
return C_RESULT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Error ! There is no such account');
END FF;
/
我跑后=
Function created.
执行后
SELECT * FROM TABLE(FF(012878));
ERROR:
ERROR at line 1:
ORA-22905: cannot access rows from a non-nested table item
答案 0 :(得分:0)
通常,ref游标将传递给客户端程序,例如JDBC Result Sets。但是,在SQL中调用引用游标很容易:
select FF(012878) from dual;