SQLDeveloperでのOracleデータのimport/export sqlldr(SQLローダー)編

前回の記事でOracleのインポート/エクスポートをエクセルにて行いました。

エクセルを利用するとデータの加工や、各テーブルのデータをまとめて保存しておけるのが便利ですが、大量のデータとなると、「テキストファイル&SQLローダー」の組み合わせで処理した方が便利です。

そこで今回の記事では、SQLローダー(sqlldr)を利用した方法をご紹介します。

データのエクスポート

あるテーブルのデータをエクスポートするには、今回は「SQLDeveloper」を使います。

というのも、SQLDeveloperには非常に便利な機能があり、ワンクリックで、ファイルにエクスポートできるからです。

しかも、出力されたファイルには、sqlldrでのインポートに利用できる制御情報がデフォルトで埋め込まれていますから、面倒な記述なしで、sqlldr形式でのデータのエクスポート⇒インポートができるというわけです。

では、早速エクスポートしてみます。

SQLDeveloperでDBに接続し、対象のテーブルを右クリックします。表示されたメニューで、「データのエクスポート」⇒「loader」を選択してください。

やることはこれだけです。

ファイルの保存場所を指定すれば、そこにエクスポートしたデータが「.ldr」の拡張子で保存されます。

なお、そのファイルには制御情報も含まれると言いました。

実際に吐かれるファイルは以下のようなものです。

LOAD DATA
INFILE *
TRUNCATE
INTO TABLE "SAMPLE1"
FIELDS TERMINATED BY '|'
TRAILING NULLCOLS (
CUST_CODE ,
CUST_NAME ,
DATE_COL timestamp "YY-MM-DD" ,
TIME_COL timestamp "YY-MM-DD HH24:MI:SS" )
begindata
aa|aa1|13-05-21|13-05-21 10:35:26
bb|bb1|13-05-21|13-05-21 10:35:52
注意

日付やTIMESTAMP型のデータをエクスポート/インポートする場合には、前回の記事の注意を参考にしてください。
でないと、失敗するかもしれません。

データのインポート

データをインポートするには「sqlldr」を使います。Sqlldr.exeのあるディレクトリにパスが通っていることを確認して、以下のコマンドを入力しましょう。

sqlldr username/password@sid control=上記で出力したファイル log='ログファイル名'

制御ファイルとinファイルが同じファイル内に記述されていますので、上記のコマンドでOKです。