SQL*Loaderを使用したデータ移行手順
本項では、SQL*Loaderを使用したデータ移行手順について説明します。
ただし、SQL*Loaderを用いる場合は、OracleDatabaseへ取り込むデータ(CSV, Text等)を移行元から抽出出来ていることが前提になります。オリジナル(exp/imp)やDatapump(expdp/impdp)と異なる点としては、移行元がOracleDatabaseでなくてもSQL*Loaderで取り込み可能な形式でデータが作成できれば、エクセルでもAccessでもMYSQLでも、どの環境からでもデータの取り込み(ロード)が可能となります。
またSQL*Loaderは、制御ファイルに記載された「データの場所」、「データの分析と解釈方法」、「データの挿入先」などの情報をもとにデータの取り込みを実行します。以下に制御ファイルの特徴について記載します。
〜制御ファイルの特徴〜
制御ファイルは、SQL*Loaderが解釈できる言語で記述されたテキストファイルです。データの場所、データの分析と解釈方法、データの挿入先などをSQL*Loaderに通知する役割を持っています。
制御ファイルには、大きく分けて以下の3つのセクションがあります。
◎第1セクションは、セッション全体の情報が記述されます。
バインドサイズ、行、スキップ・レコードなどのようなグローバル・オプション情報が含まれます。
◎第2セクションは、1つ以上のINTO TABLEブロックで構成されています。
それぞれのブロックには、表名、その表の列などの、データがロードされる表についての情報が含まれています。
◎第3セクションは、オプションとなります。
このセクションがある場合は、入力データが記述されます。
|
@ 取り込むデータの確認
$ cat /tmp/import_data
"0001","JOHN","01/12/1951"
"0002","PETER","05/01/1966"
"0003","JEAN","06/09/1970"
"0004","ANJU","04/02/1978"
"0005","SCOTT","12/09/1976"
|
エクセルやAccessなどの外部データベースから抽出したデータ形式を確認します。
A 制御ファイル作成
$ cat /tmp/control_file
LOAD DATA
INFILE '/tmp/import_data'
INTO TABLE IMPTABLE
APPEND
FIELDS TERMINATED BY ','
(ID,NAME,BIRTHDAY)
|
上記の例は、第2セクションまでの記載となります。
B データ取り込み実行
$ sqlldr userid=test/test, control='/tmp/control_file'
|
◎ エクスポート/インポート(exp/imp)を用いたデータ移行
|-エクスポート/インポート(exp/imp)について
|-移行モードごとの移行対象オブジェクトについて
|-exp/impを使用したデータ移行手順
◎ DataPump(expdp/impdp)を用いたデータ移行
|-DataPump(expdp/impdp)について
|-DataPump(expdp/impdp)を使用したデータ移行手順
◎ SQL*Loaderを用いたデータ移行
|-SQL*Loaderについて
|-SQL*Loaderを使用したデータ移行手順
◎ OracleGoldenGateを用いたデータ移行
|-OracleGoldenGateについて
|
スポンサードリンク
|