加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oralcle数据批量导入

发布时间:2020-12-12 13:38:00 所属栏目:百科 来源:网络整理
导读:前言: 前段时间做一个将.Csv文件数据批量导入到Oracle数据库中,因为其中的列有几千个,所以在网上找了很多方法都不适用。OracleBulkCopy可能因为版本原因也不能用。 直到我遇见了它 1 /// summary 2 /// Oracle批量导入数据 3 /// /summary 4 /// param na

前言:

  前段时间做一个将.Csv文件数据批量导入到Oracle数据库中,因为其中的列有几千个,所以在网上找了很多方法都不适用。OracleBulkCopy可能因为版本原因也不能用。

  直到我遇见了它

  

 1 /// <summary>
 2        /// Oracle批量导入数据
 3        /// </summary>
 4        /// <param name="tableName">需要导入的数据表名</param>
 5        /// <param name="dt">需要导入的数据</param>
 6        /// <returns></returns>
 7         public static bool BatchImportData(string tableName,DataTable dt,double x)
 8         {
 9             string sql = "SELECT * FROM " + tableName;
10             using (OracleConnection conn = new OracleConnection(connString))
11             {
12 
13                 OracleCommand cmd = new OracleCommand(sql,conn);
14                 OracleDataAdapter adapter = new OracleDataAdapter(cmd);
15                 OracleCommandBuilder cb = new OracleCommandBuilder(adapter);
16                 DataTable dsNew = new DataTable();
17 
18                 int count = adapter.Fill(dsNew);
19                 DataRow dr;
20                 //该方法需要字段名和dt中的列名一一对应
21                 for (int i = 0; i < dt.Rows.Count; i++)
22                 {
23                     dr = dsNew.NewRow();
24                     for (int j = 0; j < dt.Columns.Count; j++)
25                     {
26                         dr[dsNew.Columns[j].ColumnName] = dt.Rows[i][j];
27                     }
28                     dsNew.Rows.Add(dr);
29                 }
30                 count = adapter.Update(dsNew);
31                 adapter.UpdateBatchSize = 200;
32                 dsNew.Clear();
33                 dt.Clear();
34             }
35             return true;
36         }

?

  

OracleBulkCopy

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读