由于项目需要,需要向数据库中导入6000万条数据。现有的资源是txt文本(数据用“,”分开的)。
方案一:转换成insert语句,但是执行效率太低,放弃。
方案二:使用plsql工具(tool-text import),这种效率大概是50万条每小时。由于时间紧急所以也不行。
方案三:使用sqlldr,这种效率还凑合,大概350万每小时。下面着重介绍下。
工具:sqlloader
前提:安装oracle服务端
环境:6000万数据、i5cpu,4g内存,oracle10g
步骤:
执行过程中的数据如下:
1. 书写ctl文件(本例risk.ctl):
OPTIONS(skip_index_maintenance=TRUE,direct=true,BINDSIZE=20971520,READSIZE=20971520,ERRORS=-1,ROWS=500000)
unrecoverable
load data
CHARACTERSET AL32UTF8
infile 'C:\Users\LHB\Desktop\TaxmodelData\PureRiskPremiumItem.txt'
insert into table pureriskpremium
Fields terminated by ','
trailing nullcols
(MODELCODE,
BASICRATECODE,
AREACODE,
BASICRISKPREMIUMS,
BIZVERSION,
EFFECTIVETIME,
OBTAINCREATETIME
);
解释:
ROWS=500000 每500000提交
C:\Users\LHB\Desktop\TaxmodelData\PureRiskPremiumItem.txt' 需要处理的真实
Fields terminated by ',' 分隔符,本例分隔符是“,”
pureriskpremium 表名
2. 打开cmd
sqlldr jyrluser/jyrluser@10.9.249.5:1521/xasccxdb1 control=C:\Users\LHB\Desktop\TaxmodelData\risk.ctl
log=c:\jrimp.log
解释:sqlldr 用户名/密码@真实的ip:端口号/实例名 control=控制文件地址 log=日志(失败时才有日志)
3. 回车后,如果没有报错,说明正在执行。每执行一定条数会提示出来。
4. 报错信息调试:
SQL*Loader-2026:加载因SQL加载程序无法继承而被终止
SQL*Loader-925:uldlfca:OCIStmtExecute(ptc_hp)时出错
ORA-03114:未连接到ORACLE
当时执行到3000左右时,报错了,然后查询报错日志,从日志中看出,字段定义长度太短,导致报了3000万条错误,后来扩充了字段。再次执行,就好用了。
C:\Users\Administrator>sqlldr xinjiatao/xinjiatao@127.0.0.1:1521/ORCL control=F:\New_Data\A\test.ctl log=c:\xin.log data=F:\New_Data\A\score_20170715.csv
相关推荐
oracle sqlldr多文件批量导入
Oracle sqlldr 大批量数据导入工具使用实例,通过Oracle 自带的sqlldr 工具可快速导入大批量的数据至Oracle中。 工具使用前提条件: 1.安装的Oracle Client 不能为精简版,要不然就找不到sqlldr.exe 2.将Oracle的...
利用sqlldr大量数据导入,方便,快速
C# 通过oracle sqlldr 将TXT批量导入oracle 一个文件夹里有大量的TXT文件,以"~"区分各字段. 这个程序能批量将此文件夹里的所有的文件导入oralce 并按日期把已导入的TXT文件复制另一个文件夹
windowns下利用bat命令+oracle的sqlldr功能导入数据,导入速度很快
oracle sqlldr导入带有自动增加的数据实例
oracle11g基本客户端,主要是sqlplus,sqlldr,exp,imp这几个命令。最最主要的还是sqlldr,想找个单独可用的sqlldr,在Oracle 10g Client 精简优化安装包不到12M ...
oracle sqlload详解文档 从源码到案列详细说明,让你一分钟学会sqlload
实用基础SQL语句;oracle sqlldr;SQL基础语句;merge;分组排序;条件赋值;表连接。简单示例,Oracle数据库文档数据导入
NULL 博文链接:https://fly5650104.iteye.com/blog/1939052
sqlldr自动生成控制文件导入到表,可以做到备份的目的,全自动
VS2013 C#.Net开发 C#利用SqlLdr 数据批量导入Oracle程序源码,高效可达万行/秒。 1.可多表同时执行 2.可视导入信息反馈,可查看错误数据及导入日志。 3.内含 批处理 执行方法 及 导入 ldr Demo文件。 4.内含导数据...
oracle sqlldr 工具应用说明,将固定格式的文件数据导入到数据库中
同时代码还会生成sqlldr命令需要用到的control文件和bat文件,以及连接Oracle的配置文件,只要将MySQL导出的数据文件合到一起,执行bat文件,即可完成数据导入到Oracle的任务。所有文件都是以导入导出的那张表的表名...
Oracle SQLLDR介绍及基于SQLLDR的数据库同步系统实现,刘苑琦,邹仕洪,SQL*Loader是Oracle数据库系统提供的一个高速批量数据加载工具,它可以在极短的时间内加载数量庞大的数据,可以直接被前端应用程序调��
oracle最强大的sqlldr上传工具
涉及sqlldr的参数说明和常见应用
Oracle sqlldr导入一个日期列实例详解 1. LOAD DATA INFILE * INTO TABLE test FIELDS TERMINATED BY X'9' TRAILING NULLCOLS ( c2 "upper(:c2)", c3 date "yyyymmdd", c1 "SEQ_test_c1.nextval" ) BEGINDATA ...
oracle 11.2客户端(linux) sqlldr相关文件 如果oracle客户端用的是rpm方式安装: sqlldr命令放在bin 其他文件放在lib 如果oracle客户端用的是直接解压方式: 所有都放在根目录即可
用的是11.2.0.4的Instant Client,Oracle没给sqlldr,Tools里面也没有(12C就有)。 网上下载了几个都是11.2.0.1的sqlldr,包括标了版本号的,都需要替换库文件。 这个是自己安装p13390677_112040_Linux-x86-64_4of7...