我有一个要加载的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.
答案 0 :(得分:1)
将数据中的字段标记为BOUNDFILLER,这意味着保存它们以供以后使用。一定要给它们一个与表中的列不匹配的名称。然后,对于列名称,将它们与将其转换为日期的表达式组合:
Gradle