ストアド プロシージャは、定義されるまでは使用できません。これを行うには、CREATE PROCEDURE コマンドを使用します。DB2 コマンド プロンプトを使用するか、またはプログラム内にコマンドを配置することもできます。これをコンパイルして実行します。DB2 コマンド プロンプトを使用する場合は、まずストアド プロシージャを実行する DB2 LUW サーバーに接続します。
C:> db2 connect to sample
DB2 コマンド プロンプトでコマンドを入力するか (この場合、継続文字およびコマンド区切り文字を必ずインクルードしてください)、または ANSI テキスト ファイルに CREATE PROCEDURE を記述することができます。例えば、テキスト ファイル creproc.sql に前述のコマンドが記述されている場合、入力するコマンドは次のようになります。
C:> db2 -td; -vf creproc.sql
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 アプリケーション開発クライアントに含まれています。