Oracle-11g-R2
如何從 oracle 過程返回結果集?
如何從 oracle 中的儲存過程返回結果集?
假設我想從一個簡單的 select 語句中返回一個表,例如:
Select * from tblTest
我試過這個,但這似乎完全錯誤!
CREATE OR REPLACE PROCEDURE ProcSelectEveryThing(cursor_ OUT TYPES.REF_CURSOR) AS BEGIN OPEN cursor_ FOR SELECT * FROM "tblTest"; END;
怎麼了?
您不需要返回語句,因為它使用 OPEN 和 FOR… 與 RETURN 相同…
錯誤在表的名稱中,你把它放在“”雙引號中。刪除它,只使用表的名稱,並使用 SYS_REFCURSOR 類型,如下所示:
CREATE OR REPLACE PROCEDURE ProcSelectEveryThing(cursor_ OUT SYS_REFCURSOR) AS BEGIN OPEN cursor_ FOR SELECT * FROM tblTest; END;
您在 PL/SQL 中缺少 RETURN 語句。在這裡查看答案。有許多網站可以快速響應此查詢。我建議您下載 SQLDeveloper 並查看一些系統提供的內容並查看 docco,從這裡開始。SQLDeveloper真的很棒——而且它是免費的!