Nach der Ausführung einer SQL-Anweisung sollte im ESQL-Programm abgefragt werden, ob die SQL-Anweisung erfolgreich ausgeführt wurde oder ob die Bearbeitung zu einem Fehler führte. Zu diesem Zweck stellt die ESQL-Schnittstelle die Benutzervariablen SQLSTATE und SQLCODE zur Verfügung. In diese werden die Informationen über die Ausführung einer SQL-Anweisung abgelegt. SQLSTATE enthält einen SQL-Statuscode, SQLCODE einen SQL-Returncode, der die gleiche Funktion wie der SQL-Statuscode hat, aber nur noch aus Gründen der Kompatibilität zu früheren SESAM/SQL-Versionen unterstützt wird.
Die fünfstelligen alphanumerischen SQL-Statuscodes bestehen aus einem zweistelligen Teil für die Klasse des Statuscodes und einem dreistelligen für eine Unterklasse. Eine fehlerfreie Ausführung einer SQL-Anweisung wird durch SQLSTATE-Werte mit den Klassen „erfolgreiche Ausführung“, „Warnung“ oder „keine Daten“ angezeigt. Nach einer fehlerhaften Bearbeitung enthält SQLSTATE Informationen über die Art des Fehlers.
Die numerischen Werte von SQLCODE sind: 0 für eine erfolgreiche Ausführung, 100, wenn eine Tabelle leer ist oder das Tabellenende erreicht wurde, und 10 oder 50, wenn eine Warnung aufgetreten ist. Im Fehlerfall liefert SQLCODE einen negativen, für die Fehlerbedingung spezifischen Wert.
Um zu prüfen, ob eine SQL-Anweisung korrekt ausgeführt wurde, und um in Abhängigkeit vom zurückgelieferten SQL-Status- oder SQL-Returncode Aktionen im Wirtsprogramm zu steuern, gibt es zwei Möglichkeiten. Einmal kann der ESQL-Programmierer den Programmablauf mit Anweisungen der Wirtssprache abhängig vom Wert von SQLSTATE (oder SQLCODE) steuern. Eine andere Möglichkeit besteht in der Verwendung der SQL-Anweisung WHENEVER.