解码函数在SQL * Loader中不起作用

时间:2018-01-10 17:19:28

标签: oracle sql-loader

我正在使用SQL * Loader将数据从CSV导入Oracle表。我的数据有多个日期字段,我需要用' 0001-01-01-00-00-00'替换空值。和其他值需要遵循日期格式。

我使用像

这样的解码选项
decode(:QUOTE_CREATE_DT,NULL,'0001-01-01-00.00.00',
  TO_DATE(:QUOTE_CREATE_DT,'MM/DD/YYYY HH24:MI:SS'))

在出现空值时无效。

SQL * Loader错误:

Record 2: Rejected - Error on table EX_QUOTE_MO_SAMPLE, column QUOTE_CREATE_DT.
ORA-01847: day of month must be between 1 and last day of month

1 个答案:

答案 0 :(得分:0)

您的版本依赖于使用SQL * Loader会话的NLS设置进行隐式转换。

您可以使用decodecoalescenvl以您要转换的格式提供日期字符串,但在{{1}内呼叫:

to_date()