Oracleですべてのテーブルを削除する方法

hzc
リリース: 2020-06-09 11:05:19
オリジナル
5593 人が閲覧しました

Oracleですべてのテーブルを削除する方法

#Oracle がすべてのテーブルを削除する方法は

#1.すべての外部キー制約を無効にする

pl/sql 開発者で次のステートメントを実行します。


SELECT 'ALTER TABLE ' || table_name || ' disable CONSTRAINT ' || constraint_name || ';' FROM user_constraints
 where CONSTRAINT_TYPE = 'R';
ログイン後にコピー

クエリ結果をコピーし、pl/sql 開発者で実行します。

PL/SQL 開発者をお持ちでない場合は、sqlplus で操作できます。方法は次のとおりです:
1. sqlplus を開き、該当するユーザーに接続します。
2. ページサイズをより大きく設定します (set pagesize 20000
など)。スプールを使用して、対応する結果をファイルにインポートします (

SQL> spool /home/oracle/constraint.sql
SQL> SELECT 'ALTER TABLE ' || table_name || ' disable CONSTRAINT ' || constraint_name || ';' FROM user_constraints 
where CONSTRAINT_TYPE = 'R';
SQL> spool off
ログイン後にコピー

4 など)。対応するステートメントは次のようになります。生成されたスクリプトですが、スクリプトファイルの先頭と末尾に冗長なステートメントがあります。テキストエディタで開き、無駄なステートメントを削除してください##5. 該当するユーザーで再度sqlplusにログインし、以下のコマンドを実行してください


SQL> @/home/oracle/constraint.sql
ログイン後にコピー

2. 削除または切り捨てを使用して、すべてのテーブル

SELECT 'DELETE FROM '|| table_name || ';' FROM USER_TABLES
ORDER BY TABLE_NAME;
ログイン後にコピー
または

SELECT 'TRUNCATE TABLE '|| table_name || ';' FROM USER_TABLES
ORDER BY TABLE_NAME;
ログイン後にコピー

の内容を削除します。同様の方法を使用して、最初のステップ。注意すべき点は、テーブル内のデータがトリガーに関連付けられている場合は、truncate ステートメントのみを使用できることですが、truncate ステートメントはロールバックできないため、

## の場合は注意が必要です。
# 3. 「外部キーを開く」を無効にします。

SELECT 'ALTER TABLE ' || table_name || ' enable CONSTRAINT ' || constraint_name || ';' FROM user_constraints 
where CONSTRAINT_TYPE = 'R';
ログイン後にコピー
推奨チュートリアル: 「Oracle Tutorial

以上がOracleですべてのテーブルを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート