SQLSTATE
<< SQLCODE | FB 2.5 Language Reference | UPDATING >>
SQLSTATE
Available in: PSQL
Added in: 2.5.1
Description
In a WHEN ... DO
error handler, the SQLSTATE
context variable contains the 5-character, SQL-2003-compliant status code resulting from the statement that raised the error. Outside error handlers, SQLSTATE
is always '00000'
. Outside PSQL it is not available at all.
Type: CHAR(5)
Example
when any do begin Msg = case sqlstate when '22003' then 'Numeric value out of range.' when '22012' then 'Division by zero.' when '23000' then 'Integrity constraint violation.' else 'Something bad happened! SQLSTATE = ' || sqlstate end; exception ex_custom Msg; end
Notes:
SQLSTATE
is destined to replaceSQLCODE
. The latter is now deprecated in Firebird and will disappear in some future version.- Firebird does not (yet) support the syntax
WHEN SQLSTATE ... DO
. You have to useWHEN ANY
and test theSQLSTATE
variable within the handler. - Each
SQLSTATE
code is the concatenation of a 2-character class and a 3-character subclass. Classes00
(successful completion),01
(warning) and02
(no data) represent completion conditions. Every status code outside these classes is an exception. Because classes00
,01
and02
don't raise an error, they won't ever show up in theSQLSTATE
variable. - For a complete listing of
SQLSTATE
codes, consult the Appendix to the Firebird 2.5 Release Notes.
back to top of page
<< SQLCODE | FB 2.5 Language Reference | UPDATING >>