OracleBulkCopy】的更多相关文章

Oracle也有BulkCopy了,需要安装oracle 11g,并引用客户端下面的Oracle.DataAccess.dll 用法和SQLBulkCopy差不多 connStr 是 ORACLE 的连接字符串, tblName 是目标表的表名. private void BulkCopy(string connStr, DataTable dt, string tblName) { ) { using (var bc = new OracleBulkCopy(connStr)) { bc.De…
抓取到的数据, 要批量写数据到 ORACLE , 一开始是用的EF, 处理速度很慢. 主要表现在验证数据上(db.GetValidationErrors), 每分钟才能写 1000条不到. 换成 EnterpriceLibrary.Validation (Validation.Validate) 后, 验证速度大增, 1000条只需几秒钟. 但是整体速度还是慢, 是因为每条数据都被EF转换为一个INSERT语句.   我花了一些时间用 OracleBulkCopy (需要引用客户端下面的 Ora…
1.OracleBulk程序集引用using ODAC = Oracle.DataAccess.Client 2.有时候不做字段映射,会使导入的数据出错 上代码 /// <summary> /// 批量插入数据 /// </summary> /// <param name="table">数据表</param> /// <param name="targetTableName">数据库目标表名</pa…
private void button1_Click(object sender, EventArgs e) { OpenFileDialog afd = new OpenFileDialog(); if (afd.ShowDialog()!=System.Windows.Forms.DialogResult.OK) { return; } string fileName = afd.FileName; if (Path.GetExtension(fileName)!=".csv")…
在进行OracleBulkCopy批量数据导入的过程中使用事务后抛出了异常, 没使用事务时可以正确批量导入, ORA-12154:无法解析指定的连接字符串, 但是TNS配置肯定是没有错的, 难道是ConnectionString不是这样写了,执行事务时发生了变化, 还有: //暂时发现oracle的bulkCopy不支持事务处理 using (OracleBulkCopy bulkCopy = new OracleBulkCopy(conn,OracleBulkCopyOptions.UseIn…
1.首先我们做一下准备工作,在sql server和oracle分别建立一个Student表 oracle中 --创建Student表 -- create table Student( stuId number not null primary key, stuName nvarchar2() not null, stuAddress nvarchar2() null ) sql server中 --创建Student表-- create table Student( stuId int not…
只有安装了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…
using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Reflection;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Contract.Domain;using DevExpress.Data;using Framework;using Holworth.…
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Oracle.DataAccess.Client;using System.Diagnostics;using System.Data; namespace BulkInsert{ class Program { static string cs = "Data Source=ORA;User Id=O;Password=…
首先使用PL/SQL  通过语句:select * from v$version; 查询出使用的oracle版本,弄到对应版本的Oracle.DataAccess.DLL 我本地使用版本为:11.2.0.4.0  (64位) Oracle.DataAccess.DLL下载地址:https://www.oracle.com/database/technologies/odac-downloads.html下载之后DLL所在目录:ODAC112040Xcopy_64bit\odp.net20\odp…
前言: 不要问我框架为什么从收费授权转到免费开源,人生没有那么多为什么,这些年我开源的东西并不少,虽然这个是最核心的,看淡了就也没什么了. 群里的网友:太平说: 记得一年前你开源另一个项目的时候我就说过 这么多年 秋天有两点没变 一是还是单身 另外一个就是cyq.data还没开源 终于等到开源了! 也许吧,只有把cyq.data最终开源了,才能解决单身问题,不然我在这上面花的时间太多,都没时间和妹子聊天了. 几个重要网址: 源码SVN地址:https://github.com/cyq1162/c…
1:MSSQL SQL语法篇: BULK INSERT [ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ] FROM 'data_file' [ WITH ( [ [ , ] BATCHSIZE = batch_size ] [ [ , ] CHECK_CONSTRAINTS ] [ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_pag…
命名空间:Oracle.DataAccess.Client 组件:Oracle.DataAccess.dll(2.112.1.0) ODP.NET 版本:ODP.NET for .NET Framework 2.0 或 ODP.NET for .NET Framework 4 工具:Microsoft Visual Studio Ultimate 2013 + Oracle SQL Developer 1.5.5 + Oracle Database 11g Enterprise Edition…
在.Net1.1中无论是对于批量插入整个DataTable中的所有数据到数据库中,还是进行不同数据源之间的迁移,都不是很方便.而 在.Net2.0中,SQLClient命名空间下增加了几个新类帮助我们通过DataTable或DataReader批量迁移数据.数据源可以来自关 系数据库或者XML文件,甚至WebService返回结果.其中最重要的一个类就是SqlBulkCopy类,使用它可以很方便的帮助我们把数据源的数 据迁移到目标数据库中.下面我们先通过一个简单的例子说明这个类的使用: 首先:w…
转自:http://www.cnblogs.com/yfl8910/archive/2012/05/19/2509194.html 作为财务数据核算人员,面对大量的业务与财务数据,借助于传统的EXCEL表格,已经力不从心.最近几个月,利用周末及下班的空闲时间,写了一个数据库导入导出工具,以方便业务逻辑密集型的数据处理.目前,DataPie支持百万级别的数据导出,对于几十万的数据导入,也轻松应付. 源码及安装包下载地址:https://github.com/yfl8910/DataPie 先看看界…
1 连接Sql Server的ConnectionString: Data Source=.;Initial Catalog=ViewVideo;User ID=sa;Password=XXXXXX; 2 连接MySql的ConnectionString: Database=dbname;Data Source=192.168.1.1;Port=3306;User Id=root;Password=****;Charset=utf8;TreatTinyAsBoolean=false; 3 连接O…
终于等到你:CYQ.Data V5系列 (ORM数据层)最新版本开源了 前言: 不要问我框架为什么从收费授权转到免费开源,人生没有那么多为什么,这些年我开源的东西并不少,虽然这个是最核心的,看淡了就也没什么了. 群里的网友:太平说: 记得一年前你开源另一个项目的时候我就说过 这么多年 秋天有两点没变 一是还是单身 另外一个就是cyq.data还没开源 终于等到开源了! 也许吧,只有把cyq.data最终开源了,才能解决单身问题,不然我在这上面花的时间太多,都没时间和妹子聊天了. 几个重要网址:…
Bulk Insert Data 命名空间:Oracle.DataAccess.Client 组件:Oracle.DataAccess.dll(2.112.1.0) ODP.NET 版本:ODP.NET for .NET Framework 2.0 或 ODP.NET for .NET Framework 4 工具:Microsoft Visual Studio Ultimate 2013 + Oracle SQL Developer 1.5.5 + Oracle Database 11g En…
最新的项目开始使用Oracle后,5个月之间遇到一些在SqlServer中没有遇到的问题,这里记录并贴上一些常用的解决办法. Oracle相关 一.数据库不同版本还原: 刚开始我们一直使用Oracle12C进行开发,到上线服务器时说12C与可能不太稳定,有些问题不好定位就转用11g,这里牵扯到12C导出的DMP文件导入到11G上的问题,导出导入语句: exp 账号/密码@STO_DataBase file=D:\STO_DataBase.dmp full=y imp 账号/密码@STO_Data…
-------------------------V5.0开始(刚开始过滤版本:有些更新功能迁到V4,所以记录在V4那)-----------------------------7:Insert方法增加InsertOption选项及重载方法,可根据需求设置是否需要填充数据. 14:启用二级数据库配置,当第一数据库链接失败时,转第二链接数据库(第二链接配置名为"第一配置名_bak"): 18:DbBase中的方法增加可配置的ExeNonQuery是否加锁 20:处理json类对单个,号分…
前言: 不要问我框架为什么从收费授权转到免费开源,人生没有那么多为什么,这些年我开源的东西并不少,虽然这个是最核心的,看淡了就也没什么了. 群里的网友:太平说: 记得一年前你开源另一个项目的时候我就说过 这么多年 秋天有两点没变 一是还是单身 另外一个就是cyq.data还没开源 终于等到开源了! 也许吧,只有把cyq.data最终开源了,才能解决单身问题,不然我在这上面花的时间太多,都没时间和妹子聊天了. 几个重要网址: 源码SVN地址:https://github.com/cyq1162/c…
自曾列就别往下看 别折腾了   使用 SqlBulkCopy ,dataTable 必须跟sql里面的表字段完全一样 下面在sqlserver中演示 mysql 请google MySqlBulkLoader oracle 请google OracleBulkCopy 表结构 DROP TABLE [dbo].[Product] GO CREATE TABLE [dbo].[Product] ( ) NOT NULL , ) NOT NULL , ,) NOT NULL ) GO ALTER T…
之前项目做大数据批量添加使用了OracleBulkCopy,这个是引用Oracle.DataAccess.Client的命名空间,所以项目要引用一个Oracle.DataAccess.dll, 但是运行项目后,总是报未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项.试图加载格式不正确的程序. 那么该如何解决他呢? 1)检查项目引用Oracle.DataAccess.dll是否复制到本地 注:检查发布后项目bin下是否有Oracle.DataAccess.dll ,一般…
环境是这样的: 需要导入大量数据到Oracle,目前Oracle已建立索引和触发器了,导入的数据是树型结构,需要关联. 采用的方法是: 删除以前数据库的索引和触发器,用OracleBulkCopy批量导入数据,然后再创建序列和触发器,创建序列的时候,初始ID需要重新设置过,一般是数据库记录最大ID加一. --表:TB_PROJECTS1 --删除触发器 DROP TRIGGER TR_TB_PROJECTS1; --删除序列 DROP SEQUENCE SQ_TB_PROJECTS1; --创建…
.客户端代码 public static void FileMoveInVirtualMachineForCompressor() { var obj = new object(); string ip = "127.0.0.1"; ; List<string> files = Directory.GetFiles(@"C:\Users\admin\Desktop\sendFile").ToList(); Dictionary<string, by…
最近用core写了一个数据迁移小工具,从SQLServer读取数据,加工后导入MySQL,由于数据量太过庞大,数据表都过百万,常用的dapper已经无法满足.三大数据库都有自己的大数据批量导入数据的方式, MSSQL有SqlBulkCopy,MYSQL有MySqlBulkLoader,Oracle有OracleBulkCopy,对应各自的驱动. 一:生成csv文件 public static class CSVEx { /// <summary> ///将DataTable转换为标准的CSV…
这里的批量插入,主要是支持SQL的大型存储数据库,本文以Mysql,Oracle,SqlServer,postgresql4类来说明,这大概是国内应用比较多的了.其余的应该可以按照这些去找.提到编程的话,主要是指c#.当然我不是dba,是程序员,所以说的是编程开发的手段而不是dba的手段.也希望大家留言比较. 先说说我们常用的几种方法,我就不列举代码了.网上都有,大家可以自己试试. 1.事务 开启一个事务,将多条语句执行,然后提交.有的数据库限制sql个数1000. 2.多值插入语法 inser…
在使用前先加入ManagedDataAccessDLL文件方可使用 添加方法:右键项目.点击管理NuGet程序包,点击浏览,在输入框内输入ManagedDataAccess,再点击安装即可 OracleDBHelper代码如下(Copy直接用) /// <summary> ///基於.net( 向下兼容4.0)開發 OracleDBHelper工具類 ///<para>作者: 害羞的青蛙</para> ///<para>時間: 2019-12-6</p…