スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス

[目次][索引][前へ][次へ]

DROP 〔PUBLIC 〕PROCEDURE手続き削除,パブリック手続き削除

機能

手続きを削除します。

また,すべてのユーザから,認可識別子でルーチン識別子を修飾しなくても使用できる手続き(パブリック手続き)を削除します。

(1)DROP PROCEDURE手続き削除

DROP PROCEDURE(手続き削除)について説明します。

使用権限

手続きの所有者
自分が所有する手続きを削除できます。

DBA権限を持つユーザ
他ユーザの所有する手続きを削除できます。

形式

 
 DROP PROCEDURE 〔認可識別子.〕ルーチン識別子
           〔WITH PROGRAM〕
 

オペランド

認可識別子
削除する手続きの所有者の認可識別子を指定します。
省略した場合,実行するユーザの認可識別子を仮定します。

ルーチン識別子
削除する手続きのルーチンの名前を指定します。

手続きを削除する場合,その手続きを使用する関数,手続き,及びトリガの有効なSQLオブジェクトがあれば,そのSQLオブジェクトを無効にするときに指定します。

WITH PROGRAMを省略した場合,その手続きを使用する関数,手続き,及びトリガの有効なSQLオブジェクトがあるときは,その手続きは削除できません。

共通規則

  1. 指定した手続きを呼び出すSQLルーチン,及び抽象データ型内のルーチン,トリガがある場合は削除しません。
  2. 抽象データ型内で定義した手続きは削除できません。
  3. 次のような場合,Java手続き中からDROP PROCEDUREは実行できません。
    • 実行中のSQLオブジェクトが無効になる場合,又は削除される場合
    • 実行中のJava手続きが削除される場合

留意事項

  1. DROP PROCEDUREは,OLTP下のX/Openに従ったUAPから指定できません。
  2. WITH PROGRAMを指定して関数,手続き,及びトリガの有効なSQLオブジェクトを無効にした場合,ディクショナリ表SQL_ROUTINE_RESOURCES中の無効となった関数,手続き,及びトリガの行は削除されます。
  3. WITH PROGRAMを指定して無効にした関数,手続き,及びトリガのSQLオブジェクトを実行するためには,ALTER ROUTINE又はALTER PROCEDUREを実行して関数,手続き,及びトリガのSQLオブジェクトを再作成しておく必要があります。
  4. WITH PROGRAMを指定して無効にしたトリガのSQLオブジェクトを実行するためには,次のどちらかの操作をする必要があります。
    • 手続きを定義し直して,ALTER TRIGGER又はALTER ROUTINEを実行してトリガのSQLオブジェクトを再作成する。
    • 無効にしたトリガをDROP TRIGGERで削除してから,削除した手続きを使用しないようにCREATE TRIGGERでトリガを再定義します。ただし,次のすべての条件を満たすトリガがある場合は,それらもすべてDROP TRIGGERで削除し,定義していた順にCREATE TRIGGERで再定義しないと,トリガ動作の実行順序が変わります。
      (条件)
      ・無効にしたトリガよりも定義したのが後である。
      ・無効にしたトリガと定義した表が同じである。
      ・無効にしたトリガとトリガ契機(INSERT,UPDATE,又はDELETE)が同じである(ただし,UPDATEの場合は,トリガ契機列の指定の有無,及び内容に関係なく同じとみなされます)。
      ・無効にしたトリガとトリガ動作時期(BEFORE又はAFTER)が同じである。
      ・無効にしたトリガとトリガの動作する単位(行単位又は文単位)が同じである。
  5. ルーチン識別子には,トリガ動作手続きの識別子は指定できません。トリガを削除する場合には,DROP TRIGGERを実行してください。

(2)DROP PUBLIC PROCEDUREパブリック手続き削除

DROP PUBLIC PROCEDURE(パブリック手続き削除)について説明します。

使用権限

手続きの所有者
自分が所有する(定義した)パブリック手続きを削除できます。

DBA権限を持つユーザ
他ユーザの所有するパブリック手続きを削除できます。

形式

 
 DROP PUBLIC PROCEDURE ルーチン識別子
           〔WITH PROGRAM〕
 

オペランド

PUBLIC,ルーチン識別子以外の説明については,「3. DROP 〔PUBLIC 〕PROCEDURE(手続き削除,パブリック手続き削除)」の「(1) DROP PROCEDURE(手続き削除)」を参照してください。

共通規則

  1. 次のような場合,Java手続き中からDROP PUBLIC PROCEDUREは実行できません。
    • 実行中のSQLオブジェクトが無効になる場合,又は削除される場合
    • 実行中のJava手続きが削除される場合
  2. その他の共通規則は,「3. DROP 〔PUBLIC 〕PROCEDURE(手続き削除,パブリック手続き削除)」の「(1) DROP PROCEDURE(手続き削除)」と同じです。

留意事項

  1. DROP PUBLIC PROCEDUREは,OLTP下のX/Openに従ったUAPから指定できません。
  2. その他の留意事項は,「3. DROP 〔PUBLIC 〕PROCEDURE(手続き削除,パブリック手続き削除)」の「(1) DROP PROCEDURE(手続き削除)」と同じです。