ストアド プロシージャは、定義されるまでは使用できません。これを行うには、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 アプリケーション開発クライアントに含まれています。