错误码格式
PolarDB PostgreSQL版服务器发出的所有消息都遵循SQL标准对“SQLSTATE”码的约定,被赋予一个5个字符的错误码。如果应用程序想要判断发生了什么错误,应该检查返回消息的错误码,而非检测消息的文本。不同发布版本之间的错误码一般不会发生改变,但其错误文本可能变化。
根据SQL标准,错误码的前两位表示错误类别,后三位表示当前错误类别下的特定情况。应用程序即便无法识别特定的错误码,依然可以通过错误码的前两位识别出错误类型。
以下列出所有的错误类和错误码,对于每个错误类有一个最后三位为000的错误码,该错误码用于表示当前错误类下没有赋予特定错误情况的错误。
错误码列表
说明 条件名(Condition Name)表示在存储过程中可以使用的条件名,在存储过程中该条件名不区分大小写。
存储过程不识别warning类型的条件名,对应的错误类为 00 , 01 和 02。
表 1. Class 00 — Successful Completion
Error Code | Condition Name |
00000
| successful_completion
|
表 2. Class 01 — Warning
Error Code | Condition Name |
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
|
表 3. Class 02 — No Data (this is also a warning class per the SQL standard)
Error Code | Condition Name |
02000
| no_data
|
02001
| no_additional_dynamic_result_sets_returned
|
表 4. Class 03 — SQL Statement Not Yet Complete
Error Code | Condition Name |
03000
| sql_statement_not_yet_complete
|
表 5. Class 08 — Connection Exception
Error Code | Condition Name |
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
|
表 6. Class 09 — Triggered Action Exception
Error Code | Condition Name |
09000
| triggered_action_exception
|
表 7. Class 0A — Feature Not Supported
Error Code | Condition Name |
0A000
| feature_not_supported
|
表 8. Class 0B — Invalid Transaction Initiation
Error Code | Condition Name |
0B000
| invalid_transaction_initiation
|
表 9. Class 0F — Locator Exception
Error Code | Condition Name |
0F000
| locator_exception
|
0F001
| invalid_locator_specification
|
表 10. Class 0L — Invalid Grantor
Error Code | Condition Name |
0L000
| invalid_grantor
|
0LP01
| invalid_grant_operation
|
表 11. Class 0P — Invalid Role Specification
Error Code | Condition Name |
0P000
| invalid_role_specification
|
表 12. Class 0Z — Diagnostics Exception
Error Code | Condition Name |
0Z000
| diagnostics_exception
|
0Z002
| stacked_diagnostics_accessed_without_active_handler
|
表 13. Class 20 — Case Not Found
Error Code | Condition Name |
20000
| case_not_found
|
表 14. Class 21 — Cardinality Violation
Error Code | Condition Name |
21000
| cardinality_violation
|
表 15. Class 22 — Data Exception
Error Code | Condition Name |
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
|
22013
| invalid_preceding_or_following_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
| most_specific_type_mismatch
|
22004
| null_value_not_allowed
|
22002
| null_value_no_indicator_parameter
|
22003
| numeric_value_out_of_range
|
2200H
| sequence_generator_limit_exceeded
|
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
|
表 16. Class 23 — Integrity Constraint Violation
Error Code | Condition Name |
23000
| integrity_constraint_violation
|
23001
| restrict_violation
|
23502
| not_null_violation
|
23503
| foreign_key_violation
|
23505
| unique_violation
|
23514
| check_violation
|
23P01
| exclusion_violation
|
表 17. Class 24 — Invalid Cursor State
Error Code | Condition Name |
24000
| invalid_cursor_state
|
表 18. Class 25 — Invalid Transaction State
Error Code | Condition Name |
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
|
25P03
| idle_in_transaction_session_timeout
|
表 19. Class 26 — Invalid SQL Statement Name
Error Code | Condition Name |
26000
| invalid_sql_statement_name
|
表 20. Class 27 — Triggered Data Change Violation
Error Code | Condition Name |
27000
| triggered_data_change_violation
|
表 21. Class 28 — Invalid Authorization Specification
Error Code | Condition Name |
28000
| invalid_authorization_specification
|
28P01
| invalid_password
|
表 22. Class 2B — Dependent Privilege Descriptors Still Exist
Error Code | Condition Name |
2B000
| dependent_privilege_descriptors_still_exist
|
2BP01
| dependent_objects_still_exist
|
表 23. Class 2D — Invalid Transaction Termination
Error Code | Condition Name |
2D000
| invalid_transaction_termination
|
表 24. Class 2F — SQL Routine Exception
Error Code | Condition Name |
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
|
表 25. Class 34 — Invalid Cursor Name
Error Code | Condition Name |
34000
| invalid_cursor_name
|
表 26. Class 38 — External Routine Exception
Error Code | Condition Name |
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
|
表 27. Class 39 — External Routine Invocation Exception
Error Code | Condition Name |
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
|
表 28. Class 3B — Savepoint Exception
Error Code | Condition Name |
3B000
| savepoint_exception
|
3B001
| invalid_savepoint_specification
|
表 29. Class 3D — Invalid Catalog Name
Error Code | Condition Name |
3D000
| invalid_catalog_name
|
表 30. Class 3F — Invalid Schema Name
Error Code | Condition Name |
3F000
| invalid_schema_name
|
表 31. Class 40 — Transaction Rollback
Error Code | Condition Name |
40000
| transaction_rollback
|
40002
| transaction_integrity_constraint_violation
|
40001
| serialization_failure
|
40003
| statement_completion_unknown
|
40P01
| deadlock_detected
|
表 32. Class 42 — Syntax Error or Access Rule Violation
Error Code | Condition Name |
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
|
428C9
| generated_always
|
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
|
表 33. Class 44 — WITH CHECK OPTION Violation
Error Code | Condition Name |
44000
| with_check_option_violation
|
表 34. Class 53 — Insufficient Resources
Error Code | Condition Name |
53000
| insufficient_resources
|
53100
| disk_full
|
53200
| out_of_memory
|
53300
| too_many_connections
|
53400
| configuration_limit_exceeded
|
表 35. Class 54 — Program Limit Exceeded
Error Code | Condition Name |
54000
| program_limit_exceeded
|
54001
| statement_too_complex
|
54011
| too_many_columns
|
54023
| too_many_arguments
|
表 36. Class 55 — Object Not In Prerequisite State
Error Code | Condition Name |
55000
| object_not_in_prerequisite_state
|
55006
| object_in_use
|
55P02
| cant_change_runtime_param
|
55P03
| lock_not_available
|
表 37. Class 57 — Operator Intervention
Error Code | Condition Name |
57000
| operator_intervention
|
57014
| query_canceled
|
57P01
| admin_shutdown
|
57P02
| crash_shutdown
|
57P03
| cannot_connect_now
|
57P04
| database_dropped
|
表 38. Class 58 — System Error (errors external to PostgreSQL itself)
Error Code | Condition Name |
58000
| system_error
|
58030
| io_error
|
58P01
| undefined_file
|
58P02
| duplicate_file
|
表 39. Class 72 — Snapshot Failure
Error Code | Condition Name |
72000
| snapshot_too_old
|
表 40. Class F0 — Configuration File Error
Error Code | Condition Name |
F0000
| config_file_error
|
F0001
| lock_file_exists
|
表 41. Class HV — Foreign Data Wrapper Error (SQL/MED)
Error Code | Condition Name |
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
|
表 42. Class P0 — PL/pgSQL Error
Error Code | Condition Name |
P0000
| plpgsql_error
|
P0001
| raise_exception
|
P0002
| no_data_found
|
P0003
| too_many_rows
|
P0004
| assert_failure
|
表 43. Class XX — Internal Error
Error Code | Condition Name |
XX000
| internal_error
|
XX001
| data_corrupted
|
XX002
| index_corrupted
|