小编Asw*_*win的帖子

具有多个线程的OracleBulkCopy

我有五个线程。他们正在同时将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)

.net c# multithreading

5
推荐指数
1
解决办法
1753
查看次数

标签 统计

.net ×1

c# ×1

multithreading ×1