Hitachi

ノンストップデータベース HiRDB Version 10 SQLリファレンス


3.14.2 CREATE PUBLIC PROCEDURE(パブリック手続き定義)

〈この項の構成〉

(1) 機能

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

(2) 使用権限

スキーマを所有するユーザ

自分が所有するパブリック手続きを定義できます。

(3) 形式

 CREATE PUBLIC 手続き本体

(4) オペランド

(a) PUBLIC

手続きをパブリック手続きとして定義する場合に指定します。

パブリック手続きにすると,同じ内容の手続きをユーザごとに定義しなくても,一つの手続きをルーチン識別子だけを指定して複数のユーザで使用できます。

(b) 手続き本体

「〔認可識別子.〕ルーチン識別子」以外の説明については,「CREATE PROCEDURE(手続き定義)」と同じです。

〔認可識別子.〕ルーチン識別子

認可識別子

パブリック手続きのため,認可識別子は指定できません。

ルーチン識別子

定義するパブリック手続きのルーチンの名前を指定します。

(5) 共通規則

  1. 手続き本体の「〔認可識別子.〕ルーチン識別子」の認可識別子は指定できません。

  2. ルーチン識別子は,システム内のすべての手続き中で同じ識別子を使用できません。

  3. 手続きを特定するための特定名は,PUBLIC.ルーチン識別子と同じです。

  4. 手続き本体中に指定したCALL文の手続き名がPUBLICで修飾されている場合,現在定義しようとしているパブリック手続きと,認可識別子,ルーチン識別子が一致するパブリック手続きは指定できません。

    手続き本体中に指定したCALL文の手続き名が認可識別子で修飾されていない場合,現在定義しようとしているパブリック手続きと,ルーチン識別子が一致する手続きは指定できません。

  5. ALTER PROCEDURE,又はALTER ROUTINEでSQLコンパイルオプションを指定する場合,再作成する手続きの元のCREATE PUBLIC PROCEDUREにSQLコンパイルオプションを反映してできるSQL文は,SQL文の最大長を超えないようにしてください。

  6. その他の規則は,「CREATE PROCEDURE(手続き定義)」と同じです。

(6) 留意事項

  1. CREATE PUBLIC PROCEDUREは,OLTP下のX/Openに従ったUAPから指定できません。

  2. ディクショナリ表の所有者を格納する列(SQL_ROUTINES表のROUTINE_SCHEMA列など)にはPUBLICが設定されます。また,パブリック手続きを定義した認可識別子はSQL_ROUTINES表のROUTINE_CREATOR列に格納されます。

  3. パブリック手続きの削除は,DROP PUBLIC PROCEDUREで行います。

  4. その他の留意事項は,「CREATE PROCEDURE(手続き定義)」と同じです。