Programs calling a database which accords to the [[SQL]] standard receive an indication about the success or failure of the call. This return code - which is called SQLSTATE - consists of 5 bytebytes. They are divided into two parts: the first and second bytebytes containscontain a '''class''' and the following three a '''subclass'''. Each class belongs to one of four '''categories''': "S" denotes "Success" (class 00), "W" denotes "Warning" (class 01), "N" denotes "No data" (class 02) and "X" denotes "Exception" (all other classes).
* Real DBMSDBMSs are free to define additional values for SQLSTATE to handle those features which are beyond the standard. Such values must use one of the characters [I-Z] or [5-9] as the first byte of class (1.first byte of SQLSTATE) or subclass (3.third byte of SQLSTATE).
* In addition to SQLSTATE the SQL command <code>GET DIAGNOSTICS</code> offers more details about the last executed SQL command.
* In very early versions of the SQL standard the return code was called SQLCODE and used a different coding schema.
The following table lists the standard-conforming values - based on [[SQL:2011]]<ref name="Whitemarsh" />. The table's last column shows thatthe part of the standard,whichthat defines the row. If it is empty, the definition originsoriginates from part 2 ''Foundation''.