SQL 加载程序日期问题

SQL loader date issue

下面是 Sql 加载程序控制脚本,我试图用它来将数据从输入文件加载到 Oracle。我对 COL3 有疑问,它是 DATATABLE 中的日期数据类型。文件中的数据采用时间戳格式。

我得到的错误是 "ORA-00907: missing right parenthesis"。

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 ;

如有任何帮助,我们将不胜感激。

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

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 的正常日期格式。所以你不必尝试将其转换为时间戳