【问题标题】:SQL Loader: column DR165_CREDIT_LIMIT_EXP_DT : Not a valid month errorSQL 加载程序:列 DR165_CREDIT_LIMIT_EXP_DT :不是有效的月份错误
【发布时间】:2019-08-14 04:23:14
【问题描述】:

1) 我正在使用 SQL 加载程序加载 WDDRCUST 表中的数据。日期列可以有诸如空白、“00000000”之类的值或真实日期值,例如'20190830'。根据要求,如果插入的日期不是真实日期,则它应该为空,并且我正在使用以下方法在 SQL 加载器中处理它

DR165_LAST_PRINC_PMT_DT   POSITION (14825:14832)  DATE 'YYYYMMDD' nullif DR165_LAST_PRINC_PMT_DT = '00000000',

但是当值为空白时,它会失败并给出无效的月份错误。你能分享我如何解决它吗?非常感谢您的帮助。


1.b)另外,如果可能的话,有人可以分享一下目前如何使用 to_date 函数解决这个问题,我有几个字段如下

DR165_AS_OF_DATE      POSITION (14572:14579)  "TO_DATE(TRIM(:DR165_AS_OF_DATE), 'YYYYMMDD')",

但在 DR165_LAST_PRINC_PMT_DT 案例中也失败了。

【问题讨论】:

    标签: sql-loader


    【解决方案1】:

    使用 case 语句:

       DR165_LAST_PRINC_PMT_DT   POSITION (14825:14832) DATE "YYYYMMDD" "CASE :DR165_LAST_PRINC_PMT_DT 
                                                                           WHEN '00000000' THEN NULL 
                                                                           ELSE to_char(to_date(trim(:DR165_LAST_PRINC_PMT_DT), 'YYYYMMDD'), 'YYYYMMDD' )
                                                                         END" 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      相关资源
      最近更新 更多