ストアド プロシージャは、定義されるまでは使用できません。これを行うには、CREATE PROCEDURE コマンドを使用します。DB2 コマンド プロンプトを使用するか、プログラム内にコマンドを配置して、コンパイルおよび実行します。DB2 コマンド プロンプトを使用する場合は、最初に、ストアド プロシージャを実行する DB2 LUW サーバーに接続します。
次に例を示します。
C:> db2 connect to sample
DB2 コマンド プロンプトでコマンドを入力するか (継続文字およびコマンド区切り文字を必ず含めてください)、ANSI テキスト ファイルに CREATE PROCEDURE を記述できます。たとえば、テキスト ファイル creproc.sql に前述のコマンドが記述されている場合、入力するコマンドは次のようになります。
Windows:
C:> db2 -td; -vf creproc.sql
UNIX:
C:> db2 -td\; -vf creproc.sql
詳細は次のとおりです。
CREATE PROCEDURE 文では、ストアド プロシージャを一意に識別する必要があります。ストアド プロシージャを変更して、パラメーターの追加や削除、または機能の変更を行う場合は、DROP PROCEDURE コマンドを使用してから、CREATE PROCEDURE コマンドを使用してそのストアド プロシージャを再度追加する必要があります。
次の例は、一意のストアド プロシージャを識別する、テキスト ファイル (creproc.sql など) 内の CREATE PROCEDURE コマンドを示しています。
DROP PROCEDURE GETPRML;
CREATE PROCEDURE GETPRML
(IN PROCNM CHAR(18)
,IN SCHEMA CHAR(8)
,OUT OUTCODE INTEGER
,OUT PARMLST VARCHAR(30)
)
DYNAMIC RESULT SETS 0
LANGUAGE COBOL
PARAMETER STYLE GENERAL
NO DBINFO
FENCED
NOT THREADSAFE
READS SQL DATA
PROGRAM TYPE SUB
EXTERNAL NAME "GETPRML!GETPRML" ;
DB2 が最初に開発された時点では、CREATE PROCEDURE 関数はサポートされていませんでした。このため、CREATE PROCEDURE を実行せずに COBOL ストアド プロシージャを作成することもできます。この方法の例および必要なパラメーター リストは、DB2 LUW アプリケーション開発クライアントに含まれています。