LoginSignup
1
0

More than 5 years have passed since last update.

DB2DBA: スキーマ内の全オブジェクトを削除する

Last updated at Posted at 2017-01-11

管理プロシージャADMIN_DROP_SCHEMAを使用することで、スキーマ内の全オブジェクト(表、索引等)を一括DROPすることができます。

手順

SYSTOOLSPACE表スペースの作成

ADMIN_DROP_SCHEMAを実行するためには、SYSTOOLSPACEという名称の表スペースを事前に作成しておく必要があります。以下はSYSTOOLSPACEのCREATE文の例です(マニュアル上指定がないため、CREATE TABLESPACEの各オプションはデフォルトでよいと思われます)。

CREATE TABLESPACE SYSTOOLSPACE
    MANAGED BY AUTOMATIC STORAGE USING STOGROUP IBMSTOGROUP
    EXTENTSIZE 4 ;

ADMIN_DROP_SCHEMAの実行

以下の引数を指定してプロシージャを実行します。

  1. 対象スキーマ名
  2. NULLで固定
  3. エラーテーブルのスキーマ名
  4. エラーテーブル名

エラーテーブルはSYSTOOLSPACE上に作成され、DROPに失敗したオブジェクトに関する情報がINSERTされます(詳細は後述)。

CALL ADMIN_DROP_SCHEMA('TEST01', NULL, 'SVC34', 'ADMIN_DROP_SCHEMA_ERROR') ;

  出力パラメーターの値
  --------------------------
  パラメーター名: ERRORTABSCHEMA
  パラメーター値: SVC34

  パラメーター名: ERRORTAB
  パラメーター値: ADMIN_DROP_SCHEMA_ERROR

  リターン状況 = 0

エラーテーブルの確認

DROPに失敗したオブジェクトがあった場合、エラーテーブルを参照し原因を特定してください。エラーテーブルのレイアウトは以下の通りです。

列名 データ・タイプ 説明
OBJECT_SCHEMA VARCHAR(128) DROP対象オブジェクトのスキーマ名
OBJECT_NAME VARCHAR(128) DROP対象のオブジェクト名
OBJECT_TYPE VARCHAR(30) DROP対象のオブジェクトタイプ
SQLCODE INTEGER DROP失敗時のSQLCODE
ERROR_TIMESTAMP TIMESTAMP DROPが失敗した時刻
STATEMENT CLOB(2 M) DROP対象オブジェクトのDDL
DIAGTEXT CLOB(2 K) DROP失敗時のエラーメッセージ

エラーテーブルの削除

エラーテーブルは再利用できないので、結果確認後に削除しておきましょう。

DROP TABLE SVC34.ADMIN_DROP_SCHEMA_ERROR ;

注意事項

以下のオブジェクトはADMIN_DROP_SCHEMAでは削除されません。
- Index extensions
- Nicknames
- Packages
- Typed tables
- Array types
- User-defined structured types (and their transform functions)
- Typed views
- Jars (Java™ routine archives)
- Staging tables
- XSR objects

また、対象のスキーマそのものも削除されないため、必要であればDROP SCHEMAを実行してください。

参考資料

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0