SQL * Loader处理格式化日期

时间:2017-06-09 20:02:33

标签: sql oracle unix sql-loader

我正在开发此解决方案,我将收到一个假脱机文件,我需要将其插入表格。

我总是使用SQL * Loader,它很适合。但是我从来没用过日期。我收到此错误,因为我会显示:

控制文件

OPTIONS (ERRORS=999999999, ROWS=999999999)
    load data
     infile 'spool.csv'
     append
     into table A_CONTROL
     fields terminated by ","
     TRAILING NULLCOLS
    (
    AStatus,
    ASystem,
    ADate,
    AUser,
    )

spool.csv

foo,bar,2015/01/12 13:22:21,User

但是当我运行加载程序时出现了这个错误

       Column Name                  Position   Len  Term Encl Datatype
    ------------------------------ ---------- ----- ---- ---- ---------------------
    AStatus                             FIRST     *   ,       CHARACTER
    ASystem                              NEXT     *   ,       CHARACTER
    ADate                                NEXT     *   ,       CHARACTER
    AUser                                NEXT     *   ,       CHARACTER

  Record 1: Rejected - Error on table A_CONTROL, column ADate.
  ORA-01861: literal does not match format string

  Table A_CONTROL:
    0 Rows successfully loaded.
    1 Row not loaded due to data errors.
    0 Rows not loaded because all WHEN clauses were failed.
    0 Rows not loaded because all fields were null.

1 个答案:

答案 0 :(得分:2)

将字符串转换为插入日期。

OPTIONS (ERRORS=999999999, ROWS=999999999)
    load data
     infile 'spool.csv'
     append
     into table A_CONTROL
     fields terminated by ","
     TRAILING NULLCOLS
    (
    AStatus,
    ASystem,
    ADate "TO_DATE(:ADate,'YYYY/MM/DD HH24:MI:SS')",
    AUser,
    )