oracle_利用ctl文件实现批量导入

  利用oracle控制文件实现大批量数据的入库操作,效率比sql脚本文件要高很多。

使用ctl控制文件步骤如下:

1. 制作ctl文件 test.ctl

load   data

infile   ‘d:\test.txt‘   --数据文件,数据源文件

append   into   table   table_name --数据文件导入的目标表

Fields terminated by "@[email protected]"   --字段分隔符,建议以特殊字符作为字段分隔符

Optionally enclosed by ‘"‘ --定界符

trailing   nullcols   --允许跳过列

(    col1,    col2,    col3,    col4)   ---表中的字段

----以上斜体部分文字请根据实际情况替换

2. 制作数据源文件

文件中只有数据,数据列之间用“@[email protected]”分隔  (可借助命令或者工具导出数据,然后再通过UE编辑)

3. 执行ctl文件

命令行cmd下执行 ,cd 至oracle控制文件目录下,

执行命令:sqlldr oracle/[email protected]  control =test.ctl, ERRORS=50000 , LOAD=450000

4. 执行结果

执行结果将会在oracle的控制文件下生成执行的控制文件名称对应的日志文件(input.log)详细记录了操作结果。

5. 当加载大量数据时(大约超过10GB),最好抑制日志的产生:

SQL>ALTER   TABLE   RESULTXT   nologging;

这样不产生REDO LOG,可以提高效率

---------------------------示例---------------------------------------------

--2014年11月26日 星期三 10时25分12秒  --z_org.ctl
--向表z_org里加载数据
load data
infile ‘z_org.txt‘--数据文件
badfile ‘z_org.bad‘
replace into table z_org --替换表 z_org内容
fields terminated by ‘@[email protected]‘ --字段分隔符
TRAILING  NULLCOLS ---允许跳过列
(
gather_date  DATE "YYYY-MM-DD",
xaccount        ,
name            ,
sms_frees       ,
freesign        ,
sms_lowamt      ,
sms_lowamx      ,
mp_l_lmt        ,
mp_auths        ,
mpausign        ,
mp_rem_ppl      ,
mpremsig        ,
mp_bal          ,
mpbalsig        ,
cal_limit       ,
cal_auths       ,
cal_auths_flag  ,
cal_bal         ,
cal_bal_flag    ,
cal_remppl      ,
cal_remppl_flag ,
sms_freeyn      ,
bal_mppl        ,
bal_mpplx       ,
bal_l_mppl      ,
daily_rep       ,
product         ,
)

时间: 2024-10-04 22:11:01

oracle_利用ctl文件实现批量导入的相关文章

SNF快速开发平台3.0之--asp.net mvc4 强大的导出和不需要上传文件的批量导入EXCEL

数据的导入导出,在很多系统里面都比较常见,这个导入导出的操作,在Winform里面比较容易实现,但在Web上我们应该如何实现呢?本文主要介绍利用MVC4+EasyUI的特点,并结合文件上传控件,实现文件不需要上传到服务器上就可以马上进行处理并显示,然后确认后把数据写入数据库的过程. 我们知道,Web上对Excel的处理和Winform的有所差异,如果是在Web上处理,我们需要把Excel文档上传到服务器上,然后读取文件进行显示.但在SNF上确实实现了与Winform一样的不需要上传到服务器,而是

基于Spring MVC实现基于form表单上传Excel文件,批量导入数据

在pom.xml中引入: <!--处理2003 excel--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.16</version> </dependency> <!--处理2007 excel--> <dependency> <group

使用CSVDE命令批量导入/导出AD用户

使用CSVDE命令批量导入/导出AD用户 CSVDE命令行工具可以将带有用户信息的CSV文件,批量导入/导出AD中. 导入的基本语法命令是这样的: csvde -i -f c:\filename.csv -k 输入以下命令查看具体参数: csvde /? 首先在Excel中设置好用户信息,然后将文件保存为csv格式. 在cmd中执行导入命令. 可以看到,导入成功.在AD中查看: 可以看到新增加的两个用户,但它们与其余三个不同,有个向下的箭头.这是因为CSVDE命令是无法导入密码的,所以导入的用户

利用OLEDB+SqlClient实现EXCEL批量导入数据

以下是几个自己写的类 /// <summary> /// 取得Excel对象 /// </summary> /// <param name="strConn">OLEDB连接字符串</param> /// <param name="sql">SQL语句</param> /// <returns></returns> public static DataTable GetE

java实现文件批量导入导出实例(兼容xls,xlsx)

1.介绍 java实现文件的导入导出数据库,目前在大部分系统中是比较常见的功能了,今天写个小demo来理解其原理,没接触过的同学也可以看看参考下. 目前我所接触过的导入导出技术主要有POI和iReport,poi主要作为一些数据批量导入数据库,iReport做报表导出.另外还有jxl类似poi的方式,不过貌似很久没跟新了,2007之后的office好像也不支持,这里就不说了. 2.POI使用详解 2.1 什么是Apache POI? Apache POI是Apache软件基金会的开放源码函式库,

poi批量导入excel文件

package com.practice.util; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import ja

Exchange Server 2016中批量导入邮箱帐号照片

在前面的文章中,我们主要介绍了管理如何为单个用户设置邮箱帐号头像,以及用户如何上传头像以实现个性化显示,那么在今天我们一起来学习管理员如何批量初始化上传用户帐号至邮箱帐号. 1.首先,我们像批量开启帐号的方法一样,利用CSV文件编辑好要配置邮箱头像的帐号,如下图所示: 2.接着呢,我们将对应员工照片放入对应存放路径,如下图所示: 3.制作PowerShell脚本,以实现批量导入功能,脚本内容及存放位置如下: Import-Csv -path C:\Employees_Accounts_Photo

Shp数据批量导入Postgresql工具的原理和设计

1.背景 在制作整体的开源工具箱产品中,数据入库是一个重要的环节.虽然PostGIS提供了数据入库界面化操作,但是毕竟此工具无法集成至我方工具箱中,并且该工具界面.操作都不是很理想,也无法定制化完成一些具体需求.所以,自制一个shp入库工具还是比较有必要的. 2.思路 2.1  shp导入思路 Shp导入至数据库中,无论是Postgresql.mysql.oracle等,均是先将Shp转换成符合对应数据库的sql,然后再导入进去对应数据库. 针对Postgresql,在PG的安装路径下有pgsq

mysql 如何提高批量导入的速度

mysql 如何提高批量导入的速度 最近一个项目测试,有几个mysql数据库的表数据记录达到了几十万条,在搭建测试环境 导入 测试数据时,十分慢.在网上搜索了一下,有下面一些方法可以加快mysql数据库导入数据的速度:0. 最快的当然是直接 copy 数据库表的数据文件(版本和平台最好要相同或相似):1. 设置 innodb_flush_log_at_trx_commit = 0 ,相对于 innodb_flush_log_at_trx_commit = 1 可以十分明显的提升导入速度:2. 使