DROP PROCEDURE
目的
プロシージャはPL/SQLを使用して定義されます。プロシージャの作成、変更および削除の詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。
DROP
PROCEDURE
文を使用すると、データベースからスタンドアロンのストアド・プロシージャを削除できます。この文を使用してパッケージの一部であるプロシージャを削除しないでください。かわりに、DROP
PACKAGE
文を使用してパッケージ全体を削除するか、OR
REPLACE
句を指定したCREATE
PACKAGE
文を使用して、そのプロシージャを含めずにパッケージを再定義してください。
前提条件
削除するプロシージャが自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、DROP
ANY
PROCEDURE
システム権限が必要です。
構文
drop_procedure::=
セマンティクス
IF EXISTS
IF EXISTS
は、既存の索引を削除する場合に指定します。
DROP
にIF NOT EXISTS
を指定すると、ORA-11544: Incorrect IF EXISTS clause for ALTER/DROP statement
が発生します。
schema
プロシージャが含まれているスキーマを指定します。schema
を指定しない場合、プロシージャは自分のスキーマ内にあるとみなされます。
プロシージャ
削除するプロシージャの名前を指定します。
プロシージャを削除すると、そのプロシージャに依存するすべてのローカル・オブジェクトが無効になります。後でこれらのオブジェクトのいずれかを参照した場合、データベースは、そのオブジェクトを再コンパイルしようとします。削除したプロシージャを再作成しないかぎり、エラー・メッセージが戻されます。
例
プロシージャの削除: 例
次の文は、ユーザーhr
が所有するプロシージャremove_emp
を削除し、remove_emp
に依存するすべてのオブジェクトを無効にします。
DROP PROCEDURE hr.remove_emp;