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')"
)
我有一个要加载的 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')"
)