我有五个线程。他们正在同时将OracleBulkCopy(每个记录100万条)放入同一张表(EXCEL_DATA)中。但是在某个时间点,我遇到了以下错误:
ORA-00604:递归SQL级别1发生错误ORA-00054:资源繁忙并指定了NOWAIT进行获取
我为OracleBulkCopy使用以下代码:
using (OracleConnection con = new OracleConnection(ConnectionString))
{
con.Open();
using (var bulkcopy = new OracleBulkCopy(con, options))
{
OracleTransaction tran =
con.BeginTransaction(IsolationLevel.ReadCommitted);
bulkcopy.DestinationTableName = DestinationTable;
foreach (var mapping in columnMappings)
bulkcopy.ColumnMappings.Add(mapping);
bulkcopy.BulkCopyTimeout = TimeOut.Value;
try
{
bulkcopy.WriteToServer(dataTable);
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
}
}
}
Run Code Online (Sandbox Code Playgroud)