SQLSTATEコードは、SQL文の実行ステータスを反映する、埋め込みSQLプログラムおよびストアド プロシージャ内のステータス値です。
整数値のSQLCODEとは異なり、SQLSTATEコードは文字列です。このため、このコードは必ず、次に示すSQLSTATE値のように単一引用符で囲まれて表示されます。’xxxxx’
SQLSTATEコードの文字は、論理的に以下の2つのカテゴリに分けられます。
- 2文字のクラス値。
SQLSTATEコードの最初の2文字は、ANSI/ISO SQL-99による定義済みのSQLSTATEクラスのいずれか1つです(SQLSTATEクラス定義を参照)。
- 3文字のサブクラス値。
サブクラス値は、任意の数値または単一の大文字のローマ字文字列にすることができます。
SQLSTATEコード値
警告コード = 0でSQLリクエストが正常に終了すると、SQLSTATEコード値として'00000'が戻されます。
他のすべての状況については、データベース エラー メッセージのSQLSTATE値へのマッピングを参照してください。
SQLSTATEクラス定義
ANSIでは、次の表に示されているSQLSTATEクラスが定義されています。Vantageは、リストされているすべてのクラスをサポートしているわけではありません。
クラス コード | 定義 |
---|---|
00 | 正常な完了 |
01 | 警告 |
02 | データ未検出 |
03 | SQL文未完了 |
07 | 動的SQLエラー |
08 | 接続例外 |
09 | トリガー アクション例外 |
0A | サポートされていない機能 |
0B | 無効なトランザクションの開始 |
0D | 無効なターゲット タイプの指定 |
0E | 無効なスキーマ名リストの指定 |
0F | ロケータ例外 |
0K | ハンドラー非アクティブ時のResignal |
0L | 無効な文法 |
0M | SQLによって呼び出された無効なプロシージャ参照 |
0N | SQL/XMLマッピング エラー |
0P | 無効なロールの指定 |
0S | 無効な変換グループ名の指定 |
0T | ターゲット テーブルとカーソル指定の不一致 |
0U | 更新できない列への割り当ての試行 |
0V | 順序列への割り当ての試行 |
0W | トリガー実行中に禁止された文を検出 |
0X | 無効な外部サーバーの指定 |
0Y | パススルー固有の条件 |
20 | CASE文に事例がない |
21 | 基数違反 |
22 | データ例外 |
23 | 制約違反 |
24 | 無効なカーソル状態 |
25 | 無効なトランザクション状態 |
26 | 無効な実行文名 |
27 | トリガーされたデータの変更違反 |
28 | 無効な許可IDの指定 Teradata SQLは、許可IDの概念を直接サポートしていません。ANSIの許可IDは、本質的にはデータベースのユーザーです。
|
2B | 従属権限が存在 |
2C | 無効な文字セット名 |
2D | 無効なトランザクション終了 |
2E | 無効な接続名 |
2F | SQLルーチン例外 |
30 | 無効なSQL文 |
31 | 無効なターゲット指定値 |
33 | 無効なSQLDA名 |
34 | 無効なカーソル名 |
35 | 無効な条件番号 |
36 | カーソル感度例外 |
38 | 外部ルーチン例外 |
39 | 外部ルーチン呼び出し例外 |
3B | 保存場所例外 |
3C | 曖昧なカーソル名 |
3D | 無効なカタログ名 Teradata SQLは、カタログの概念を直接サポートしていません。ANSIのカタログは、本質的にはデータ ディクショナリです。
|
3F | 無効なスキーマ名 Teradata SQLは、カタログの概念を直接サポートしていません。ANSIのカタログは、本質的にはデータ ディクショナリです。
|
40 | トランザクション ロールバック |
42 | 構文エラーまたはアクセス違反 |
44 | チェック オプション違反 |
45 | 未処理のユーザー定義例外 |
46 | Java DDLまたはJava実行可能ファイル |
HV | 外部データ ラッパー固有の条件 |
HW | データリンク例外 |
HY | コール レベル インターフェース条件 このコール レベル インターフェースはTeradata CLIv2ではなく、Microsoft Open Database ConnectivityまたはODBCの方言であるANSI標準のCLIです。
|
HZ | リモート データベース アクセス条件 |
U0 | ユーザー定義例外 |