oracle进行sqlldr实现文件列拼接,并入库成日期类型

问题描述:文本文件准备sqlldr入库,
文件列 a,b,c,d,e
表字段 a,b,c,d,e,f
我sqlldr入库 文件列a,b,c,d,e对硬表的a,b,c,d,e 但是表字段f必须用文件列的a和b串接的结果入库
其中a是天日期串,b是小时字段
f则需要a与b拼接,并且f是date
1、表字段如下
create table nwom.test_sqlldr
(
a varchar2(12),
b varchar2(12),
c varchar2(12),
d varchar2(12),
e varchar2(12),
f date
)
2、test.txt文件列如下
a,b,c,d,e
20171204,12,3,4,5
20171123,08,9,10,25
3、实现入库test.ctl脚本如下
OPTIONS(SKIP=1)
LOAD DATA
CHARACTERSET ZHS16GBK
INFILE 'D:\test\test.txt' "str X'0D0A'"
APPEND
INTO TABLE nwom.test_sqlldr
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(
a,
b,
c,
d,
e,
f date "yyyy/mm/dd hh24:mi:ss" ":a||:b"
这里关键点在于date "yyyy/mm/dd hh24:mi:ss" ":a||:b"
date作为指定日期串的格式,:a||:b作为取到a列和b列的值,
冒号:的作用就相当于在触发器里的变量取值,也相当于在plsql过程里的变量赋值取值一般
4、调用sqlldr命令入库
sqlldr userid=nwom/nwom@22_NWOM control=D:\test\test.ctl log=D:\test\test.log
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值