>>--EXEC SQL---WHENEVER---.-NOT FOUND--.----------------->
+-SQLERROR---+
+-SQLWARNING-+
>--.-CONTINUE--------.----END-EXEC---><
+-PERFORM label---+
+-GOTO stmt_label-+
次に WHENEVER 文の使用例を示します。
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.
説明:
WHENEVER 文は、NOT FOUND、SQLERROR、および SQLWARNING の各条件に応じて埋め込み SQL 文を実行した後のデフォルトのアクションを指定します。
WHENEVER 文の範囲は、実行順序ではなく、ソース プログラム内の文の位置に関連します。デフォルトは、3 つの条件すべてに対して CONTINUE です。