当前位置: 代码迷 >> C# >> C# oracle 10万数据批量插入 求高效解决方法?
  详细解决方案

C# oracle 10万数据批量插入 求高效解决方法?

热度:63   发布时间:2016-05-05 04:02:43.0
C# oracle 10万数据批量插入 求高效解决办法??
C# oracle 10万数据批量插入 求高效解决办法??
------解决思路----------------------
oracle没有sqlbulkcopy
这是网上找到的
------解决思路----------------------
同网上找的
------解决思路----------------------
如果我没记错有个三方的OracleBulkCopy
------解决思路----------------------

/// <summary>
        /// DataTable批量写入到Oracle 
        /// </summary>
        /// <param name="dataTable">待写入DataTable</param>
        /// <returns>true:写入成功;false:写入失败</returns>
        public static bool OracleBulkCopy(DataTable dataTable)
        {
            using (Oracle.DataAccess.Client.OracleConnection oracleConnection = new OracleConnection(BusinessConnString))
            {
                oracleConnection.Open();
                Oracle.DataAccess.Client.OracleBulkCopy oracleBulkCopy = new Oracle.DataAccess.Client.OracleBulkCopy(oracleConnection);
                oracleBulkCopy.DestinationTableName = dataTable.TableName;
                try
                {
                    oracleBulkCopy.WriteToServer(dataTable);
                    return true;
                }
                catch
                {
                    return false;
                }
            }
        }

------解决思路----------------------
BlukCopy,
DataTable定义和数据库一致。即便Blukcopy,10w数据量也建议1w一个批次插入。
oracle的blukcopy,字节类型字段要注意,数据库定义需要比实际多1个字节,不然报错。。
  相关解决方案