The WHENEVER statement is used to trap errors, warnings and exceptional conditions encountered by the database when processing
SQL statements. The statement can be put anywhere in an embedded SQL program and does not generate any code. The preprocessor
will generate code following each successive SQL statement. The error action remains in effect for all embedded SQL statements
from the source line of the WHENEVER statement until the next WHENEVER statement with the same error condition, or the end
of the source file.
Errors based on source position
The error conditions are in effect based on positioning in the C language source file, not based on when the statements are
The default action is CONTINUE.
Note that this statement is provided for convenience in simple programs. Most of the time, checking the sqlcode field of the
SQLCA (SQLCODE) directly is the easiest way to check error conditions. In this case, the WHENEVER statement would not be used.
If fact, all the WHENEVER statement does is cause the preprocessor to generate an if(SQLCODE) test after each statement.
An exception condition declaration made with the WHENEVER statement is a core feature of the SQL/2008 standard. The standard
uses the keyword SQLEXCEPTION rather than SQLERROR. The ability to directly include C code in the WHENEVER statement, rather
than merely a statement label, is a vendor extension. The action STOP is also a vendor extension.