>>--EXEC SQL---WHENEVER---.-NOT FOUND--.----------------->
                          +-SQLERROR---+
                          +-SQLWARNING-+
 >--.-CONTINUE--------.----END-EXEC---><
    +-PERFORM label---+
    +-GOTO stmt_label-+ 
| CONTINUE | ソースプログラムの次の文を実行します。 | 
| PERFORM label | 特定のエラーレベルが検出されたときに実行されるコードの段落または節を指定します。 | 
| GOTO stmt_label | 特定のエラーレベルが検出されたときに制御するプログラムの場所を指定します。 | 
WHENEVER 文では、NOT FOUND、SQLERROR、SQLWARNING の各条件に応じて埋め込み SQL 文を実行した後のデフォルトのアクションを指定します。
| 条件 | sqlcode | 
|---|---|
| エラーなし | 0 | 
| NOT FOUND | 100 | 
| SQLWARNING | +1 | 
| SQLERROR | < 0 (負の値) | 
WHENEVER 文の範囲は、実行順序ではなく、ソースプログラム内の文の位置に関連します。 デフォルトは、3 つの条件すべてに対して CONTINUE です。
The following example shows the WHENEVER statement in use:
     EXEC SQL WHENEVER sqlerror PERFORM errormessage1 END-EXEC
     EXEC SQL
        DELETE FROM staff
        WHERE staff_id = 'hello'
     END-EXEC
     EXEC SQL
        DELETE FROM students
        WHERE student_id = 'hello'
     END-EXEC
     EXEC SQL WHENEVER sqlerror CONTINUE END-EXEC
     EXEC SQL
        INSERT INTO staff VALUES ('hello')
     END-EXEC
     DISPLAY 'Sql Code is: ' SQLCODE
     EXEC SQL WHENEVER sqlerror PERFORM errormessage2 END-EXEC
     EXEC SQL
        INSERT INTO staff VALUES ('hello again')
     END-EXEC
     STOP RUN.
 errormessage1 SECTION.
     display "SQL DELETE error: " sqlcode
     EXIT.
 errormessage2 SECTION.
     display "SQL INSERT error: " sqlcode
     EXIT.