3
我正在調用一個過程(從C#通過ODP.Net與Oracle.DataAccess.dll 4.112.3.0到OracleDB 11.2.0.1與一些修補程序)有一個OUT SYS_REFCURSOR
(讓我們稱之爲pCursorOut
)。在此過程中,我這樣做:錯誤打開一個OUT SYS_REFCURSOR FOR FOR UPDATE SKIP LOCKED
OPEN pCursorOut FOR SELECT ... FOR UPDATE SKIP LOCKED;
我的C#代碼:
var oracleDataReader = oracleCommand.ExecuteDataReader();
dataTable.Load(oracleDataReader);
調用Load()
導致一個OracleException
:
ORA-03113:檔案結尾通信頻道
如果我刪除FOR UPDATE SKIP LOCKED
,它工作正常(除了而不是鎖定記錄,我需要)。
這可能是版本衝突嗎?
這怎麼解決?
更新:我懷疑這可能是因爲我試圖鎖定一次超過一個記錄與表加載。我正在對此進行一些額外的測試...... NOPE。不是這個。在while (oracleDataReader.Read())
上執行yield return
會在第一個.Read()
調用中引發同樣的情況。
檢查服務器。可能有相應的'ORA-00600'可以幫助。 – 2012-07-17 21:05:42