CREATE MODULE ステートメント
CREATE MODULE ステートメントは、アプリケーション・サーバーでのモジュールを作成します。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込んだり、動的 SQL ステートメントを使用して発行したりすることができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。許可
ステートメントの許可 ID によって保持されている特権には、少なくとも以下のいずれかの権限が含まれていなければなりません。
- データベースに対する IMPLICIT_SCHEMA 権限 (モジュールの暗黙または明示のスキーマ名が存在しない場合)
- スキーマに対する CREATEIN 特権 (モジュールのスキーマ名が既存のスキーマを指している場合)
- スキーマに対する SCHEMAADM 権限 (モジュールのスキーマ名が既存のスキーマを指している場合)
- DBADM 権限
構文
説明
- または置換
- モジュールの定義が現行のサーバー上に存在している場合に、そのモジュールの定義を置換するために指定します。 既存のモジュール定義は、モジュール内のすべてのオブジェクトと共に、新しい定義がカタログ内で置換される前に効率的にドロップされます。ただし、モジュールに対して付与された特権は影響を受けないという例外があります。 このオプションは、モジュールの定義が現行のサーバー上に存在しない場合は無視されます。 このオプションは、オブジェクトの所有者しか指定できません。 module-name
- モジュールの名前を指定します。 この名前 (暗黙的または明示的修飾子を含む) には、 現行のサーバーに存在するモジュールを指定してはなりません。 モジュール名とスキーマ名は文字「SYS」で始まってはならず (SQLSTATE 42939)、SESSION の使用は推奨されていません。
注
- モジュールは、他のデータベース・オブジェクトのコレクションとなることを目的としています。 モジュールが作成されると、モジュール内のオブジェクトは ALTER MODULE ステートメントを使用して管理されます。 モジュールには、関数、プロシージャー、タイプ、グローバル変数、および条件を組み込むことができます。 モジュール内のこれらのオブジェクトをパブリッシュして、そのモジュール外から参照して使用できます。 オブジェクトをパブリッシュしない場合、参照できるのはモジュール内からに限られます。 モジュールは、以下の 2 つの部分で構成されていると見なすことができます。
- モジュール仕様。ルーチンの本体を除く、パブリッシュ済みオブジェクトすべてで構成されます。
- モジュール本体。パブリッシュされていないすべてのオブジェクトと、パブリッシュ済みルーチンの本体で構成されます。
- ADD。パブリッシュしないでモジュールにオブジェクトを追加するか、ルーチンのプロトタイプをインプリメント済みルーチン定義で置換します。
- PUBLISH。オブジェクトをモジュールに追加して、パブリッシュします。
- COMMENT (モジュール内のオブジェクトに関して)。
- DROP。モジュール内のオブジェクトをドロップするか、モジュール本体をドロップします。
例
salesModule という名前のモジュールを作成します。
CREATE MODULE salesModule