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个字节,不然报错。。