C Oracle海量資料批量入庫及更新

2021-06-16 21:01:55 字數 1173 閱讀 3830

保證引數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條提交一次,...