oracle的批量插入
2016-02-17 09:37
477 查看
OrcBulkCopy bulkcopy = new OrcBulkCopy();
DataTable dt = new DataTable();
dt.Columns.Add("DECRYPT_TEL", typeof(string));
dt.Columns.Add("TEL", typeof(string));
dt.Columns.Add("ID", typeof(int));
for (int i = 0; i < DECRYPT_TEL.Length; i++)
{
DataRow DR = dt.NewRow();
DR["DECRYPT_TEL"] = DECRYPT_TEL[i];
DR["TEL"] = TEL[i];
DR["ID"] = ID[i];
dt.Rows.Add(DR);
}
bulkcopy.BulkToDB(dt, "R_TEL");
public static string ModuleName = "module";
public static string connOrcleString = System.Configuration.ConfigurationSettings.AppSettings["connstr_" + ModuleName];
#region 批量插入数据
/// <summary>
/// 批量插入数据
/// </summary>
/// <param name="dt">要插入的数据</param>
/// <param name="targetTable">数据库中的表</param>
public void BulkToDB(DataTable dt, string targetTable)
{
OracleConnection conn = new OracleConnection(connOrcleString);
OracleBulkCopy bulkCopy = new OracleBulkCopy(connOrcleString, OracleBulkCopyOptions.UseInternalTransaction); //用其它源的数据有效批量加载Oracle表中
//conn.BeginTransaction();
//OracleBulkCopy bulkCopy = new OracleBulkCopy(connOrcleString, OracleBulkCopyOptions.Default);
bulkCopy.BatchSize = 100000;
bulkCopy.BulkCopyTimeout = 260;
bulkCopy.DestinationTableName = targetTable; //服务器上目标表的名称
bulkCopy.BatchSize = dt.Rows.Count; //每一批次中的行数
try
{
conn.Open();
if (dt != null && dt.Rows.Count != 0)
bulkCopy.WriteToServer(dt); //将提供的数据源中的所有行复制到目标表中
}
catch (Exception ex)
{
throw ex;
}
finally
{
conn.Close();
if (bulkCopy != null)
bulkCopy.Close();
}
}
#endregion
DataTable dt = new DataTable();
dt.Columns.Add("DECRYPT_TEL", typeof(string));
dt.Columns.Add("TEL", typeof(string));
dt.Columns.Add("ID", typeof(int));
for (int i = 0; i < DECRYPT_TEL.Length; i++)
{
DataRow DR = dt.NewRow();
DR["DECRYPT_TEL"] = DECRYPT_TEL[i];
DR["TEL"] = TEL[i];
DR["ID"] = ID[i];
dt.Rows.Add(DR);
}
bulkcopy.BulkToDB(dt, "R_TEL");
public static string ModuleName = "module";
public static string connOrcleString = System.Configuration.ConfigurationSettings.AppSettings["connstr_" + ModuleName];
#region 批量插入数据
/// <summary>
/// 批量插入数据
/// </summary>
/// <param name="dt">要插入的数据</param>
/// <param name="targetTable">数据库中的表</param>
public void BulkToDB(DataTable dt, string targetTable)
{
OracleConnection conn = new OracleConnection(connOrcleString);
OracleBulkCopy bulkCopy = new OracleBulkCopy(connOrcleString, OracleBulkCopyOptions.UseInternalTransaction); //用其它源的数据有效批量加载Oracle表中
//conn.BeginTransaction();
//OracleBulkCopy bulkCopy = new OracleBulkCopy(connOrcleString, OracleBulkCopyOptions.Default);
bulkCopy.BatchSize = 100000;
bulkCopy.BulkCopyTimeout = 260;
bulkCopy.DestinationTableName = targetTable; //服务器上目标表的名称
bulkCopy.BatchSize = dt.Rows.Count; //每一批次中的行数
try
{
conn.Open();
if (dt != null && dt.Rows.Count != 0)
bulkCopy.WriteToServer(dt); //将提供的数据源中的所有行复制到目标表中
}
catch (Exception ex)
{
throw ex;
}
finally
{
conn.Close();
if (bulkCopy != null)
bulkCopy.Close();
}
}
#endregion
相关文章推荐
- 用MyEclipse连接Oracle数据库
- MSSQL MYSQL ORACLE 数据类型对应关系
- Oracle版本区别及版本选择!
- oracle系统包—-dbms_output用法
- 关于oracle 11g自动分区+分区改名+定时任务综合使用实现自动分区后可以进行分区查询
- Oracle执行计划发生过变化的SQL语句脚本
- oracle 创建表空间
- oracle之简单的表操作和SQL语句分类
- oracle表连接------>排序合并连接(Merge Sort Join)
- oracle 删除旧的归档文件或跟踪文件
- oracle函数之NULLIF
- oracle查询分组数据中的最后一条数据和每组的数量
- oracle批量删除表
- Oracle中CHAR类型不足位数时,用空格自动补足位数
- oracle 关系除法
- Oracle 建表,递增序列,触发器,分析函数row_number() ,partition by 子句。
- Oracle 的 bulk collect 和 forall 用法
- Oracle监听服务无法启动或丢失的解决办法
- Oracle trunc()函数的用法
- Oracle数据库索引