in
MySQL
- 06 11月, 2013
SQL*Loader入門
SQL*Loaderとは、CSVファイルなどに入力されている大量のデータを
一括してOracleのデータベースへ登録できるツールです。
insert文を発行するよりも高速なので便利です。
今回はSQL*Loaderの基本的な使い方をご紹介します。
SQL*LoaderはCTLファイルに設定を書き込み、その設定を元に実行します。
実行するには、CTLファイルと読み込みたいファイルを同ディレクトリに置き
SQL*Loaderを起動させることで登録できます。
CTLファイルは大きく分けて3つの設定が必要です。
1.OPTIONS
ここでは、読み込み時の設定をします。
- LOAD:読み込むレコード数
- SKIP:読み込まないレコード数
- ERRORS:許容するエラー数
- ROWS:何レコードでコミットするか
2.LOAD DATA
ここでは、読み込むファイルと、不良・廃棄ファイルの書き込み先を指定します。
- INFILE:読み込むファイル
- BADFILE:不良ファイル。ロードしようとしてはじかれたレコード
- DISCARDFILE:廃棄ファイル。ロード対象として不正とみなされたレコード
3.INTO TABLE
ここでは、登録先テーブルの設定をします。
レコード登録モード
- INSERT:新規にデータを登録する。この場合、テーブルは空でなければならない
- APPEND:データを追加する
- REPLACE:テーブルの全データ削除し、新規にデータを登録する。DELETEに相当
- TRUNCATE:テーブルの全データ削除し、新規にデータを登録する。TRUNCATEに相当
- INTO TABLE:登録先テーブル
- TERMINATED BY:データ区切り文字の指定
- OPTIONALLY ENCLOSED BY:データ囲い文字の指定
- WHEN:レコード登録条件指定
今回紹介したのはほんの一例です。
まだまだ様々な設定があります。
最後にこれらを使ったCTLファイルの例をご紹介します。
OPTIONS( --決まり文句
--これでコメントが書けます。
--100件読み込む
LOAD=100,
--上から3行目までを読み込まない
SKIP=3,
--エラー100件まで許容
ERRORS=100,
--10件ごとにコミット
ROWS=10
)
LOAD DATA --決まり文句
--読み込むファイル
INFILE 'C:\Syain_data.csv'
--不良ファイル。ロードしようとしてはじかれたレコード
BADFILE 'C:\badfile.log'
--廃棄ファイル。ロード対象として不正とみなされたレコード
DISCARDFILE 'C:\discardfile.log'
--データを追加登録
APPEND
--登録先テーブルをSYAIN_TABLEに指定
INTO TABLE SYAIN_TABLE
FIELDS --決まり文句
--区切り文字はカンマ(,)
TERMINATED BY','
--囲い文字はダブルクォート(")
OPTIONALY ENCLOSED BY'"'
(
ID INTEGER
NAME CHAR(20)
BIRTHDAY DATE 'yyyy/mm/dd' --yyyy/mm/ddにフォーマット
)
"1","tanaka","19850216" "2","yamada","19771029" "3","sato","19900903"
これで基本的なSQL*Loaderを使うことが出来ます。


