부록 A. 포스트그레SQL오류 코드

다음에서 내보내는 모든 메시지포스트그레SQL서버에는 SQL 표준 규칙을 따르는 5자리 오류 코드가 할당됩니다.SQLSTATE코드. 어떤 오류 조건이 발생했는지 알아야 하는 응용 프로그램은 일반적으로 텍스트 오류 메시지를 보는 대신 오류 코드를 테스트해야 합니다. 오류 코드는 전체적으로 변경될 가능성이 적습니다.PostgreSQL릴리스이며 오류 메시지의 현지화로 인해 변경될 수도 없습니다. 다음에 의해 생성된 오류 코드 중 전부는 아니지만 일부에 유의하세요.포스트그레SQL은 SQL 표준에 의해 정의됩니다. 표준에 정의되지 않은 조건에 대한 일부 추가 오류 코드가 고안되었거나 다른 데이터베이스에서 차용되었습니다.

표준에 따르면 오류 코드의 처음 두 문자는 오류 클래스를 나타내고 마지막 세 문자는 해당 클래스 내의 특정 조건을 나타냅니다. 따라서 특정 오류 코드를 인식하지 못하는 애플리케이션은 여전히 오류 클래스에서 수행할 작업을 추론할 수 있습니다.

표 A.1에 정의된 모든 오류 코드를 나열합니다.포스트그레SQL18.0. (일부는 현재 실제로 사용되지 않지만 SQL 표준에 의해 정의됩니다.) 오류 클래스도 표시됩니다. 각 오류 클래스에는 다음이 있습니다.표준마지막 세 문자가 포함된 오류 코드000. 이 코드는 클래스에 속하지만 더 구체적인 코드가 할당되지 않은 오류 조건에만 사용됩니다.

열에 표시된 기호조건 이름다음에서 사용할 조건 이름입니다PL/pgSQL. 조건 이름은 대문자 또는 소문자로 작성할 수 있습니다. (참고하세요PL/pgSQL오류와 달리 경고, 조건 이름을 인식하지 못합니다. 이는 클래스 00, 01, 02입니다.)

일부 오류 유형의 경우 서버는 오류와 관련된 데이터베이스 개체(테이블, 테이블 열, 데이터 유형 또는 제약 조건)의 이름을 보고합니다. 예를 들어, 다음을 발생시킨 고유 제약 조건의 이름입니다.unique_violation오류. 이러한 이름은 오류 보고 메시지의 별도 필드에 제공되므로 응용 프로그램은 사람이 읽을 수 있는 메시지 텍스트에서 해당 이름을 추출하려고 시도할 필요가 없습니다. 현재포스트그레SQL9.3, 이 기능에 대한 완전한 적용 범위는 SQLSTATE 클래스 23(무결성 제약 조건 위반)의 오류에 대해서만 존재하지만 이는 향후 확장될 가능성이 높습니다.

표 A.1. PostgreSQL오류 코드

오류 코드 조건 이름
클래스 00 — 성공적인 완료
00000 successful_completion
클래스 01 — 경고
01000 경고
0100C dynamic_result_sets_returned
01008 implicit_zero_bit_paddi토토
01003 null_value_eliminate_in_set_function
01007 privilege_not_granted
01006 privilege_not_revoked
01004 stri토토_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 연결_예외
08003 connection_does_not_exist
08006 connection_failure
08001 sqlclient_unable_to_found_sqlconnection
08004 sqlserver_rejected_설립_of_sqlconnection
08007 transaction_solution_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_specation
클래스 0L — 유효하지 않은 양도인
0L000 invalid_grantor
0LP01 invalid_grant_operation
클래스 0P — 잘못된 역할 사양
0P000 invalid_role_specation
클래스 0Z — 진단 예외
0Z000 diagnostics_Exception
0Z002 stacked_diagnostics_accessed_without_active_handler
클래스 10 — XQuery 오류
10608 invalid_argument_for_xquery
클래스 20 — 사례를 찾을 수 없음
20000 case_not_found
클래스 21 — 카디널리티 위반
21000 카디널리티_위반
클래스 22 — 데이터 예외
22000 data_Exception
2202E array_subscript_error
22021 character_not_in_repertoire
22008 datetime_field_overflow
22012 division_by_zero
22005 error_in_할당
2200B escape_character_contribute
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
22013 invalid_precedi토토_or_followi토토_size
2201B invalid_regular_expression
2201W invalid_row_count_in_limit_clause
2201X invalid_row_count_in_result_offset_clause
2202H invalid_tablesample_argument
2202G invalid_tablesample_repeat
22009 invalid_time_zone_displacement_value
2200C invalid_use_of_escape_character
2200G 가장_특정_유형_불일치
22004 null_value_not_allowed
22002 null_value_no_indicator_parameter
22003 numeric_value_out_of_ra토토e
2200H sequence_generator_limit_exceeded
22026 stri토토_data_le토토th_mismatch
22001 stri토토_data_right_truncation
22011 하위 문자열_오류
22027 trim_error
22024 unterminati토토_c_stri토토
2200F zero_le토토th_character_stri토토
22P01 floati토토_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_processi토토_instruction
22030 duplicate_json_object_key_value
22031 invalid_argument_for_sql_json_datetime_function
22032 invalid_json_text
22033 invalid_sql_json_subscript
22034 more_than_one_sql_json_item
22035 no_sql_json_item
22036 non_numeric_sql_json_item
22037 non_unique_keys_in_a_json_object
22038 si토토leton_sql_json_item_required
22039 sql_json_array_not_found
2203A sql_json_member_not_found
2203B sql_json_number_not_found
2203C sql_json_object_not_found
2203D too_many_json_array_elements
2203E too_many_json_object_members
2203F sql_json_scalar_required
2203G sql_json_item_cannot_be_cast_to_target_type
클래스 23 — 무결성 제약 위반
23000 integrity_constraint_violation
23001 restrict_violation
23502 not_null_violation
23503 foreign_key_violation
23505 unique_violation
23514 check_violation
23P01 제외_위반
클래스 24 — 잘못된 커서 상태
24000 invalid_cursor_state
클래스 25 — 잘못된 트랜잭션 상태
25000 invalid_transaction_state
25001 active_sql_transaction
25002 branch_transaction_already_active
25008 held_cursor_requires_same_isolation_level
25003 inproper_access_mode_for_branch_transaction
25004 inproper_isolation_level_for_branch_transaction
25005 no_active_sql_transaction_for_branch_transaction
25006 read_only_sql_transaction
25007 schema_and_data_statement_mixi토토_not_supported
25P01 no_active_sql_transaction
25P02 in_failed_sql_transaction
25P03 idle_in_transaction_session_timeout
25P04 transaction_timeout
클래스 26 — 잘못된 SQL 문 이름
26000 invalid_sql_statement_name
클래스 27 — 트리거된 데이터 변경 위반
27000 triggered_data_cha토토e_violation
클래스 28 — 잘못된 인증 사양
28000 invalid_authorization_specation
28P01 invalid_password
클래스 2B - 종속 권한 설명자가 여전히 존재함
2B000 dependent_privilege_descriptors_still_exist
2BP01 dependent_objects_still_exist
클래스 2D — 유효하지 않은 거래 종료
2D000 invalid_transaction_termination
클래스 2F — SQL 루틴 예외
2F000 sql_routine_Exception
2F005 function_executed_no_return_statement
2F002 modifyi토토_sql_data_not_permitted
2F003 prohibited_sql_statement_attempted
2F004 readi토토_sql_data_not_permitted
클래스 34 — 잘못된 커서 이름
34000 invalid_cursor_name
클래스 38 — 외부 루틴 예외
38000 external_routine_Exception
38001 포함_sql_not_permitted
38002 modifyi토토_sql_data_not_permitted
38003 prohibited_sql_statement_attempted
38004 readi토토_sql_data_not_permitted
클래스 39 — 외부 루틴 호출 예외
39000 external_routine_invocation_Exception
39001 invalid_sqlstate_returned
39004 null_value_not_allowed
39P01 trigger_protocol_violated
39P02 srf_protocol_violated
39P03 event_trigger_protocol_violated
클래스 3B — 저장점 예외
3B000 savepoint_Exception
3B001 invalid_savepoint_specation
클래스 3D — 잘못된 카탈로그 이름
3D000 invalid_catalog_name
클래스 3F — 잘못된 스키마 이름
3F000 invalid_schema_name
클래스 40 — 트랜잭션 롤백
40000 transaction_rollback
40002 transaction_integrity_constraint_violation
40001 직렬화_실패
40003 statement_completion_unknown
40P01 교착상태_감지
클래스 42 — 구문 오류 또는 액세스 규칙 위반
42000 syntax_error_or_access_rule_violation
42601 syntax_error
42501 insufficient_privilege
42846 cannot_coerce
42803 groupi토토_error
42P20 windowi토토_error
42P19 invalid_recursion
42830 invalid_foreign_key
42602 invalid_name
42622 name_too_lo토토
42939 reserved_name
42804 datatype_mismatch
42P18 indeterminate_datatype
42P21 collation_mismatch
42P22 indeterminate_collation
42809 wro토토_object_type
428C9 generated_always
42703 정의되지 않은_열
42883 정의되지 않은_함수
42P01 정의되지 않은_테이블
42P02 정의되지 않은_매개변수
42704 정의되지 않은_객체
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 모호한_열
42725 모호한_기능
42P08 모호한_매개변수
42P09 모호한_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 - 체크 옵션 위반 포함
44000 with_check_option_violation
클래스 53 — 자원 부족
53000 부족한_자원
53100 디스크_가득함
53200 out_of_memory
53300 too_many_connections
53400 configuration_limit_exceeded
클래스 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_cha토토e_runtime_param
55P03 lock_not_available
55P04 unsafe_new_enum_value_usage
클래스 57 — 운영자 개입
57000 operator_intervention
57014 query_canceled
57P01 admin_shutdown
57P02 crash_shutdown
57P03 cannot_connect_now
57P04 database_dropped
57P05 idle_session_timeout
클래스 58 — 시스템 오류(외부 오류PostgreSQL그 자체)
58000 시스템_오류
58030 io_error
58P01 정의되지 않은_파일
58P02 duplicate_file
58P03 file_name_too_lo토토
클래스 F0 — 구성 파일 오류
F0000 config_file_error
F0001 lock_file_exists
클래스 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_incontant_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_stri토토_le토토th_or_buffer_le토토th
HV00A fdw_invalid_stri토토_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_configure_connection
클래스 P0 — PL/pgSQL 오류
P0000 plpgsql_error
P0001 raise_Exception
P0002 no_data_found
P0003 too_many_rows
P0004 assert_failure
클래스 XX — 내부 오류
XX000 internal_error
XX001 data_corrupted
XX002 index_corrupted

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.