Oracleのバッチファイルを使用して、スキーマ内のすべてのオブジェクトを削除します

アンドリュー

スキーマ内のすべてのオブジェクトを削除するための削除ステートメントを生成するSelectクエリを以下に示します。

select 'DROP '||OBJECT_TYPE||' '||OWNER||'.'||OBJECT_NAME
       || case when OBJECT_TYPE = 'TABLE'
               then ' CASCADE CONSTRAINTS PURGE' else '' end
       ||';' 
  from all_objects
 where OWNER = 'RATOR_MONITORING';

バッチファイルを作成したいのですが、削除ステートメントを個別に生成する代わりに、カーソルなどを作成してバッチファイルに保存し、バッチファイルを実行してスキーマ内のすべてのコンテンツを削除できると思います。どうやってするの?

ibre5041

あなたはインターネットで多くのスクリプトを見つけることができます。どちらも100%では機能しません。いろいろな落とし穴があります。スケジューラチェーンやマテリアライズドビューグループのように。

これは私が使用しているものです(インターネットで見つけたものにも触発されています)

set serveroutput on size unlimited
declare
  v_ItemCount integer;
begin
  SELECT count(*)
    INTO v_ItemCount
    FROM ALL_OBJECTS AO
   WHERE AO.OWNER = '&USER'
     AND AO.OBJECT_TYPE NOT IN ('INDEX', 'LOB')
     AND AO.OBJECT_NAME NOT LIKE 'BIN$%';
  while (v_ItemCount > 0) loop
    for v_Cmd in (SELECT 'drop ' || AO.OBJECT_TYPE || ' ' || '"'||AO.OWNER||'"'|| '.' || '"'||AO.OBJECT_NAME||'"' ||
                         DECODE(AO.OBJECT_TYPE,
                                'TABLE',
                                ' CASCADE CONSTRAINTS',
                                '') as DROPCMD,
                                AO.OWNER,
                                AO.OBJECT_TYPE,
                                AO.OBJECT_NAME
                    FROM ALL_OBJECTS AO
                   WHERE AO.OWNER = '&USER'
                     AND AO.OBJECT_TYPE NOT IN ('INDEX', 'LOB')
                     AND AO.OBJECT_NAME NOT LIKE 'BIN$%') 
    loop
      begin
        if v_Cmd.OBJECT_TYPE = 'SCHEDULE' then
          DBMS_SCHEDULER.DROP_SCHEDULE(v_Cmd.OWNER||'.'||v_Cmd.OBJECT_NAME, true);
        ELSIF v_Cmd.OBJECT_TYPE = 'JOB' then
          DBMS_SCHEDULER.DROP_JOB(v_Cmd.OWNER||'.'||v_Cmd.OBJECT_NAME, true);
        ELSIF v_Cmd.OBJECT_TYPE = 'PROGRAM' then
          DBMS_SCHEDULER.DROP_PROGRAM(v_Cmd.OWNER||'.'||v_Cmd.OBJECT_NAME, true);                              
        else
          execute immediate v_Cmd.dropcmd;
        end if;  
        dbms_output.put_line(v_Cmd.dropcmd);        
      exception
        when others then
          null; -- ignore errors
      end;
    end loop;
    SELECT count(*)
      INTO v_ItemCount
      FROM ALL_OBJECTS AO
     WHERE AO.OWNER = '&USER'     
       AND AO.OBJECT_TYPE NOT IN ('INDEX','LOB')
       AND AO.OBJECT_NAME NOT LIKE 'BIN$%';
  end loop;
  execute immediate 'purge dba_recyclebin';
end;

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

jqを使用してファイル内のjson配列内のすべてのオブジェクトに新しいキー/値を追加します

分類Dev

バッチスクリプトを使用して、テキストファイル内のすべての出現箇所を削除します

分類Dev

オブジェクトをインターフェイスにマップし、存在しないすべてのキーを削除します

分類Dev

バッチを使用してリスト内のファイルを除くフォルダ内のすべてのファイルを削除します

分類Dev

C#を使用してファイル内の重複するJSONオブジェクトを削除します

分類Dev

Pythonを使用して、ファイル内の同じキーと値のペアを持つjsonオブジェクトをマージします

分類Dev

オブジェクト内のファイルシステム構造にループして、すべてのファイルを取得します

分類Dev

ファイルのパスを指定してオブジェクトストア内のファイルを削除できないなど、ラバのバッチフローの実行中に例外が発生する

分類Dev

txtファイルを使用してバッチスクリプトの変数を入力する方法。次に、ループして、テキストファイル内のすべての名前を変数として使用します。

分類Dev

ファイル内のキーと値のペアをPropertiesオブジェクトにロードし、Properties.list(PrintWriter p)メソッドを使用してすべてのキーと値のペアを出力します

分類Dev

AndroidParseローカルデータストア内のすべてのオブジェクトを削除します

分類Dev

マングースを使用して、すべてのドキュメントの配列内のオブジェクトの個別の値を取得します

分類Dev

Javascriptファイル内のすべてのオブジェクトの配列を取得します

分類Dev

特定のパターンのキーを持つAWS-S3バケット内のすべてのオブジェクトを削除しますか?

分類Dev

ブランチからのすべてのファイルを(コマンド/スクリプトを使用して)mainにマージしますcleartool

分類Dev

フォルダ内の複数のファイルのバッチを使用してキャリッジリターンを削除します

分類Dev

バッチ:テキストファイルからすべての空白を削除しますか?

分類Dev

sedを使用して、テキストファイル内の前後の空白をすべて削除します

分類Dev

バッチまたはperlスクリプトを使用して2つのテキストファイルを1つにマージする

分類Dev

jacksonを使用してファイル内のJson配列からオブジェクトを削除する

分類Dev

すべてのオブジェクトフィールドをブール値にキャストします

分類Dev

バッチスクリプト内の変数内のフォルダー内のすべてのファイル名を連結します

分類Dev

バッチファイルを使用して、すべてのサブフォルダー内のすべてのファイル名にプレフィックスを追加します

分類Dev

Oracleは、テーブル内のすべてのオブジェクトの最大日付を選択します

分類Dev

groovyを使用してJSONオブジェクトからキーのみをフェッチします

分類Dev

配列内のすべてのオブジェクトからキーを削除します

分類Dev

複数のJSONファイルをマージして、フィールドごとに重複するオブジェクトを削除します

分類Dev

フォルダ内のすべてのファイルをモジュールとしてインポートし、すべてをオブジェクトとしてエクスポートするにはどうすればよいですか?

分類Dev

「with」ブロックのスコープ内のファイルオブジェクトを取得します

Related 関連記事

  1. 1

    jqを使用してファイル内のjson配列内のすべてのオブジェクトに新しいキー/値を追加します

  2. 2

    バッチスクリプトを使用して、テキストファイル内のすべての出現箇所を削除します

  3. 3

    オブジェクトをインターフェイスにマップし、存在しないすべてのキーを削除します

  4. 4

    バッチを使用してリスト内のファイルを除くフォルダ内のすべてのファイルを削除します

  5. 5

    C#を使用してファイル内の重複するJSONオブジェクトを削除します

  6. 6

    Pythonを使用して、ファイル内の同じキーと値のペアを持つjsonオブジェクトをマージします

  7. 7

    オブジェクト内のファイルシステム構造にループして、すべてのファイルを取得します

  8. 8

    ファイルのパスを指定してオブジェクトストア内のファイルを削除できないなど、ラバのバッチフローの実行中に例外が発生する

  9. 9

    txtファイルを使用してバッチスクリプトの変数を入力する方法。次に、ループして、テキストファイル内のすべての名前を変数として使用します。

  10. 10

    ファイル内のキーと値のペアをPropertiesオブジェクトにロードし、Properties.list(PrintWriter p)メソッドを使用してすべてのキーと値のペアを出力します

  11. 11

    AndroidParseローカルデータストア内のすべてのオブジェクトを削除します

  12. 12

    マングースを使用して、すべてのドキュメントの配列内のオブジェクトの個別の値を取得します

  13. 13

    Javascriptファイル内のすべてのオブジェクトの配列を取得します

  14. 14

    特定のパターンのキーを持つAWS-S3バケット内のすべてのオブジェクトを削除しますか?

  15. 15

    ブランチからのすべてのファイルを(コマンド/スクリプトを使用して)mainにマージしますcleartool

  16. 16

    フォルダ内の複数のファイルのバッチを使用してキャリッジリターンを削除します

  17. 17

    バッチ:テキストファイルからすべての空白を削除しますか?

  18. 18

    sedを使用して、テキストファイル内の前後の空白をすべて削除します

  19. 19

    バッチまたはperlスクリプトを使用して2つのテキストファイルを1つにマージする

  20. 20

    jacksonを使用してファイル内のJson配列からオブジェクトを削除する

  21. 21

    すべてのオブジェクトフィールドをブール値にキャストします

  22. 22

    バッチスクリプト内の変数内のフォルダー内のすべてのファイル名を連結します

  23. 23

    バッチファイルを使用して、すべてのサブフォルダー内のすべてのファイル名にプレフィックスを追加します

  24. 24

    Oracleは、テーブル内のすべてのオブジェクトの最大日付を選択します

  25. 25

    groovyを使用してJSONオブジェクトからキーのみをフェッチします

  26. 26

    配列内のすべてのオブジェクトからキーを削除します

  27. 27

    複数のJSONファイルをマージして、フィールドごとに重複するオブジェクトを削除します

  28. 28

    フォルダ内のすべてのファイルをモジュールとしてインポートし、すべてをオブジェクトとしてエクスポートするにはどうすればよいですか?

  29. 29

    「with」ブロックのスコープ内のファイルオブジェクトを取得します

ホットタグ

アーカイブ