SQL加载器将日期和时间加入单列

时间:2018-04-19 01:17:49

标签: oracle datetime sql-loader

我有一个要加载的csv文件,其日期和时间用逗号分隔。我需要将它们连接在一起并将它们放在oracle db table中的单个日期列中。

示例数据:

17960152,   red,1994-05-14,23.00.00
38424235,   blue,1996-05-10,12.36.28

这太简单了;有数百万行和其他数据字段(包括没有此问题的更多日期)。

有人可以帮助我让加载程序只读这个逗号而不是分隔符吗?

我尝试过以下控制文件:

OPTIONS (SKIP=0, direct=true)
LOAD DATA
    INFILE "..\test.csv" BADFILE ".\test.bad" DISCARDFILE ".\test.dis"
INSERT
INTO TABLE table_test
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    TRAILING NULLCOLS
    ( 
        cust_ID,
        cust_TYPE,
        cust_date1       filler,
        cust_date2      DATE "hh24:mi:ss" "to_date(:cust_date1,'yyyy-mm-dd') + :cust_date2",
    )   

错误是:

SQL*Loader-291: Invalid bind variable cust_date1 in SQL string for column cust_date2.

1 个答案:

答案 0 :(得分:1)

将数据中的字段标记为BOUNDFILLER,这意味着保存它们以供以后使用。一定要给它们一个与表中的列不匹配的名称。然后,对于列名称,将它们与将其转换为日期的表达式组合:

Gradle