记录一下C#+Oracle批量插入的一个方法

public bool insertOracle(DataTable dataTable, string sql) //  Oracle sql 查询的是表头
        {
            string ConnStr = WirelessCenterDAL.Common.GetConnDMS1;
            using (OracleConnection conn = new OracleConnection(ConnStr))
            {
                try
                {
                    OracleCommand cmd = new OracleCommand(sql, conn);
                    OracleDataAdapter adapter = new OracleDataAdapter(cmd);
                    OracleCommandBuilder cb = new OracleCommandBuilder(adapter);
                    DataTable dsNew = new DataTable();
                    int count = adapter.Fill(dsNew);
                    for (int i = 0; i < dataTable.Rows.Count; i++)
                    {
                        DataRow dr = dsNew.NewRow();
                        for (int j = 0; j < dataTable.Columns.Count; j++)
                        {
                            dr[dsNew.Columns[j].ColumnName] = dataTable.Rows[i][j];
                        }
                        dsNew.Rows.Add(dr);
                    }
                    count = adapter.Update(dsNew);
                    adapter.UpdateBatchSize = 5000;
                    //adapter.Update(dataTable);
                    return true;
                }
                catch (Exception ex)
                {
                    //LogHelper.WriteErrLog("insertOracle", ex.Message);
                    return false;
                }
            }
        }

  

时间: 2024-11-08 09:42:27

记录一下C#+Oracle批量插入的一个方法的相关文章

mybatis oracle批量插入

<insert id="insertbatchinfotoemploees" parameterType="java.util.List"> insert into INFOTOEMPLOEE select INFO_EMPLOEES.NEXTVAL,A.* from( <!--INFO_EMPLOEES为自增序列--> <foreach collection="list" item="item"

Mybatis+Oracle --批量插入

Oracle自增长ID: 参考博客:Oracle数据库创建表ID字段的自动递增 mybatis语句 参考博客:点评 ibatis+oracle 批量插入的三种方法. 参考第三种 参考博客:mybatis中批量插入的两种方式(高效插入) Oracle自增长ID,如下: 序列: CREATE SEQUENCE "ENERGY"."ROLE_OBJECT_SEQ" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCRE

ASP.NET Web API 记录请求响应数据到日志的一个方法

原文:http://blog.bossma.cn/dotnet/asp-net-web-api-log-request-response/ ASP.NET Web API 记录请求响应数据到日志的一个方法 REST风格的服务架构已经成为越来越多人的选择,之前我用过WCF来实现REST服务,WCF是一个很强大的框架,干这点小事有点太沉重的感觉.后来微软又推出了一个ASP.NET Web API,专门用来处理一些基本的Http服务,即灵活又简单,推荐大家都看看. 今天这篇文章是使用ASP.NET W

Oracle批量插入数据

学习了:http://blog.csdn.net/chenleixing/article/details/45165761/ 膜拜一下,引用原文: 那么有没有其他方法呢??答案是有的,也许熟悉oracle数据库的可能知道从oracle9i版本以后,可以使用一种方法即:"INSERT ALL INTO a表 VALUES(各个值) INTO a表 VALUES (其它值) INTO a表 VALUES(其它值) ....再跟一个SELECT 语句".后边跟的SELECT 语句我们可以从虚

Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名

Oracle数据库,用mybatic批量插入数据: <insert id="saveBatch" parameterType="io.renren.entity.NodeDataEntity" databaseId="oracle"> insert into "NODE_DATA" ( "NODE_ID", "DATA_TIME", "DATA_VALUE"

Oracle批量插入有日期类型数据

例如现在有张表 id(number) startTime(date) name(varchar2) 1 2017-08-13  zhangsan 2 2017-08-14  zhangsan 需要批量插入name为zhangsan,日期以天递增,一个月的数据 1 insert into t(id,date,name) 2 select level,trunc(current_timestamp)+level,'zhangsan' 3 from dual 4 connect by level<=

mybatis Oracle 批量插入,批量更新

传入的参数只要是list类型的参数就行了..............1.批量插入 <insert id="insertBatch" parameterType="java.util.List"> INSERT INTO T_CITY_INDEX( id,city_code ) select SEQ_CITY_INDEX.NEXTVAL,cd.* from( <foreach collection="list" item=&quo

oracle批量插入優化方案

今天聽DBA説如果從一個表批量查詢出一批數據之後批量插入另外一張表的優化方案: 1)不寫歸檔日誌: 2)採用獨佔 關於insert /*+ append */我們需要注意以下三點: a.非歸檔模式下,只需append就能大量減少redo的產生:歸檔模式下,只有append+nologging才能大量減少redo. b.insert /*+ append */時會對錶加鎖(排它鎖),會阻塞表上的除了select以外所有DML語句: 1 --不寫日誌設置 2 ALTER TABLE my_flost

提高批量插入数据的方法

1.insert into demo(`a`,`b`,`c`)values('111','222','333'),('444','555','6666'),('777','888','9999'),....; 的效率优于insert into demo(`a`,`b`,`c`)values('111','222','333'):insert into demo(`a`,`b`,`c`)values('444','555','666');... 2.如果你从不同客户插入很多行,能通过使用INSER