做职业项目经理人

从专注中体验快乐

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

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

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

 

 

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

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

 

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/taric_ma/article/details/7409667
个人分类: oracle 杂谈
想对作者说点什么? 我来说一句

增强版ping命令(带时间戳

2017年04月22日 458B 下载

时间戳的串口工具

2017年09月24日 1.09MB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭