2009-06-01 48 views
2

我試圖使用RefCursor作爲Oracle存儲過程的輸入參數。這個想法是選擇一組記錄,將它們饋送到存儲過程中,然後SP循環輸入RefCursor,對其記錄執行一些操作。不,我無法選擇SP內的記錄,因此無需使用RefCursor作爲輸入類型。我發現了一個關於如何做到這一點的例子(這裏是鏈接,但似乎我不能使用它們)Oracle的文檔,但它使用一個簡單的SELECT填充輸入RefCursor;其中存在着問題:我必須從代​​碼中填充它。使用引用光標作爲ODP.NET的輸入類型

你看,在代碼中我有這樣的:

[OracleDataParameter("P_INPUT", OracleDbType.RefCursor, ParameterDirection.Input)] 
private List<MiObject> cursor; 

而且,我已經試過填充光標List<T>,一個DataTableMyObject甚至一個簡單數組,並沒有什麼作品。當我嘗試運行我的測試中,我得到一個錯誤:

"Invalid Parameter Linking"

也許沒有確切的措辭,因爲我是來自西班牙的翻譯,但是這消息

任何想法?

回答

2

我也是在與馬克·威廉姆斯,在本文中,我想在我的帖子鏈接的作者聯繫,他已經kinly迴應是這樣的:

「 這是送我沒問題電子郵件;但是,我想我會令你失望與我在這一個答案

可惜你不能做你正在嘗試做的(創建像客戶端一個指針)

一對夫婦。的問題在於,refcursor指的是服務器上的Oracle擁有的內存,Oracle沒有客戶端項目的概念e數據表或.NET列表等。

除了使用refcursor之外,還有其他選擇嗎? 「

所以基本上我糊塗了,這個問題被關閉。感謝您的閱讀和/或試圖幫助,大家。

0

從內存中,不存在OracleCursor類在ODP.NET庫中的某個地方工作嗎?

+0

(即使它存在,檢查它是否你需要什麼。 ..我的記憶有點朦朧) – jerryjvl 2009-06-01 07:59:28

0

this sample爲指針看作輸入PL從Oracle的TechNet/SQL 。

的中心思想是輸入REFCURSOR對象必須由Oracle創建自理。您不能轉換列表或別的什麼REFCURSOR。

相關問題