PostgreSQLエラーコード

PostgreSQL 9.1.1文書
前のページ | 巻戻し |  | 早送り | 次のページ

# 付録 A. PostgreSQLエラーコード

PostgreSQLサーバによって発行されるメッセージは全て、標準SQLにおける"SQLSTATE"コードの記述方法に従った、5文字のエラーコードが割り当てられています。 どのようなエラー条件が発生したかを把握しなければならないアプリケーションは、通常テキスト形式のエラーメッセージを確認するのではなく、このエラーコードを検査すべきです。 このエラーコードは、PostgreSQLリリースの違いによって変更することはあまりありません。また、エラーメッセージの各国言語化による変更にも影響されません。 PostgreSQLで発行されるエラーコードのいくつか（全部ではありません）は、標準SQLで定義されていることに注意してください。 標準SQLで定義されていない追加のエラーコードは、独自のものであったり他のデータベースから取り入れたものです。

標準に従い、エラーコードの最初の2文字はエラーのクラスを表し、残り3文字がそのクラス内の特定条件を表します。 したがって、特定のエラーコードを認識できないアプリケーションであっても、エラークラスから何をすべきか推定することができます。

表A-1は、PostgreSQL 9.1.1で定義されたエラーコードを全て一覧で示しています （標準SQLでは定義されていますが、現在実際に使用されていないものもあります）。 エラークラスも示しています。 各エラークラスには、残りの3文字が`000`となる"標準"エラーコードが存在します。 あるクラスの範囲内で発生したが、より特定のコードが割り当てられていないエラー条件のためだけに、このコードが使用されます。

"Condition Name"列に示されているシンボルはPL/pgSQLで使用している条件名です。 条件名は大文字もしくは小文字でも記述されます。（PL/pgSQLは、エラーの場合と異なり、警告の場合にはその状態名を認識しません。これらはクラス00と01と02です）。

表 A-1. PostgreSQLエラーコード

エラーコード | 条件名
--- | ---
クラス 00 — 正常終了
`00000` | `successful_completion`
クラス 01 — 警告
`01000` | `warning`
`0100C` | `dynamic_result_sets_returned`
`01008` | `implicit_zero_bit_padding`
`01003` | `null_value_eliminated_in_set_function`
`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`
クラス 08 — 接続の例外
`08000` | `connection_exception`
`08003` | `connection_does_not_exist`
`08006` | `connection_failure`
`08001` | `sqlclient_unable_to_establish_sqlconnection`
`08004` | `sqlserver_rejected_establishment_of_sqlconnection`
`08007` | `transaction_resolution_unknown`
`08P01` | `protocol_violation`
クラス 09 — トリガによるアクションの例外
`09000` | `triggered_action_exception`
Class 0A — サポートされない機能
`0A000` | `feature_not_supported`
Class 0B — 無効なトランザクションの初期
`0B000` | `invalid_transaction_initiation`
Class 0F — ロケータの例外
`0F000` | `locator_exception`
`0F001` | `invalid_locator_specification`
Class 0L — 無効な権限付与
`0L000` | `invalid_grantor`
`0LP01` | `invalid_grant_operation`
Class 0P — 無効なロールの指定
`0P000` | `invalid_role_specification`
Class 0Z — Diagnostics例外
`0Z000` | `diagnostics_exception`
`0Z002` | `stacked_diagnostics_accessed_without_active_handler`
Class 20 — Caseが存在しない
`20000` | `case_not_found`
Class 21 — 次数違反
`21000` | `cardinality_violation`
Class 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`
`22014` | `invalid_argument_for_ntile_function`
`22016` | `invalid_argument_for_nth_value_function`
`2201F` | `invalid_argument_for_power_function`
`2201G` | `invalid_argument_for_width_bucket_function`
`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`
`22023` | `invalid_parameter_value`
`2201B` | `invalid_regular_expression`
`2201W` | `invalid_row_count_in_limit_clause`
`2201X` | `invalid_row_count_in_result_offset_clause`
`22009` | `invalid_time_zone_displacement_value`
`2200C` | `invalid_use_of_escape_character`
`2200G` | `most_specific_type_mismatch`
`22004` | `null_value_not_allowed`
`22002` | `null_value_no_indicator_parameter`
`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`
`2200F` | `zero_length_character_string`
`22P01` | `floating_point_exception`
`22P02` | `invalid_text_representation`
`22P03` | `invalid_binary_representation`
`22P04` | `bad_copy_file_format`
`22P05` | `untranslatable_character`
`2200L` | `not_an_xml_document`
`2200M` | `invalid_xml_document`
`2200N` | `invalid_xml_content`
`2200S` | `invalid_xml_comment`
`2200T` | `invalid_xml_processing_instruction`
Class 23 — 整合性制約違反
`23000` | `integrity_constraint_violation`
`23001` | `restrict_violation`
`23502` | `not_null_violation`
`23503` | `foreign_key_violation`
`23505` | `unique_violation`
`23514` | `check_violation`
`23P01` | `exclusion_violation`
Class 24 — 無効なカーソル状態
`24000` | `invalid_cursor_state`
Class 25 — 無効なトランザクション状態
`25000` | `invalid_transaction_state`
`25001` | `active_sql_transaction`
`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`
`25006` | `read_only_sql_transaction`
`25007` | `schema_and_data_statement_mixing_not_supported`
`25P01` | `no_active_sql_transaction`
`25P02` | `in_failed_sql_transaction`
Class 26 — 無効なSQL文の名前
`26000` | `invalid_sql_statement_name`
Class 27 — トリガによるデータ変更違反
`27000` | `triggered_data_change_violation`
Class 28 — 無効な認証指定
`28000` | `invalid_authorization_specification`
`28P01` | `invalid_password`
Class 2B — 依存する権限記述子がまだ存在する
`2B000` | `dependent_privilege_descriptors_still_exist`
`2BP01` | `dependent_objects_still_exist`
Class 2D — 無効なトランザクションの終了
`2D000` | `invalid_transaction_termination`
Class 2F — SQL関数例外
`2F000` | `sql_routine_exception`
`2F005` | `function_executed_no_return_statement`
`2F002` | `modifying_sql_data_not_permitted`
`2F003` | `prohibited_sql_statement_attempted`
`2F004` | `reading_sql_data_not_permitted`
Class 34 — 無効なカーソル名称
`34000` | `invalid_cursor_name`
Class 38 — 外部関数例外
`38000` | `external_routine_exception`
`38001` | `containing_sql_not_permitted`
`38002` | `modifying_sql_data_not_permitted`
`38003` | `prohibited_sql_statement_attempted`
`38004` | `reading_sql_data_not_permitted`
Class 39 — 外部関数呼び出し例外
`39000` | `external_routine_invocation_exception`
`39001` | `invalid_sqlstate_returned`
`39004` | `値は許されていない`
`39P01` | `trigger_protocol_violated`
`39P02` | `srf_protocol_violated`
Class 3B — セーブポイント例外
`3B000` | `savepoint_exception`
`3B001` | `invalid_savepoint_specification`
Class 3D — 無効なカタログ名称
`3D000` | `invalid_catalog_name`
Class 3F — 無効なスキーマ名称
`3F000` | `invalid_schema_name`
Class 40 — トランザクションロールバック
`40000` | `transaction_rollback`
`40002` | `transaction_integrity_constraint_violation`
`40001` | `serialization_failure`
`40003` | `statement_completion_unknown`
`40P01` | `deadlock_detected`
Class 42 — 構文エラー、もしくはアクセスロール違反
`42000` | `syntax_error_or_access_rule_violation`
`42601` | `syntax_error`
`42501` | `insufficient_privilege`
`42846` | `cannot_coerce`
`42803` | `grouping_error`
`42P20` | `windowing_error`
`42P19` | `invalid_recursion`
`42830` | `invalid_foreign_key`
`42602` | `invalid_name`
`42622` | `name_too_long`
`42939` | `reserved_name`
`42804` | `datatype_mismatch`
`42P18` | `indeterminate_datatype`
`42P21` | `collation_mismatch`
`42P22` | `indeterminate_collation`
`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`
Class 44 — 検査オプションに伴う違反
`44000` | `with_check_option_violation`
Class 53 — リソース不足
`53000` | `insufficient_resources`
`53100` | `disk_full`
`53200` | `out_of_memory`
`53300` | `too_many_connections`
`53400` | `configuration_limit_exceeded`
Class 54 — Program Limit Exceeded
`54000` | `program_limit_exceeded`
`54001` | `statement_too_complex`
`54011` | `too_many_columns`
`54023` | `too_many_arguments`
Class 55 — 必要条件を満たさないオブジェクト
`55000` | `object_not_in_prerequisite_state`
`55006` | `object_in_use`
`55P02` | `cant_change_runtime_param`
`55P03` | `lock_not_available`
Class 57 — 操作の介入
`57000` | `operator_intervention`
`57014` | `query_canceled`
`57P01` | `admin_shutdown`
`57P02` | `crash_shutdown`
`57P03` | `cannot_connect_now`
`57P04` | `database_dropped`
Class 58 — システムエラー（外部原因によるPostgreSQL自体のエラー）
`58000` | `system_error`
`58030` | `io_error`
`58P01` | `undefined_file`
`58P02` | `duplicate_file`
Class F0 — 設定ファイルエラー
`F0000` | `config_file_error`
`F0001` | `lock_file_exists`
Class HV — 外部データラッパーエラー (SQL/MED)
`HV000` | `fdw_error`
`HV005` | `fdw_column_name_not_found`
`HV002` | `fdw_dynamic_parameter_value_needed`
`HV010` | `fdw_function_sequence_error`
`HV021` | `fdw_inconsistent_descriptor_information`
`HV024` | `fdw_invalid_attribute_value`
`HV007` | `fdw_invalid_column_name`
`HV008` | `fdw_invalid_column_number`
`HV004` | `fdw_invalid_data_type`
`HV006` | `fdw_invalid_data_type_descriptors`
`HV091` | `fdw_invalid_descriptor_field_identifier`
`HV00B` | `fdw_invalid_handle`
`HV00C` | `fdw_invalid_option_index`
`HV00D` | `fdw_invalid_option_name`
`HV090` | `fdw_invalid_string_length_or_buffer_length`
`HV00A` | `fdw_invalid_string_format`
`HV009` | `fdw_invalid_use_of_null_pointer`
`HV014` | `fdw_too_many_handles`
`HV001` | `fdw_out_of_memory`
`HV00P` | `fdw_no_schemas`
`HV00J` | `fdw_option_name_not_found`
`HV00K` | `fdw_reply_handle`
`HV00Q` | `fdw_schema_not_found`
`HV00R` | `fdw_table_not_found`
`HV00L` | `fdw_unable_to_create_execution`
`HV00M` | `fdw_unable_to_create_reply`
`HV00N` | `fdw_unable_to_establish_connection`
Class P0 — PL/pgSQLエラー
`P0000` | `plpgsql_error`
`P0001` | `raise_exception`
`P0002` | `no_data_found`
`P0003` | `too_many_rows`
Class XX — Internal Error
`XX000` | `internal_error`
`XX001` | `data_corrupted`
`XX002` | `index_corrupted`

前のページ | ホーム | 次のページ
付録 | 上に戻る | 日付/時刻のサポート