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