C# OracleBulkCopy 批量插入oracle数据库的方法
只有安装了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数据库的方法的更多相关文章
- .net批量插入SqlServer数据库的方法:
using System;using System.Collections.Generic;using System.Configuration;using System.Data;using Sys ...
- C# Oracle海量数据瞬间插入到数据库的方法
C# 海量数据瞬间插入到数据库的方法 当我们在数据库中进行大量的数据追加时,是不是经常因为数据量过大而苦恼呢?而所谓的海量数据,一般也是上万级的数据,比如我们要添加一百万条数据,应该如何提高它的效率呢 ...
- C# 海量数据瞬间插入到数据库的方法
C# 海量数据瞬间插入到数据库的方法 当我们在数据库中进行大量的数据追加时,是不是经常因为数据量过大而苦恼呢?而所谓的海量数据,一般也是上万级的数据,比如我们要添加一百万条数据,应该如何提高它的效率呢 ...
- [转] JAVA读取excel数据(插入oracle数据库)
原文地址:http://blog.csdn.net/zczzsq/article/details/16803349 本实例做的是读取execl(只能读取.xls的execl,即只能读取03版的),如果 ...
- LOADRUNNER连接ORACLE数据库的方法
LOADRUNNER连接ORACLE数据库的方法 最近正在做一个测试数据库性能的项目,直接写出来的连接数据库并且进行数据库查询和插入的脚本在VUSER_INIT中(连接数据库)#include ...
- 用ASP.Net(C#)连接Oracle数据库的方法及实例
今天看了一下asp.net连接oracle数据库的方法,得到了如下代码.这段代码打开了MyTable表,并把操作员的名字列出.字段类型是OracleString.读取的时候用的是字段编号,我不知道怎么 ...
- C# 数据批量插入到数据库SqlBulkCopy(源数据类型:List<T> Or DataTable)
/*_____________________ List<T>类型数据 To Sql_______________________________*/ /// <summary& ...
- [C#.Net]C#连接Oracle数据库的方法
首先介绍下开发环境:WIn10 64bit+Visual Studio 2015+Oracle10ClientWin32(只是客户端,如果安装整个数据库也是可以的) 目前了解C#中连接Oracle数据 ...
- C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)
官方下载地址(ODP.net)(中文):http://www.oracle.com/technetwork/cn/topics/dotnet/downloads/index.html 官方下载地址(O ...
随机推荐
- currentSession
public class HibernateUtil { public static final ThreadLocal session =new ThreadLocal(); public ...
- notepad++设置右键
Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\Shell\NotePad++][HKEY_CLASSES_ROOT\*\Shell\ ...
- learning docker steps(8) ----- docker network 初次体验
参考: docker network 主要是介绍了docker 容器之间的组网模式, 一般来说实像组网主要是依赖于bridge iptalbes vlan来实现,但是附带的如端口转发会降低效率. 新型 ...
- win7下android开发环境搭建(win7 64位)
win7下android开发环境搭建(win7 64位) 一.安装 JDK 下载JDK最新版本,下载地址如下: http://www.oracle.com/technetwork/java/jav ...
- bzoj2209
题解: splay打标机 往下传递 记录x,y为化简后,区间有多少(,) 代码: #include<bits/stdc++.h> ; using namespace std; ],sum[ ...
- 深入理解java异常【绝对经典,推荐最少看五遍】
http://blog.csdn.net/hguisu/article/details/6155636 补充:检查异常(checkedException)与运行异常,什么时候throw,什么时候thr ...
- Swift网络封装库Moya中文手册之Targets
Targets 使用Moya,我们首先需要定义一个target - 这通常是继承 TargetType 协议的 枚举 变量.接下来,你的app只需要处理这些targets,也就是一些你希望调用API完 ...
- windows与Linux实现文件传输Winscp工具的使用
WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端.同时支持SCP协议.它的主要功能就是在本地与远程计算机间安全的复制文件..winscp也可以链接其他系统,比如linux系统 ...
- python打包工具pyinstaller的使用
安装PyInstaller pip install pyinstaller 安装完后,检查安装成功与否: pyinstaller --version 安装成功后,就可以使用下面的命令了: pyinst ...
- mac下搭建discuz论坛
1.开启web共享.(Mountain Lion参考:http://www.guomii.com/posts/30136) 2.支持php. http://www.cnblogs.com/elfsun ...