oracleで特定のユーザーのすべてのテーブルをエクスポートの方法
以下の手順で、特定のユーザのすべてのテーブルをエクスポートできます。
- SQL*Plusなどのツールを使って、Oracleデータベースにログインしているユーザーは以降のコマンドでログインできる:
- sqlplus ユーザー名/パスワード@データベース
- 現在のユーザー配下の全てのテーブルを確認するには次を実行します。
- OWNER = ‘ユーザ名’ である all_tables から table_name を選択
- your_usernameはエクスポートするテーブルのユーザー名です。
- OracleのData Pumpツールを使用して表をエクスポートします。SQL*Plusで、以下のコマンドを実行できます。
- natively in japanese, only need one option: expdp username/password@database tables=table1,table2,table3 directory=directory_name dumpfile=dumpfile_name.dmp logfile=logfile_name.log
- この中で、username はエクスポートするテーブルのユーザ名、table1、table2、table3 はエクスポートするテーブル名、directory_name はエクスポートするファイルのディレクトリ名、dumpfile_name.dmp はエクスポートするファイルの名前、logfile_name.log はエクスポートするログファイルの名前です。
- すべての表をエクスポートする場合は、ワイルドカード * を使用できます。サンプル:
- expdp username/password@database tables=*. directory=directory_name dumpfile=dumpfile_name.dmp logfile=logfile_name.log
- このコマンドを実行すると、Oracleは指定されたユーザー配下の全ての表を指定されたエクスポートファイルに出力し、対応するログファイルを生成します。
なお、テーブルのエクスポートには適度な権限が必要なので、現在のユーザーに十分な権限がない場合は、適切な権限を持つユーザーでログインして上記のコマンドを実行してください。また、エクスポートしたファイルは、データベースサーバー内の指定したディレクトリに保存されます。