保證引數datatable dt 與資料庫內原表結構一樣 並dt.tablename值為原表名
安裝oracle的對應版本的odp.net
原理:批量刪除目的表主鍵衝突資料,然後在批量插入。
優點:不更改目的資料庫結構
海量資料秒級入庫
**如下:
public int insertsqlbulk(datatable dt,string sqlconnstring)
fileds += dt.columns[i].columnname;
values += ":" + dt.columns[i].columnname;
}for (int i = 0; i < pk.rows.count; i++)
pkfileds += pk.rows[i]["name"] + " = :" + pk.rows[i]["name"];
}sb = new stringbuilder();
delcmd.commandtext = sb.tostring();
sb = new stringbuilder();
inscmd.commandtext = sb.tostring();
for (int i = 0; i < dt.columns.count; i++)
datarow dr = pk.select("name = '" + dt.columns[i].columnname.toupper() + "'");
if (dr.length > 0)
inscmd.parameters.add(dt.columns[i].columnname, getoracledbtype(value[0]), value, parameterdirection.input);
}//如果存在主鍵 先刪除
if (pk.rows.count > 0)
//插入資料
insertnum = inscmd.executenonquery();
conn.close();}}
}catch (exception e)
return insertnum - deletenum;//返回插入條數
}private static oracledbtype getoracledbtype(object o)
JDBC連線批量處理資料入庫
public class jdbctemplate 提交事務 param connection public static void commit connection connection catch sqlexception e 開啟事務 param connection public stat...
ORACLE海量 批量資料匯入
原理是使用oracle的ctl檔案,然後用系統的命令直接呼叫匯入。測試過匯入幾百個檔案,220分鐘匯入3.7億條,每秒大概2.8萬條。1.ctl檔案模板 2.用服務程式呼叫目標資料夾下的檔案,然後按照ctl檔案模板生成檔案。取相應的配置資訊 執行的命令的函式 public static string...
關於資料批量入庫解決方案
關於程式批量入庫解決方案 下面小弟關於最近的乙個批量入庫解決辦法與大家分享一下,由於是第一次部落格,有什麼不對,請大家多多指教 最近專案用到了大併發寫資料庫操作,當用只做了單條資料commit一次,這樣做插入會很慢,資料庫的壓力也很大,當時自己的第乙個想法就是改變提交方式,10條或100條提交一次,...