C# oracle 10万数据批量插入 求高效解决办法?? |
|
10分 |
oracle没有sqlbulkcopy
这是网上找到的 |
10分 | |
10分 |
如果我没记错有个三方的OracleBulkCopy
|
50分 |
/// <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; } } } |
DataTable 定义要跟数据库表字段一至吗?
|
|
20分 |
BlukCopy,
DataTable定义和数据库一致。即便Blukcopy,10w数据量也建议1w一个批次插入。 oracle的blukcopy,字节类型字段要注意,数据库定义需要比实际多1个字节,不然报错。。 |