モジュール内のオブジェクトの作成
(おそらく 1 つのビジネス・ケースをサポートする) 一組のルーチン、データ・タイプ、および変数が特定された場合、管理やデプロイメントを簡単にするために共通のネーム・スペースでそれらをまとめて定義する目的で、モジュールを作成できます。 その次に実行するタスクは、モジュール内のオブジェクトの作成です。
始める前に
- ALTER MODULE ステートメントについての説明を確認します。
- ALTER MODULE ステートメントの実行に必要な特権があることを確認します。
このタスクについて
このタスクを実行するには、ALTER MODULE ステートメントを実行します。 ALTER MODULE ステートメントを使用すると、オブジェクトをパブリッシュ済みオブジェクトまたは非公開オブジェクトとして追加できます。 パブリッシュ済みオブジェクトは、モジュールの外から参照できます。一方、非公開オブジェクトは、同じモジュール内の他のオブジェクトだけが参照できます。
モジュールの中では、ルーチン本体なしでプロシージャーまたは関数を最初に定義することができます。 これをプロトタイプといいます。 公開されるプロシージャーまたは関数に対してのみ、プロトタイプを作成できます。 同じルーチン・シグニチャーを使用することにより、公開ルーチン・プロトタイプのルーチン本体を後で追加することができます。
制約事項
モジュールの制約事項については、- モジュールに関する制約事項を参照してください。
手順
タスクの結果
例
ALTER MODULE inventory
PUBLISH PROCEDURE p(IN c1 INT, IN c2 INT, IN c3 CHAR) @
ALTER MODULE inventory
PUBLISH PROCEDURE q(IN c1 INT, IN c2 VARCHAR(8))@
ALTER MODULE inventory
ADD PROCEDURE p(IN c1 INT, IN c2 INT, IN c3 CHAR)
LANGUAGE SQL
BEGIN
IF c1 > 10 THEN
CALL q(1, 'hello')
ELSE IF c2 > 5 THEN
SET c3 = CHAR(c2);
END IF;
END@
ALTER MODULE inventory
ADD PROCEDURE r(c1 INT, c2 INT, c3 CHAR)
LANGUAGE SQL
BEGIN
CALL q(1, 'hello');
END@