Oracleは、あるユーザの下のすべてのテーブルデータを削除しますが、テーブル構造は削除されません.
908 ワード
まず二つの案があります.
第一種類:データポンプを使う(参考:http://www.itpub.net/thread-465502-1-1.html 二階の版主blue uplrice)
具体的なやり方は以下の通りです.
1)データポンプでこのユーザーのテーブル構造を導出する(expdp....content=metadata uonly;)
2)カスケードはこのユーザーを削除します.
3)このユーザーを再構築する
4)前にエクスポートしたdmpファイルを導入し、テーブル構造を復元します.
第二種類:truncate文を使う
1)メインキーの関係が禁止されています(http://blog.csdn.net/hao00zzb/article/details/7389633)
2)ダイナミックSQL文でユーザーの全表を調べて、truncateを落とします.
参考語句:
この二つの方法の長所と短所を言いましょう.
第一の方法 利点:比較的簡単で、いくつかのコマンドが解決されます.それほど多くのメインキー関係を分析する必要もありません.
短所:削除するユーザーデータベースにsessionがある場合は、一つ一つ停止します.停止できないアプリケーションがあったら、この方法はだめです.
第二の方法の利点:このユーザーのユーザー名とパスワードがあればいいです.あまり高い権限を持たずにできるので、操作に大きなリスクはありません.
短所:操作が面倒で、一定のSQL実行能力が必要です.
まとめ:まずバックアップを取ってから着手します.方法はDemoライブラリで一回だけ作ったことがあります.データ量も数百Mです.以上の方法は参考にしてください.
第一種類:データポンプを使う(参考:http://www.itpub.net/thread-465502-1-1.html 二階の版主blue uplrice)
具体的なやり方は以下の通りです.
1)データポンプでこのユーザーのテーブル構造を導出する(expdp....content=metadata uonly;)
2)カスケードはこのユーザーを削除します.
3)このユーザーを再構築する
4)前にエクスポートしたdmpファイルを導入し、テーブル構造を復元します.
第二種類:truncate文を使う
1)メインキーの関係が禁止されています(http://blog.csdn.net/hao00zzb/article/details/7389633)
2)ダイナミックSQL文でユーザーの全表を調べて、truncateを落とします.
参考語句:
select 'truncate table '|| table_name||';' from user_tables;
3)プライマリキー関係を回復する.この二つの方法の長所と短所を言いましょう.
第一の方法 利点:比較的簡単で、いくつかのコマンドが解決されます.それほど多くのメインキー関係を分析する必要もありません.
短所:削除するユーザーデータベースにsessionがある場合は、一つ一つ停止します.停止できないアプリケーションがあったら、この方法はだめです.
第二の方法の利点:このユーザーのユーザー名とパスワードがあればいいです.あまり高い権限を持たずにできるので、操作に大きなリスクはありません.
短所:操作が面倒で、一定のSQL実行能力が必要です.
まとめ:まずバックアップを取ってから着手します.方法はDemoライブラリで一回だけ作ったことがあります.データ量も数百Mです.以上の方法は参考にしてください.