2010-10-26 154 views
1

我在SSRS VS2008中有一個需要從Oracle運行Stord過程的報告。在過去,我運行Oracle的函數來返回表以顯示數據。除了直接的SELECT語句SSRS在Oracle中執行存儲過程

例如:

select * from table(MyFunction(:parm1, :parm2)) 
select * from MyTable 

我還沒有遇到來自甲骨文在SSRS一個存儲過程,我想知道....

如何定義查詢在DataSet中返回結果?

+0

您是直接訪問Oracle,還是通過鏈接服務器實例? – 2010-10-26 16:12:26

+0

它直接訪問Oracle – MikeTWebb 2010-10-26 17:46:08

回答

1

類型SYS_REFCURSOR的輸出參數創建一個存儲過程,並將其放置在顯示過程中的輸出遊標的查詢的結果 - 像這樣:

CREATE OR REPLACE PROCEDURE pr_myproc(L_CURSOR out SYS_REFCURSOR) 
is 
    BEGIN 
    OPEN L_CURSOR FOR 
     SELECT * FROM mytable; 
    END; 

然後在您的報告創建數據集 - 上Query選項卡,將Command類型設置爲StoredProcedure,將Query字符串設置爲該過程的名稱,例如。 pr_myproc。如果您檢查字段選項卡,它們應該匹配遊標的預期結構,即。查詢輸出。

+0

這是偉大的....謝謝! – MikeTWebb 2010-10-27 15:58:44