2011-01-19 68 views
0

我當前有能力執行sql語句,返回信息並使用reader來解析信息。我想用SPROC來做到這一點,但是,我有問題。在定義sproc時,我應該如何返回表的結構?返回每一列?Oracle存儲過程將表結構返回給PowerShell

例如:

CREATE PROCEDURE sp_test1 (id int, 
          test1 varchar2(15), 
          test3 varchar3(15)) 
BEGIN 
    SELECT id, test1, test3 FROM test_table 
END; 

回答

3

如果你想使用存儲過程,你通常會返回一個指針,即

CREATE OR REPLACE PROCEDURE sp_test1(p_cursor OUT SYS_REFCURSOR) 
AS 
BEGIN 
    OPEN p_cursor 
    FOR SELECT id, test1, test3 
     FROM test_table; 
END; 

假設的PowerShell知道用光標句柄是做什麼的返回,這應該工作。另一方面,如果你只是在封裝一個查詢,你可能想在Oracle中使用一個視圖而不是存儲過程。然後您的應用程序可以針對視圖發出簡單的選擇。