oracle的sqlload遇到超长,oracle sqlload

SQLLOADER的命令:SQLLDR USERID=SYS/SYS@DB_SERVICE CONTROL=XXXX.CTL LOG=XXXX.LOG

BINDSIZE=1048576 ROWS=100 ERRORS=10000 READSIZE=2097152

SILENT=(HEADER,FEEDBACK)关于这些参数的帮助在命令行直接执行SQLLDR可以得到,这里指出BINDSIZE不应该大于READSIZE的值。关于SPOOL导出文本数据的一些格式建议:SQL*PLUS环境设置SET NEWPAGE NONE HEADING OFF

SPACE 0 PAGESIZE 0 TRIMOUT ON TRIMSPOOL ON LINESIZE

2500注:LINESIZE要稍微设置大些,免得数据被截断,它应和相应的TRIMSPOOL结合使用防止导出的文本有太多的尾部空格。但是如果LINESIZE设置太大,会大大降低导出的速度,另外在WINDOWS下导出最好不要用PLSQL导出,速度比较慢,直接用COMMEND下的SQLPLUS命令最小化窗口执行。对于SPOOL数据的SQL,最好要自己定义格式,以方便我们的导入,如例子如下:SELECT

JBSJ.JSJDM||CHR(9)|| JBSJ.ZZJGDM||CHR(9)||

JBSJ.YYZZH||CHR(9)||

REPLACE(REPLACE(JBSJ.NSRMC,CHR(10)),CHR(13))||CHR(9)||

QYRY.ZJLXDM||CHR(9)||

REPLACE(REPLACE(QYRY.ZJHM,CHR(10)),CHR(13))||CHR(9)||

REPLACE(REPLACE(QYRY.XM,CHR(10)),CHR(13))||CHR(9)||

REPLACE(REPLACE(JBSJ.ZCDZ,CHR(10)),CHR(13))||CHR(9)||

REPLACE(REPLACE(JBSJ.JYDZ,CHR(10)),CHR(13))||CHR(9)||

REPLACE(REPLACE(JBSJ.JYFW,CHR(10)),CHR(13))||CHR(9)||

REPLACE(REPLACE(JBSJ.JYDZYB,CHR(10)),CHR(13))||CHR(9)||

ZCLX.DJZCLXDM||CHR(9)||

TO_CHAR(JBSJ.KYDJRQ,'YYYY-MM-DD')||CHR(9)||

JBSJ.SWJGZZJGDM||CHR(9)||

REPLACE(REPLACE(SWJGZZJG.SWJGZZJGMC,CHR(10)),CHR(13))||CHR(9)||

JBSJ.ZCZBJE||CHR(9)||

JBSJ.NSRZT||CHR(9)||

NSRZT.NSRZTMC

FROM DJDB.DJ_JL_JBSJ JBSJ,

DJDB.DJ_JL_QYRY QYRY,

DMDB.GY_DM_SWJGZZJG SWJGZZJG,

DMDB.DJ_DM_DJZCLX ZCLX,

DMDB.DJ_DM_NSRZT NSRZT

WHERE JBSJ.DJZCLXDM=ZCLX.DJZCLXDM

AND JBSJ.JSJDM=QYRY.JSJDM

AND QYRY.ZWDM='01'

AND JBSJ.SWJGZZJGDM=SWJGZZJG.SWJGZZJGDM

AND JBSJ.NSRZT=NSRZT.NSRZTDM

AND JBSJ.NSRZT!=90

AND JBSJ.KYDJRQ <

TO_DATE('20040701','YYYYMMDD')对于字段内包含很多回车换行符的应该给与过滤,形成比较规矩的文本文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值