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

SQL loader join date and time into single column

我有一个要加载的 csv 文件,其中包含以逗号分隔的日期和时间。我需要将它们连接在一起并将它们放在 oracle 数据库中的单个日期列中 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.

将数据中的字段标记为BOUNDFILLER,即保存以备后用。请务必为它们提供一个与 table 中的列不匹配的名称。然后,对于列名,将它们与将它们转换为日期的表达式组合起来:

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,
        X_DATE     BOUNDFILLER,
        X_TIME     BOUNDFILLER,
        cust_date  EXPRESSION "TO_DATE(:X_DATE || ' ' || :X_TIME, 'YYYY-MM-DD HH24.MI.SS')"
    )