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 が -10000 になります。クラス「IM」は、ODBC 自身の実装から派生する警告およびエラーに固有のものです。任意のクラスのサブクラス値「000」は、そのクラスで実装時に定義された条件を表します。クラスおよびサブクラス値の割り当ては、ANSI SQL-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 NULLABLE タイプが有効範囲を超えています
S1100 一意オプションのタイプが有効範囲を超えています
S1101 精度オプションのタイプが有効範囲を超えています
S1103 方向オプションが有効範囲を超えています
S1105 パラメーターのタイプが無効です
S1106 取り込みタイプが有効範囲を超えています
S1107 行の値が有効範囲を超えています
S1108 同時実行オプションが有効範囲を超えています
S1109 カーソルの位置が無効です
S1110 ドライバーの完了方法が無効です
S1111 ブックマーク値が無効です
S1C00 無効なドライバーです
S1T00 タイムアウトになりました