2017-06-01 93 views
-3

我是Oracle的新手,我想構建一個解決方案以獲取返回列的列表REF_CURSOR,並且在DB上創建數據庫對象有一些限制,因此我想要運行數據庫對象 存儲過程並在C#腳本中返回REF_CURSOR數據。使用C#從OUT REF_CURSOR中檢索列

+1

你能發表一些代碼嗎?看看[如何提出一個好問題](https://stackoverflow.com/help/how-to-ask)以提高獲得回覆的機會。 – Sandman

+0

您應該使用ODP.NET,然後閱讀http://docs.oracle.com/cd/B19306_01/win.102/b14307/featRefCursor.htm –

回答

0

後端過程可能是這樣的:

procedure my_proc(
    p_id in number, 
    p_cursor out sys_refcursor 
) is 
begin 
    open p_cursor for 
     select col1, col2, col3 
     from my_table 
     where id = p_id; 
end my_proc; 

,然後在C#腳本聲明的2參數調用,設置第二個參數作爲輸出(方向= ParameterDirection.Output)和類型OracleDbType.RefCursor(請記住在對象/類的開頭添加名稱空間'Oracle.DataAccess.Client'和'Oracle.DataAccess.Types')。

不要忘記關閉數據讀取器以及連接,否則你會讓你的DBA用紅眼睛和血腥的f牙敲門。