Oracle SQL*Loader使用方法
SQL*Loaderとは?
外部ファイル(CSV等)のデータをOracleDatabase取り込むOracle標準ツール
実行コマンド
sqlldr
ユーザー名/パスワード@DB
control='制御ファイル名'
log='ログ出力先'
rows=コミット単位
errors=エラー許容数
skip=スキップ件数
例
sqlldr user/pass@test control='tbl.ctl' log='log.log' rows=1000 errors=-1 skip=3
制御ファイル
OPTIONS (
ダイレクトモードでロード(バッファ未使用=高速)
DIRECT=TRUE
)
LOAD DATA
キャラクタセット名(入力ファイルの漢字コード)
CHARACTERSET ~
LENGTH SEMANTICS CHAR
入力ファイルパス
INFILE '~.ctl'
INSERT/APPEND/TRUNCATE/REPLACE
TRUNCATE
ロード対象表
INTO TABLE スキーマ.表
区切り文字(INFILEがCSVの場合)
FIELDS TERMINATED BY ','
INFILEに囲み記号ありの場合
OPTIONALLY ENCLOSED BY '"'
条件に合致するデータのみロードする場合
WHEN (列名1 = 'a' AND 列名2 = 'B')
取り込み対象列
TRAILING NULLCOLS
(
列名1,
列名2,
列名3,
~
)
例
※tbl.ctl
OPTIONS (
DIRECT=TRUE
)
LOAD DATA
CHARACTERSET JA16SJISTILDE
LENGTH SEMANTICS CHAR
INFILE '入力ファイルパス'
TRUNCATE
INTO TABLE TEST.TABLE1
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
WHEN (列名1 = 'a' AND 列名2 = 'B')
TRAILING NULLCOLS
(
列名1,
列名2,
列名3
)