您的位置:首页 > 数据库 > Oracle

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

2018-01-04 09:48 323 查看
问题描述:文本文件准备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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: