管理プロシージャ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の実行
以下の引数を指定してプロシージャを実行します。
- 対象スキーマ名
- NULLで固定
- エラーテーブルのスキーマ名
- エラーテーブル名
エラーテーブルは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を実行してください。
参考資料
- IBM Knowledge Center
- DB2 for Linux UNIX and Windows 11.1.0