SQLSTATE 値

OpenESQL 文は、X/Open と SQL Access Group SQL CAE 規格 (1992) で定義された SQLSATE 値を返します。 SQLSTATE は、アプリケーションで独立して宣言できる 5 文字のフィールドですが、宣言された SQLCA にも存在します。 次の表に OpenESQL 文で返すことができる SQLSTATE 値を一覧表示します。

SQLSTATE で返される値は、2 文字のクラス値とそれに続く 3 文字のサブクラス値で構成されます。 クラス値「01」は警告を示し、SQLCODE が 1 に設定されます。クラス「IM」を除き、「01」以外のクラス値はエラーを示し、SQLCODE が -100000 に設定されます。クラス「IM」は ODBC 自体の実装に由来する警告とエラーに固有です。 任意のクラスのサブクラス値「000」は、そのクラスで実装時に定義された条件を表します。 クラスとサブクラス値の割り当ては、ANSI SQ L-92 で定義されています。

注:

通常、関数が正常に実行された場合は、SQLCODE が 0 に設定されます。SQLSTATE が 00000 の場合 も正常終了したことを示します。

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 ヌル化の種類が範囲外である。
S1100 固有オプションの種類が範囲外である。
S1101 精度オプションの種類が範囲外である。
S1103 方向オプションが範囲外である。
S1105 パラメーターの種類が無効。
S1106 取り込みの種類が範囲外である。
S1107 行の値が範囲外である。
S1108 並行オプションが範囲外である。
S1109 カーソルの位置が無効である。
S1110 ドライバの終了が無効である。
S1111 ブックマークの値が無効である。
S1C00 ドライバが機能しない。
S1T00 タイムアウトした。