在 SQL 加载程序中重新格式化日期

Reformat date in SQL Loader

我正在使用 SQL 加载程序加载 Oracle 表,但我遇到了日期格式问题。包含数据的 CSV 文件包含 YYYY-MM-DD HH:MM:SS 格式的字符串,但 Oracle 表需要 DD-MON-YY 的日期格式。

我目前正在逐行浏览 CSV 文件,以在加载前查找并重新格式化任何日期,但文件可能达到 1000 万行以上,这可能是一个非常缓慢的过程。 SQL 加载程序是否允许在加载中重新格式化日期?

我正在寻找类似

的东西
LOAD DATA
INFILE 'data.csv'
TRUNCATE
INTO TABLE data
FIELDS TERMINATED BY '|'
TRAILING NULLCOLS
(
COL1,
COL2,
CREATED_DATE DATE 'DD-MON-YY',
LAST_UPDT_DATE DATE 'DD-MON-YY
)

我读过有关此 DATE 命令可以自动格式化日期的建议,但到目前为止还没有成功。

假设created_datelast_updt_date实际上在数据库中定义为date,它们没有格式。它们以人类不可读的内部压缩二进制格式存储。

您的控制文件需要指定平面文件中表示日期的字符串的格式。您说格式是“YYYY-MM-DD HH:MM:SS”,但这没有意义。分钟是 MI 而不是 MM,所以我认为这是一种类型。 HH 是 12 小时时间格式,但如果没有 AM/PM 指示器,它就没有意义。所以我猜你的字符串使用的是 HH24 的 24 小时时间格式。所以我猜你想要

CREATED_DATE DATE 'YYYY-MM-DD HH24:MI:SS',