アプリケーション開発の手引き

CREATE PROCEDURE ステートメントの発行

CREATE PROCEDURE ステートメントを DB2 コマンド行プロセッサー (DB2 CLP) スクリプトとして発行するには、スクリプト内の SQL ステートメントで代替終了文字を使用する必要があります。デフォルトの DB2 CLP スクリプトでは、セミコロン (';') 文字が SQL プロシージャー本体内の SQL ステートメントの終了文字として使用されています。

DB2 CLP スクリプトで別の終了文字を使用する場合には、標準 SQL ステートメントでは使用されていない文字を選択してください。次の例では、 script.db2 という名前の DB2 CLP スクリプトで、アットマーク ('@') が終了文字として使用されています。

    CREATE PROCEDURE UPDATE_SALARY_IF
    (IN employee_number CHAR(6), IN rating SMALLINT)
    LANGUAGE SQL
    BEGIN
      DECLARE not_found CONDITION FOR SQLSTATE '02000';
      DECLARE EXIT HANDLER FOR not_found
         SIGNAL SQLSTATE '20000' SET MESSAGE_TEXT = 'Employee not found';
      IF (rating = 1)
        THEN UPDATE employee
          SET salary = salary * 1.10, bonus = 1000
          WHERE empno = employee_number;
      ELSEIF (rating = 2)
        THEN UPDATE employee
          SET salary = salary * 1.05, bonus = 500
          WHERE empno = employee_number;
      ELSE UPDATE employee
          SET salary = salary * 1.03, bonus = 0
          WHERE empno = employee_number;
      END IF;
    END
@

コマンド行からの DB2 CLP スクリプトを処理するには、以下のような構文を使用します。

   db2 -tdterm-char -vf script-name

ここで、 term-char は終了文字を表し、 script-name は処理する DB2 CLP スクリプト名を表します。たとえば、前述のスクリプトを処理するには、 CLP から以下のコマンドを発行します。

   db2 -td@ -vf script.db2


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]