如何装载带有时间戳的数据

使用以下语句,导入成功:

1、建表时使用TIMESTAMP类型

 

2、编写CONTROL文件时,使用“TIME             TIMESTAMP \"yyyymmddhh24missff6\"  ”

 

 

 

转载一篇文章:

http://blog.itpub.net/post/5493/226131

 

客户要load一段数据,中间有含有毫秒的日期型数据。
建表语句含有如下语句:
...
CA_VALUE_DATE date,
CA_POST_DATE date,
...

开始试着用to_char(sysdate,'..')语句测试怎样才能取出毫秒数据,始终未能如愿。
后来经google发现,这样的语句可以拿到毫秒级别数据:
select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ssxff') time1,
to_char(current_timestamp) time2 from dual;


原来ff可以用来取出毫秒级别数据,于是修改control file如下:

LOAD DATA
APPEND INTO TABLE EP_CURRENT_CA_MOVEMENT
FIELDS TERMINATED BY X'09'
(
CA_CCY_CODE,
CA_AC_NUM,
CA_CIF_NUM,
CA_TRAN_REFNO,
CA_VALUE_DATE date "Mon DD YYYY HH12:MI:SS:ff3PM",
CA_POST_DATE date "Mon DD YYYY HH12:MI:SS:ff3PM",
CA_TRAN_AMT,
CA_RUN_BAL,
CA_TRAN_DESC,
CA_PRT_SEQ_NO,
CA_TRAN_CODE,
CA_TRAN_SOURCE,
CA_TRAN_IND,
CA_CS_FREQ,
CA_DATE_FROM date "Mon DD YYYY HH12:MI:SS:ff3PM",
CA_DATE_TO date "Mon DD YYYY HH12:MI:SS:ff3PM",
BOOKING_CENTER CONSTANT "SG"
)

涛声依旧,依然load不进去。
想起sysdate中也是取不出毫秒,想来应该是日期型数据没有存储毫秒的地方,修改建表语句:
...
CA_VALUE_DATE timestamp,
CA_POST_DATE timestamp,
...

再试,终于成功!!心情大畅。
附sqlldr启动语法如下:
sqlldr userid=username/password@instance control=c:table_name.ctl data=c:abc log=c:ep.log

 

 

**********************************************************************************

按照以上做法,没有成功。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CN_项目集管理专家(PgMP)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值