三流備忘録
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後、新規にデータがロードされる