三流備忘録

ホーム >> その他の備忘録 >> SQL*Loder

SQL*Loder

説明

SQL*Loderを使用して、外部ファイル(CSV、固定長、etc)をOracleデータベースの表にロードできます。
制御ファイルとDATファイルを作成し、SQL*Loderの引数に設定し起動して使用します。

SQL*Loderの起動

sqlldr userid=scott/tiger@orcl control=制御ファイル.ctl data=データファイル.dat log=ログファイル.log

可変長データのロード例

制御ファイル(test.ctl)
LOAD DATA                                              --必須
INFILE 'hoge.dat'                                      --DATファイルの指定
APPEND                         --INSERT、APPEND、REPLACE、TRUNCATE
INTO TABLE TBL_HOGE                                    --ロードする表
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'    --デリミタ指定
TRAILING NULLCOLS                                      --レコードに指定した列がない場合NULL
(
  "HOGEID",
  "SEQ",
  "NAME"
)
DATファイル(hoge.dat)
1,100,HOGE1-100
1,200,HOGE1-200
2,100,HOGE2-100

固定長データのロード例

制御ファイル(test2.ctl)
LOAD DATA                                              --必須
INFILE 'hoge2.dat'                                     --DATファイルの指定
REPLACE                        --INSERT、APPEND、REPLACE、TRUNCATE
INTO TABLE TBL_HOGE                                    --ロードする表
(
  HOGEID   POSITION(01:03) INTEGER EXTERNAL,
  SEQ      POSITION(04:06) INTEGER EXTERNAL,
  NAME     POSITION(07:16) CHAR
)
DATファイル(hoge2.dat)
1  100HOGE1-100
1  200HOGE1-200
2  100HOGE2-100

空/空でない表へのロード

INSERT:  ディフォルト、ロード前に表のデータを削除する必要有
APPEND:  表にデータがある場合、データがない場合ロードされる
REPLACE: 表のデータを削除し、新規にデータがロードされる
TRUNCATE:TRUNCATE後、新規にデータがロードされる