有一個在你的代碼沒有問題。問題可能在於/ proc函數調用此過程。確保光標在那裏定義。 我將您的表tb_device_type替換爲選項卡。這段代碼正常工作。
CREATE OR REPLACE
PROCEDURE "PR_TESTE"(sl_cursor OUT SYS_REFCURSOR)
IS
stm varchar(30000);
BEGIN
stm := 'SELECT * from tab';
OPEN sl_cursor FOR stm ;
END;
-----
declare
l_cur sys_refcursor;
l_tname tab.tname%type;
l_tabtype tab.tabtype%type;
l_clusterid tab.clusterid%type;
begin
pr_teste(l_cur);
loop
fetch l_cur into l_tname, l_tabtype, l_clusterid;
exit when l_cur%notfound;
dbms_output.put_line(l_tname);
end loop;
end;
你不需要'DECLARE CURSOR'語句嗎? – jarlh
該過程定義沒有錯。當fdo你得到那個錯誤? –
當我嘗試執行程序時,我收到了此消息。我雖然也許可以是一些特別的許可,但我真的不知道。 – pmreis