以下のように表示されます。
(日本語)
ORA-01922: 'XXX'を削除するにはCASCADEを指定する必要があります
(英語)
ORA-01922: CASCADE must be specified to drop 'XXX'
XXXの箇所にはユーザ名やオブジェクト名が入ります
発生パターン
このエラーは以下のような場合に発生します。
- テーブルなどのオブジェクトを持っているユーザを削除する時にCASCADEオプション指定していないため
- エラー例
- SQL>drop user hoge; drop user hoge * 行1でエラーが発生しました。: ORA-01922: 'HOGE'を削除するにはCASCADEを指定する必要があります
ユーザhogeは既にテーブル等のオブジェクトを持っているためエラーになっています
対処法
- DROP USER句にCASCADEオプションを付けて実行する
1 |
drop user hoge cascade; |
備考
- DROP USER句に CASCADEオプションを付けるとユーザの削除と同時にそのユーザが所有しているオブジェクトも削除してくれます。
- 実行前に本当に削除してよいオブジェクトかどうか確認することをお勧めします。