SQL*LoaderでCSVを読み込みたいんです

余計なことを考えずに書く。

LOAD DATA
    -- DATA files , BAD , DISC file
    INFILE       'ldrSample.dat'
    BADFILE      'ldrSample.bad'
    DISCARDFILE  'ldrSample.dis'
    -- APPEND ROWS
    APPEND
        PRESERVE BLANKS
        INTO TABLE JOB_HISTORY
    FIELDS
        TERMINATED BY ','
        OPTIONALLY ENCLOSED BY '"'
    (
        EMPLOYEE_ID     DECIMAL EXTERNAL(6),
        START_DATE      DATE 'FMYYYY/MM/DD',
        END_DATE        DATE 'FMYYYY/MM/DD',
        JOB_ID          CHAR(10),
        DEPARTMENT_ID   DECIMAL EXTERNAL(4)
    )

コントロールファイルはこの調子。ファイルは

100,2001/1/3,2010/11/22,60
100,2001/2/3,2010/11/22,60
100,2001/3/3,2010/11/22,60

一部カラムはCSVに書かずにコントロールファイルに書いてあっても、うまくCSVからあてはめてロードしてくれる。

PRESERVE BLANKSがなかなか認識されなくてはまった。。APPEND・INSERTなどの後ろに書かないといけないのね。

参考