怠日記

写真・金魚・昆虫・プログラミングの趣味を語るサイトです。似たようなことをnoteにも書いたり書いてなかったり。

Oracle - exp コマンドでデータをエクスポートする

exp コマンドで Oracle のデータをエクスポートできる。

exp のエクスポートモード

exp には次の4種類のエクスポートモードがある。

  • 全体: データベース全体をエクスポートする
  • 表領域: 指定した表領域をエクスポートする(使ったことがないので詳しいことはわからない)
  • ユーザー: 指定したユーザーが所有するすべてのオブジェクトをエクスポートする
  • : 指定した表をエクスポートする

exp の構文

exp の基本的な構文は次のとおり。

exp 〈ユーザー/パスワード〉 〈エクスポートモード〉 〈ダンプファイル〉 〈そのほかの引数〉

データベース全体をエクスポートする

データベース全体をエクスポートするには全体モードを使う。

exp のエクスポートモードには full=y を指定する。

exp scott/tiger full=y file=/path/to/dumpfile.dmp

表領域をエクスポートする

表領域をエクスポートするには表領域モードを使う。

exp のエクスポートモードには tablespaces=〈エクスポートする表領域名〉 を指定する。

exp scott/tiger tablespaces=tablespace file=/path/to/dumpfile.dmp

ユーザーをエクスポートする

ユーザーが所有するオブジェクトをすべてエクスポートするには、ユーザーモードを使う。

所有するオブジェクトとは、表・権限・索引・ストアドプロシージャ―などを指す。

exp のエクスポートモードには owner=〈エクスポートするユーザー名〉 を指定する。

exp scott/tiger owner=scott file=/path/to/dumpfile.dmp

表をエクスポートする

指定したテーブルをエクスポートするには表モードを使う。

exp のエクスポートモードには tables=〈テーブル名〉 を指定する。

複数のテーブルを指定する場合はカンマ区切りで指定する。また、テーブルのリストを括弧で囲む。

exp scott/tiger tables=\(TBL1, TBL2, TBL3\) file=/path/to/dumpfile.dmp

ファイルの出力先を指定する

ダンプファイルの出力先は file= に指定する。

余談

exp は『オリジナルのエクスポート・ユーティリティ」と呼ばれる。

exp は Oracle 11g からは原則としてサポートされなくなった。
Oracle 11g からは exp ではなくデータ・ポンプ・エクスポート(expdp)の使用が推奨されている。

とは言っても expdp はサーバー側で処理が実行され、ダンプファイルもサーバーに保存されるため、微妙に使いにくい(と思っている)。