只有安装了oracle 11G客户端的机器上才可以用,要用到ODP.NET组件中的oracleDataAccess.DLL,命名空间引用为Oracle.DataAccess.Client;

引用:Oracle.DataAccess.Client.OracleBulkCopy

官方下载地址(ODP.net)(中文):http://www.oracle.com/technetwork/cn/topics/dotnet/downloads/index.html

官方下载地址(ODP.net):http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html

#region 批量插入数据
/// <summary>
/// 批量插入数据
/// </summary>
/// <param name="dt">要插入的数据</param>
/// <param name="targetTable">数据库中的表</param>
public static 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 = ;
bulkCopy.BulkCopyTimeout = ;
bulkCopy.DestinationTableName = targetTable; //服务器上目标表的名称
bulkCopy.BatchSize = dt.Rows.Count; //每一批次中的行数
try
{
conn.Open();
if (dt != null && dt.Rows.Count != ) bulkCopy.WriteToServer(dt); //将提供的数据源中的所有行复制到目标表中
}
catch (Exception ex)
{
throw ex;
}
finally
{
conn.Close();
if (bulkCopy != null)
bulkCopy.Close();
}
}
#endregion

注意事项:

OracleBulkCopy Class in Oracle.ManagedDataAccess.dll?

论坛地址:https://stackoverflow.com/questions/26941161/oraclebulkcopy-class-in-oracle-manageddataaccess-dll

------------------------------------------------------------------------------------------------------------------------

Oracle.ManagedDataAccess.dll 中没有 OracleBulkCopy此方法,请注意!!!!!!

------------------------------------------------------------------------------------------------------------------------

问:

我使用OracleBulkCopy类引用Oracle.DataAccess.dll。我想使用Oracle.ManagedDataAccess。dll,便于部署。但是后来我犯了一个错误"没有找到"OracleBulkCopy "

有人知道为什么OracleBulkCopy不包含在Oracle.ManagedDataAccess.dll中吗?

------------------------------------------------------------------------------------------------------------------------

答:

在此期间,ODP不支持编写OracleBulkCopy。净,司机管理。

原因是不包括只是一个特性优先的问题。当托管驱动程序变得更加完整,最终将添加OracleBulkCopy类。

在未来,任何人都可以看到“ODP之间的差异”。NET托管驱动程序和非托管驱动程序“最近ODP的一部分”。NET book查看不支持的内容:

https://docs.oracle.com/cd/E56485_01/win.121/e55744/intro004.htm#ODPNT8146

答:

https://apex.oracle.com/pls/apex/f?p=18357:39:28710406382793::NO::P39_ID:27881

如果我们获得足够的选票,他们可能会实施。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Oracle.DataAccess.dll 部署安装

 

Oracle.DataAccess.dll 要拷贝到项目发布目录

项目发布的时候,还必须要拷贝以下几个文件在运行目录
1、oci.dll 
2、oraociicus11.dll 
3、OraOps11w.dll 
4、oraons.dll

在开发机器上看了Oracle.DataAccess.dll 版本是2.112.1.2 ,测试服务器上的是2.112.1.0。杯具。。。找到原因了,两个版本号不一致。而且发现客户机上无64位的Oracle.DataAccess.dll.

IIS中只能开始32位应用程序支持。赶紧找解决办法:

解决办法就是在web.config中修改,在configSections节点结束之后增加如下内容:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
        <dependentAssembly> 
            <assemblyIdentity name="Oracle.DataAccess" 
            publicKeyToken="89B483F429C47342" 
            culture="neutral" /> 
            <bindingRedirect 
              oldVersion="2.112.1.2" 
              newVersion="2.112.1.0"/> 
        </dependentAssembly> 
    </assemblyBinding> 
</runtime>

C# OracleBulkCopy 批量插入oracle数据库的方法的更多相关文章

  1. .net批量插入SqlServer数据库的方法:

    using System;using System.Collections.Generic;using System.Configuration;using System.Data;using Sys ...

  2. C# Oracle海量数据瞬间插入到数据库的方法

    C# 海量数据瞬间插入到数据库的方法 当我们在数据库中进行大量的数据追加时,是不是经常因为数据量过大而苦恼呢?而所谓的海量数据,一般也是上万级的数据,比如我们要添加一百万条数据,应该如何提高它的效率呢 ...

  3. C# 海量数据瞬间插入到数据库的方法

    C# 海量数据瞬间插入到数据库的方法 当我们在数据库中进行大量的数据追加时,是不是经常因为数据量过大而苦恼呢?而所谓的海量数据,一般也是上万级的数据,比如我们要添加一百万条数据,应该如何提高它的效率呢 ...

  4. [转] JAVA读取excel数据(插入oracle数据库)

    原文地址:http://blog.csdn.net/zczzsq/article/details/16803349 本实例做的是读取execl(只能读取.xls的execl,即只能读取03版的),如果 ...

  5. LOADRUNNER连接ORACLE数据库的方法

    LOADRUNNER连接ORACLE数据库的方法     最近正在做一个测试数据库性能的项目,直接写出来的连接数据库并且进行数据库查询和插入的脚本在VUSER_INIT中(连接数据库)#include ...

  6. 用ASP.Net(C#)连接Oracle数据库的方法及实例

    今天看了一下asp.net连接oracle数据库的方法,得到了如下代码.这段代码打开了MyTable表,并把操作员的名字列出.字段类型是OracleString.读取的时候用的是字段编号,我不知道怎么 ...

  7. C# 数据批量插入到数据库SqlBulkCopy(源数据类型:List<T> Or DataTable)

      /*_____________________ List<T>类型数据 To Sql_______________________________*/ /// <summary& ...

  8. [C#.Net]C#连接Oracle数据库的方法

    首先介绍下开发环境:WIn10 64bit+Visual Studio 2015+Oracle10ClientWin32(只是客户端,如果安装整个数据库也是可以的) 目前了解C#中连接Oracle数据 ...

  9. C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)

    官方下载地址(ODP.net)(中文):http://www.oracle.com/technetwork/cn/topics/dotnet/downloads/index.html 官方下载地址(O ...

随机推荐

  1. sgu101 欧拉路径 难度:1

    101. Domino time limit per test: 0.25 sec. memory limit per test: 4096 KB Dominoes – game played wit ...

  2. bzoj1008

    题解: 要求有几种方案可以越狱,可以用总方案-不会越狱的方案 那么总方案就是m^n 那么考虑不会越狱的方案 显然第一个人有m中,后面都是m-1中(和前一个不一样) 答案就是m^n-m*(m-1)^(n ...

  3. 【Java集合的详细研究8】List,Set,Map用法以及区别

    Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素.一些Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java ...

  4. MyEclipse移动开发教程:设置所需配置的iOS应用(四)

    MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] 三.创建配置文件 Provisioning profiles授权文件应用程序在iOS设备上安装并运 ...

  5. AFNetworking 遇到错误 Code=-1016 "Request failed: unacceptable content-type: text/plain"

    在开发过程使用了AFNetworking库,版本2.x,先运行第一个官方例子(替换GET 后面的url即可): AFHTTPRequestOperationManager *manager = [AF ...

  6. memmove 对同一个指针不操作

    memmove 对同一个指针不操作,所以调用memmove之前不用比较两个指针是否相同 void CTestDLLDlg::OnBnClickedButton6() { ; char* data = ...

  7. pygame经典sprite精灵类

    import cStringIO, base64 import pygame from pygame.locals import * class Ball(pygame.sprite.Sprite): ...

  8. C高级第一次PTA作业 要求三

    要求一.要求二 内容链接:http://www.cnblogs.com/X-JY/p/8550457.html 一.PTA作业中的知识点总结 1.6-1 计算两数的和与差(10 分) (1)*在程序中 ...

  9. Maven项目中的配置

    1 在配置好Maven项目后,新建一个Maven Project.如图 点击next,会进入如下界面: 选择webapp,不选择默认的quickstart,之后会进入以下界面 填好Group ID 和 ...

  10. stm32内部温度计算方法

    计算公式:Temperature  = {(V25 - VSENSE) / Avg_Slope} + 25 V25              最小=1.34V     典型=1.43V   最大=1. ...