OpenESQL 文は、X/Open および SQL Access Group SQL CAE 規格 (1992) で定義された SQLSATE 値を返します。SQLSTATE は、アプリケーションで独立して宣言できる 5 文字のフィールドですが、宣言された SQLCA (ある場合) にも存在します。次の表に OpenESQL 文で返すことができる SQLSTATE 値を一覧表示します。
SQLSTATE で返される値は、2 文字のクラス値とそれに続く 3 文字のサブクラス値で構成されます。クラス値「01」は警告を示し、SQLCODE が 1 になります。クラス「IM」を除き、「01」以外のクラス値はエラーを示し、SQLCODE が -10000 になります。クラス「IM」は、ODBC 自身の実装から派生する警告およびエラーに固有のものです。任意のクラスのサブクラス値「000」は、そのクラスで実装時に定義された条件を表します。クラスおよびサブクラス値の割り当ては、ANSI SQL-92 で定義されています。
| SQLSTATE | エラー | 
|---|---|
| 01000 | 一般的な警告 | 
| 01002 | 接続解除エラー | 
| 01004 | データの一部が切り捨てられました | 
| 01006 | 権限が無効化されていません | 
| 01S00 | 接続文字列属性が無効です | 
| 01S01 | 行にエラーが含まれています | 
| 01S02 | オプション値が変更されています | 
| 01S03 | 更新または削除された行はありません | 
| 01S04 | 複数の行が更新または削除されました | 
| 01S05 | キャンセル操作が、SQL_CLOSE オプションを使用した SQLFreeStmt として処理されました | 
| 01S06 | 結果集合から最初の行セットが戻る前にデータを取り込もうとしました | 
| 07001 | パラメーター数が正しくありません | 
| 07006 | 制約付きデータ型属性違反です | 
| 07S01 | 使用するデフォルト パラメーターが無効です | 
| 08001 | データ ソースに接続できません | 
| 08002 | 使用中の接続です | 
| 08003 | 接続が閉じています | 
| 08004 | データ ソースによって接続が拒否されました | 
| 08007 | トランザクション処理中に接続エラーが発生しました | 
| 08S01 | 通信リンク エラー | 
| 21S01 | 挿入値リストが列リストと一致しません | 
| 21S02 | 派生テーブルの次数が列リストと合致しません | 
| 22001 | 文字列データの右端が切り捨てられました | 
| 22002 | 必要なインジケーター変数が提供されていません | 
| 22003 | 数値データが有効範囲を超えています | 
| 22005 | 割り当てエラー | 
| 22008 | 日時フィールドでオーバーフローが発生しました | 
| 22012 | ゼロ除算エラー | 
| 22026 | 文字列データの長さが一致しません | 
| 23000 | 整合性制約違反です | 
| 24000 | カーソル状態が無効です | 
| 25000 | トランザクション状態が無効です | 
| 28000 | 権限指定が無効です | 
| 34000 | カーソル名が無効です | 
| 37000 | 構文エラーまたはアクセス違反です | 
| 3C000 | カーソル名が重複しています | 
| 42000 | 構文エラーまたはアクセス違反です | 
| 70100 | 操作が取り消されました | 
| IM001 | ドライバーがサポートしない関数です | 
| IM002 | データ ソース名が見つからず、デフォルト ドライバーが指定されていません | 
| IM003 | 指定されたドライバーをロードできません | 
| IM004 | ドライバーの SQLAllocEnv でエラーが発生しました | 
| IM005 | ドライバーの SQLAllocConnect でエラーが発生しました | 
| IM006 | ドライバーの SQLSetConnect-Option でエラーが発生しました | 
| IM007 | データ ソースまたはドライバーが指定されていません。ダイアログは許可されませんでした | 
| IM008 | ダイアログ エラー | 
| IM009 | 変換用の .dll ファイルをロードできません | 
| IM010 | データ ソース名が長すぎます | 
| IM011 | ドライバー名が長すぎます | 
| IM012 | DRIVER キーワードの構文エラー | 
| IM013 | トレース ファイル エラー | 
| S0001 | ベース テーブルまたはビューがすでに存在しています | 
| S0002 | ベース テーブルが見つかりません | 
| S0011 | 索引はすでに存在しています | 
| S0012 | 索引が見つかりません | 
| S0021 | 列はすでに存在しています | 
| S0022 | 列が見つかりません | 
| S0023 | 列のデフォルトが指定されていません | 
| S1000 | 一般エラー | 
| S1001 | メモリ割り当てエラー | 
| S1002 | 列番号が無効です | 
| S1003 | プログラム タイプが有効範囲を超えています | 
| S1004 | SQL データ型が有効範囲を超えています | 
| S1008 | 操作が取り消されました | 
| S1009 | 引数の値が無効です | 
| S1010 | 関数シーケンス エラー | 
| S1011 | 今回の操作は無効です | 
| S1012 | 指定されたトランザクション処理コードが無効です | 
| S1015 | カーソル名がありません | 
| S1090 | 文字列またはバッファーの長さが無効です | 
| S1091 | 記述子のタイプが有効範囲を超えています | 
| S1092 | オプションのタイプが有効範囲を超えています | 
| S1093 | パラメーター番号が無効です | 
| S1095 | 関数のタイプが有効範囲を超えています | 
| S1096 | 情報のタイプが有効範囲を超えています | 
| S1097 | 列のタイプが有効範囲を超えています | 
| S1098 | 範囲のタイプが有効範囲を超えています | 
| S1099 | NULLABLE タイプが有効範囲を超えています | 
| S1100 | 一意オプションのタイプが有効範囲を超えています | 
| S1101 | 精度オプションのタイプが有効範囲を超えています | 
| S1103 | 方向オプションが有効範囲を超えています | 
| S1105 | パラメーターのタイプが無効です | 
| S1106 | 取り込みタイプが有効範囲を超えています | 
| S1107 | 行の値が有効範囲を超えています | 
| S1108 | 同時実行オプションが有効範囲を超えています | 
| S1109 | カーソルの位置が無効です | 
| S1110 | ドライバーの完了方法が無効です | 
| S1111 | ブックマーク値が無効です | 
| S1C00 | 無効なドライバーです | 
| S1T00 | タイムアウトになりました |