SQL加载器日期问题

时间:2017-08-02 22:06:25

标签: sql oracle sql-loader

下面是我尝试用来将数据从输入文件加载到Oracle的Sql加载程序控制脚本。我遇到了COL3的问题,这是DATATABLE中的日期数据类型。数据在文件中采用Timestamp格式。

错误我得到的是" ORA-00907:缺少右括号"。

load data
    INFILE 'C:\datafile.txt'
    INTO TABLE DATATABLE
    APPEND
    FIELDS TERMINATED BY '|' 
    (
     COL1,
    X FILLER,
    COL2 FLOAT,
    Y FILLER,
    Z FILLER,
    COL3 DATE(10) "TRUNC(TO_TIMESTAMP(:COL3,'MM/DD/YYYY'))",
    COL4, 
    COL5 "MM/DD/YYYY HH:MI:SS PM")

// C:\ datafile.txt

1234567|.59999999999999999|.39999999999999999|240.74000000000001|USER1|11/29/2016 12:00:00 AM|USER1|11/29/2016 12:00:00 AM

我用下面的sql测试了输出,这似乎是正确的:

select TRUNC(to_timestamp('JAN 29 2016 12:00:00 AM', 'MON DD YYYY HH:MI:SS:FF3 PM')) FROM DUAL ;

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

尝试那样(我不能在这台电脑上试试)

load data
    INFILE 'C:\datafile.txt'
    INTO TABLE DATATABLE
    APPEND
    FIELDS TERMINATED BY '|' 
    (
     COL1,
    X FILLER,
    COL2 FLOAT,
    Y FILLER,
    Z FILLER,
    COL3 DATE 'MM/DD/YYYY HH:MI:SS AM',
    COL4, 
    COL5 DATE 'MM/DD/YYYY HH:MI:SS AM')

数据文件中的日期格式不是时间戳。这是oracle的正常日期格式。因此,您不必尝试将其转换为时间戳