定義
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クラスが定義されています。Teradata Databaseは、リストされているすべてのクラスをサポートしているわけではありません。
| クラス コード | 定義 |
|---|---|
| 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は、本質的にはTeradata Databaseのユーザーです。
|
| 2B | 従属権限が存在 |
| 2C | 無効な文字セット名 |
| 2D | 無効なトランザクション終了 |
| 2E | 無効な接続名 |
| 2F | SQLルーチン例外 |
| 30 | 無効なSQL文 |
| 31 | 無効なターゲット指定値 |
| 33 | 無効なSQLDA名 |
| 34 | 無効なカーソル名 |
| 35 | 無効な条件番号 |
| 36 | カーソル感度例外 |
| 38 | 外部ルーチン例外 |
| 39 | 外部ルーチン呼び出し例外 |
| 3B | 保存場所例外 |
| 3C | 曖昧なカーソル名 |
| 3D | 無効なカタログ名 Teradata SQLは、カタログの概念を直接サポートしていません。ANSIのカタログは、本質的にはTeradata Databaseのデータ ディクショナリです。
|
| 3F | 無効なスキーマ名 Teradata SQLは、カタログの概念を直接サポートしていません。ANSIのカタログは、本質的にはTeradata Databaseのデータ ディクショナリです。
|
| 40 | トランザクション ロールバック |
| 42 | 構文エラーまたはアクセス違反 |
| 44 | チェック オプション違反 |
| 45 | 未処理のユーザー定義例外 |
| 46 | Java DDLまたはJava実行可能ファイル |
| HV | 外部データ ラッパー固有の条件 |
| HW | データリンク例外 |
| HY | コール レベル インターフェース条件 このコール レベル インターフェースはTeradata DatabaseCLIv2ではなく、Microsoft Open Database ConnectivityまたはODBCの方言であるANSI標準のCLIです。
|
| HZ | リモート データベース アクセス条件 |
| U0 | ユーザー定義例外 |