Oracle ctl模版 sqlldr用法

将txt数据装载到数据库

数据无””,装载定长

LOAD DATA

CHARACTER-SET ZHS16GBK

truncate/append into table a

FIELDS TERMINATED BY ‘,’

TRAILING NULLCOLS

(a position(1:8),

b position(9:38),

c position(39:57)”:c/1000000”

)

a char(8)

b char(30)

c number(18,6)

 

数据有””,

LOAD DATA

CHARACTER-SET ZHS16GBK

truncate into table a

FIELDS TERMINATED BY ‘分隔符’

OPTIONALLY ENCLOSED BY ‘“‘

TRAILING NULLCOLS

(”a” “trim(:a)”,

”b” “trim(:b)”

)

 

例如一个字段无分隔符

 

LOAD DATA

CHARACTER-SET ZHS16GBK

INFILE ‘error.txt’

BADFILE ‘error.bad’

DISCARDFILE ‘error.dsc’

truncate into table a

(acount position(1 :30))

 

FILEDS给出记录中字段的分隔符。

FILEDS[TERMINATED [BY] (WITHSPACE|’CHARCTER’)]

[OPTIONALLY] ENCLOSED [BY] ‘CHARCTER’]

TERMINATED 读完前一个字段读下一个字段

WITHSPACE 结束符是空格的意思。包括空格,tab,换行符,换页符及回车。

OPTIONALLY ENCLOSED 表示数据由特殊字符括起来。使用OPTIONALLY同时要使用TERMINATED

TRAILING NULLCOLS变表字段没有对应值允许为空

 

sqlldr 用户名/密码@数据库名 data=/etl/a.txt control=/etl/b.ctl log=/etl/c.log

 

装载数据如果有重复数据可删除主键

select constraint_name from user_constraints where constraint_type=‘p’ 

and owner=‘用户名’ and table_name=‘大写表名’;

alter table a drop constraint xxx;

导入数据后增加主键

alter table a add constraint pk_a primary key(xx,xx);

 

或者

alter table a drop primary key;

数据加载后再建主键

alter table a add primary key(zz,xx);

违反唯一标志时候

alter table a enable row movement;

转载于:https://www.cnblogs.com/yuchunju/p/10791471.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值