AnalyticDB for PostgreSQL は、返されるすべてのメッセージに 5 文字の SQLSTATE エラーコードを割り当てます。これらのコードは SQL 標準に従っており、先頭 2 文字はエラークラスを識別し、後続の 3 文字はそのクラス内の特定の条件を識別します。アプリケーションが未知のコードに遭遇した場合でも、クラスプレフィックスから一般的なエラーカテゴリを推論できます。
一部のエラーでは、サーバーがエラーメッセージの別フィールドで、関連するデータベースオブジェクト(テーブル、列、データ型、制約など)の名前も報告します。このため、アプリケーションは人間が読めるメッセージ本文を解析してオブジェクト名を抽出する必要はありません。
本ドキュメントでは、PostgreSQL 8.1 で定義されているすべてのエラーコードを一覧表示します。
条件名 列には、PL/pgSQL の例外ハンドラーで使用する記号名が示されています:
EXCEPTION
WHEN division_by_zero THEN ...
WHEN unique_violation THEN ...条件名は大文字小文字を区別しません。
| エラーコード | 条件名 | 説明 |
|---|---|---|
| クラス 00 — 正常終了 | ||
| 00000 | successful_completion | 正常終了 |
| クラス 01 — 警告 | ||
| 01000 | warning | 警告 |
| 0100C | dynamic_result_sets_returned | 動的結果セットが返されました |
| 01008 | implicit_zero_bit_padding | 値がゼロビットでパディングされました |
| 01003 | null_value_eliminated_in_set_function | 集合関数で NULL 値が除外されました |
| 01007 | privilege_not_granted | 必要な権限が付与されていません |
| 01006 | privilege_not_revoked | 指定された権限が取り消されていません |
| 01004 | string_data_right_truncation | 文字列が右側で切り捨てられました |
| 01P01 | deprecated_feature | 非推奨機能 |
| クラス 02 — データなし(SQL 標準では警告クラスとしても定義) | ||
| 02000 | no_data | データが返されませんでした |
| 02001 | no_additional_dynamic_result_sets_returned | 追加の動的結果セットは返されませんでした |
| クラス 03 — SQL ステートメントが未完了 | ||
| 03000 | sql_statement_not_yet_complete | SQL ステートメントの実行が完了していません |
| クラス 08 — 接続例外 | ||
| 08000 | connection_exception | 接続例外 |
| 08003 | connection_does_not_exist | 接続が存在しません |
| 08006 | connection_failure | 接続失敗 |
| 08001 | sqlclient_unable_to_establish_sqlconnection | SQL クライアントが接続を確立できませんでした |
| 08004 | sqlserver_rejected_establishment_of_sqlconnection | SQL サーバーが接続要求を拒否しました |
| 08007 | transaction_resolution_unknown | トランザクションの解決状態が不明です |
| 08P01 | protocol_violation | プロトコル違反 |
| クラス 09 — トリガー実行による例外 | ||
| 09000 | triggered_action_exception | トリガー実行により例外がスローされました |
| クラス 0A — 機能がサポートされていません | ||
| 0A000 | feature_not_supported | 機能がサポートされていません |
| クラス 0B — 無効なトランザクション開始 | ||
| 0B000 | invalid_transaction_initiation | 無効なトランザクション開始 |
| クラス 0F — ロケーター例外 | ||
| 0F000 | locator_exception | ロケーター例外 |
| 0F001 | invalid_locator_specification | 無効なロケーター仕様 |
| クラス 0L — 無効な権限付与者 | ||
| 0L000 | invalid_grantor | 無効な権限付与者 |
| 0LP01 | invalid_grant_operation | 無効な権限付与操作 |
| クラス 0P — 無効なロール仕様 | ||
| 0P000 | invalid_role_specification | 無効なロール仕様 |
| クラス 21 — カーディナリティ違反 | ||
| 21000 | cardinality_violation | カーディナリティ違反 |
| クラス 22 — データ例外 | ||
| 22000 | data_exception | データ例外 |
| 2202E | array_subscript_error | 無効な配列添字 |
| 22021 | character_not_in_repertoire | 文字セットに存在しない文字 |
| 22008 | datetime_field_overflow | 日時フィールドのオーバーフロー |
| 22012 | division_by_zero | ゼロ除算 |
| 22005 | error_in_assignment | 代入エラー |
| 2200B | escape_character_conflict | エスケープ文字の競合 |
| 22022 | indicator_overflow | インジケーターのオーバーフロー |
| 22015 | interval_field_overflow | 内部フィールド オーバーフロー |
| 2201E | invalid_argument_for_logarithm | 対数関数の無効な引数 |
| 2201F | invalid_argument_for_power_function | 累乗関数の無効な引数 |
| 2201G | invalid_argument_for_width_bucket_function | WIDTH_BUCKET 関数の無効な引数 |
| 22018 | invalid_character_value_for_cast | キャスト仕様に無効な文字値が含まれています |
| 22007 | invalid_datetime_format | 無効な日時フォーマット |
| 22019 | invalid_escape_character | 無効なエスケープ文字 |
| 2200D | invalid_escape_octet | 無効なエスケープオクテット |
| 22025 | invalid_escape_sequence | 無効なエスケープシーケンス |
| 22P06 | nonstandard_use_of_escape_character | 標準外のエスケープ文字の使用 |
| 22010 | invalid_indicator_parameter_value | 無効なインジケーター・パラメーター値 |
| 22020 | invalid_limit_value | 無効な LIMIT 値 |
| 22023 | invalid_parameter_value | 無効なパラメーター値 |
| 2201B | invalid_regular_expression | 無効な正規表現 |
| 22009 | invalid_time_zone_displacement_value | 無効なタイムゾーン変位値 |
| 2200C | invalid_use_of_escape_character | 無効なエスケープ文字の使用 |
| 2200G | most_specific_type_mismatch | 最も関連性の高いタイプが一致しません |
| 22004 | null_value_not_allowed | NULL 値は許可されていません |
| 22002 | null_value_no_indicator_parameter | インジケーター・パラメーターに NULL 値が使用されました |
| 22003 | numeric_value_out_of_range | 数値が範囲外です |
| 22026 | string_data_length_mismatch | 文字列長が一致しません |
| 22001 | string_data_right_truncation | 文字列が右側で切り捨てられました |
| 22011 | substring_error | 部分文字列エラー |
| 22027 | trim_error | 切り捨てエラー |
| 22024 | unterminated_c_string | C 文字列が終端されていません |
| 2200F | zero_length_character_string | ゼロ長の文字列が返されました |
| 22P01 | floating_point_exception | 浮動小数点例外 |
| 22P02 | invalid_text_representation | 無効なテキスト表現 |
| 22P03 | invalid_binary_representation | 無効なバイナリ表現 |
| 22P04 | bad_copy_file_format | 無効な COPY ファイル形式 |
| 22P05 | untranslatable_character | 変換できない文字が検出されました |
| クラス 23 — 整合性制約違反 | ||
| 23000 | integrity_constraint_violation | 整合性制約が違反されました |
| 23001 | restrict_violation | 違反の制限 |
| 23502 | not_null_violation | NOT NULL 制約が違反されました |
| 23503 | foreign_key_violation | 外部キー制約が違反されました |
| 23505 | unique_violation | 一意性制約が違反されました |
| 23514 | check_violation | CHECK 制約が違反されました |
| クラス 24 — 無効なカーソル状態 | ||
| 24000 | invalid_cursor_state | 無効なカーソル状態 |
| クラス 25 — 無効なトランザクション状態 | ||
| 25000 | invalid_transaction_state | 無効なトランザクション状態 |
| 25001 | active_sql_transaction | アクティブな SQL トランザクション |
| 25002 | branch_transaction_already_active | ブランチトランザクションが既にアクティブです |
| 25008 | held_cursor_requires_same_isolation_level | 保持中のカーソルには同一の分離レベルが必要です |
| 25003 | inappropriate_access_mode_for_branch_transaction | ブランチトランザクションに不適切なアクセスモード |
| 25004 | inappropriate_isolation_level_for_branch_transaction | ブランチトランザクションに不適切な分離レベル |
| 25005 | no_active_sql_transaction_for_branch_transaction | ブランチトランザクションにアクティブな SQL トランザクションがありません |
| 25006 | read_only_sql_transaction | SQL トランザクションが読み取り専用です |
| 25007 | schema_and_data_statement_mixing_not_supported | スキーマ文とデータ文を混在させることはできません |
| 25P01 | no_active_sql_transaction | アクティブな SQL トランザクションがありません |
| 25P02 | in_failed_sql_transaction | SQL トランザクションが失敗状態です |
| クラス 26 — 無効な SQL ステートメント名 | ||
| 26000 | invalid_sql_statement_name | 無効な SQL ステートメント名 |
| クラス 27 — トリガー実行によるデータ変更違反 | ||
| 27000 | triggered_data_change_violation | トリガー実行によるデータ変更が制約に違反しています |
| クラス 28 — 無効な権限付与仕様 | ||
| 28000 | invalid_authorization_specification | 無効な権限付与仕様 |
| クラス 2B — 依存する権限記述子がまだ存在 | ||
| 2B000 | dependent_privilege_descriptors_still_exist | 依存する権限記述子がまだ存在します |
| 2BP01 | dependent_objects_still_exist | 依存するオブジェクトがまだ存在します |
| クラス 2D — 無効なトランザクション終了 | ||
| 2D000 | invalid_transaction_termination | 無効なトランザクション終了 |
| クラス 2F — SQL ルーティン例外 | ||
| 2F000 | sql_routine_exception | SQL ルーティン例外 |
| 2F005 | function_executed_no_return_statement | 実行された関数がステートメントを返しません |
| 2F002 | modifying_sql_data_not_permitted | SQL データを変更できません |
| 2F003 | prohibited_sql_statement_attempted | 禁止された SQL ステートメントが試行されました |
| 2F004 | reading_sql_data_not_permitted | SQL データを読み取れません |
| クラス 34 — 無効なカーソル名 | ||
| 34000 | invalid_cursor_name | 無効なカーソル名 |
| クラス 38 — 外部ルーティン例外 | ||
| 38000 | external_routine_exception | 外部ルーティン例外 |
| 38001 | containing_sql_not_permitted | 禁止された SQL ステートメントが含まれています |
| 38002 | modifying_sql_data_not_permitted | SQL データを変更できません |
| 38003 | prohibited_sql_statement_attempted | 禁止された SQL ステートメントが試行されました |
| 38004 | reading_sql_data_not_permitted | SQL データを読み取れません |
| クラス 39 — 外部ルーティン呼び出し例外 | ||
| 39000 | external_routine_invocation_exception | 外部ルーティン呼び出し中の例外 |
| 39001 | invalid_sqlstate_returned | 返された SQL ステートメントが無効です |
| 39004 | null_value_not_allowed | NULL 値は許可されていません |
| 39P01 | trigger_protocol_violated | トリガープロトコル違反 |
| 39P02 | srf_protocol_violated | SRF プロトコル違反 |
| クラス 3B — セーブポイント例外 | ||
| 3B000 | savepoint_exception | セーブポイント例外 |
| 3B001 | invalid_savepoint_specification | 無効なセーブポイント仕様 |
| クラス 3D — 無効なカタログ名 | ||
| 3D000 | invalid_catalog_name | 無効なデータベース名 |
| クラス 3F — 無効なスキーマ名 | ||
| 3F000 | invalid_schema_name | 無効なスキーマ名 |
| クラス 40 — トランザクションロールバック | ||
| 40000 | transaction_rollback | トランザクションがロールバックされました |
| 40002 | transaction_integrity_constraint_violation | トランザクションの整合性制約が違反されました |
| 40001 | serialization_failure | シリアル化失敗 |
| 40003 | statement_completion_unknown | ステートメントの完了状態が不明です |
| 40P01 | deadlock_detected | デッドロックが検出されました |
| クラス 42 — 構文エラーまたはアクセス規則違反 | ||
| 42000 | syntax_error_or_access_rule_violation | 構文エラーまたはアクセス規則違反 |
| 42601 | syntax_error | 構文エラー |
| 42501 | insufficient_privilege | 必要な権限が付与されていません |
| 42846 | cannot_coerce | データ型を変換できません |
| 42803 | grouping_error | GROUP BY エラー |
| 42830 | invalid_foreign_key | 無効な外部キー |
| 42602 | invalid_name | 無効な名前 |
| 42622 | name_too_long | 名前が長すぎます |
| 42939 | reserved_name | 予約済み名 |
| 42804 | datatype_mismatch | データ型が一致しません |
| 42P18 | indeterminate_datatype | 不定のデータ型 |
| 42809 | wrong_object_type | 無効なオブジェクトタイプ |
| 42703 | undefined_column | 未定義の列 |
| 42883 | undefined_function | 未定義の関数 |
| 42P01 | undefined_table | 未定義のテーブル |
| 42P02 | undefined_parameter | 未定義のパラメーター |
| 42704 | undefined_object | 未定義のオブジェクト |
| 42701 | duplicate_column | 重複する列 |
| 42P03 | duplicate_cursor | 重複するカーソル |
| 42P04 | duplicate_database | 重複するデータベース |
| 42723 | duplicate_function | 重複する関数 |
| 42P05 | duplicate_prepared_statement | 重複するプリペアドステートメント |
| 42P06 | duplicate_schema | 重複するスキーマ |
| 42P07 | duplicate_table | 重複するテーブル |
| 42712 | duplicate_alias | 重複するエイリアス |
| 42710 | duplicate_object | 重複するオブジェクト |
| 42702 | ambiguous_column | 曖昧な列 |
| 42725 | ambiguous_function | 曖昧な関数 |
| 42P08 | ambiguous_parameter | 曖昧なパラメーター |
| 42P09 | ambiguous_alias | 曖昧なエイリアス |
| 42P10 | invalid_column_reference | 無効な列リファレンス |
| 42611 | invalid_column_definition | 無効な列定義 |
| 42P11 | invalid_cursor_definition | 無効なカーソル定義 |
| 42P12 | invalid_database_definition | 無効なデータベース定義 |
| 42P13 | invalid_function_definition | 無効な関数定義 |
| 42P14 | invalid_prepared_statement_definition | 無効なプリペアドステートメント定義 |
| 42P15 | invalid_schema_definition | 無効なスキーマ定義 |
| 42P16 | invalid_table_definition | 無効なテーブル定義 |
| 42P17 | invalid_object_definition | 無効なオブジェクト定義 |
| クラス 44 — WITH CHECK OPTION 違反 | ||
| 44000 | with_check_option_violation | WITH CHECK OPTION が違反されました |
| クラス 53 — リソース不足 | ||
| 53000 | insufficient_resources | リソースが不足しています |
| 53100 | disk_full | ディスク容量が不足しています |
| 53200 | out_of_memory | メモリが不足しています |
| 53300 | too_many_connections | 接続数が上限を超えています |
| クラス 54 — プログラム制限超過 | ||
| 54000 | program_limit_exceeded | プログラム制限を超えました |
| 54001 | statement_too_complex | ステートメントが複雑すぎます |
| 54011 | too_many_columns | 列数が上限を超えています |
| 54023 | too_many_arguments | 引数の数が上限を超えています |
| クラス 55 — オブジェクトが前提条件の状態にありません | ||
| 55000 | object_not_in_prerequisite_state | オブジェクトが要求される状態にありません |
| 55006 | object_in_use | オブジェクトが使用中です |
| 55P02 | cant_change_runtime_param | ランタイムパラメーターを変更できません |
| 55P03 | lock_not_available | ロックを利用できません |
| クラス 57 — オペレーター介入 | ||
| 57000 | operator_intervention | オペレーター介入 |
| 57014 | query_canceled | クエリがキャンセルされました |
| 57P01 | admin_shutdown | 管理者によってシステムがシャットダウンされました |
| 57P02 | crash_shutdown | クラッシュによりシステムがシャットダウンされました |
| 57P03 | cannot_connect_now | 現在接続できません |
| クラス 58 — システムエラー | ||
| 58030 | io_error | I/O エラー |
| 58P01 | undefined_file | 未定義のファイル |
| 58P02 | duplicate_file | 重複するファイル |
| クラス F0 — 設定ファイルエラー | ||
| F0000 | config_file_error | 設定ファイルエラー |
| F0001 | lock_file_exists | ロックファイルが存在します |
| クラス P0 — PL/pgSQL エラー | ||
| P0000 | plpgsql_error | PL/pgSQL エラー |
| P0001 | raise_exception | 例外が発生しました |
| クラス XX — 内部エラー | ||
| XX000 | internal_error | 内部エラー |
| XX001 | data_corrupted | データが破損しています |
| XX002 | index_corrupted | インデックスが破損しています |