错误码
AnalyticDB PostgreSQL版服务器发出的所有消息都赋予了五个字符的错误代码, 这些代码遵循SQL的 "SQLSTATE" 代码的习惯。本文中列出了PostgreSQL 8.1定义的所有错误代码。
| 错误码 | 含义 | 
|---|---|
| 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语句尚未结束(SQL STATEMENT NOT YET COMPLETE) | 
| 08 类:连接异常 | |
| 08000 | 连接异常(CONNECTION EXCEPTION) | 
| 08003 | 连接不存在(CONNECTION DOES NOT EXIST) | 
| 08006 | 连接失败(CONNECTION FAILURE) | 
| 08001 | SQL客户端不能建立SQL连接(SQLCLIENT UNABLE TO ESTABLISH SQLCONNECTION) | 
| 08004 | SQL服务器拒绝建立SQL连接(SQLSERVER REJECTED ESTABLISHMENT OF SQLCONNECTION) | 
| 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) | 
| 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) | 
| 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值(NULL VALUE NOT ALLOWED) | 
| 22002 | NULL值不能做指示器参数(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 | 未结束的C字串(UNTERMINATED C STRING) | 
| 2200F | 零长度的字符串(ZERO LENGTH CHARACTER STRING) | 
| 22P01 | 浮点异常(FLOATING POINT EXCEPTION) | 
| 22P02 | 非法文本表现形式(INVALID TEXT REPRESENTATION) | 
| 22P03 | 非法二进制表现形式(INVALID BINARY REPRESENTATION) | 
| 22P04 | 错误的COPY格式(BAD COPY FILE FORMAT) | 
| 22P05 | 不可翻译字符(UNTRANSLATABLE CHARACTER) | 
| 23 类:违反完整性约束 | |
| 23000 | 违反完整性约束(INTEGRITY CONSTRAINT VIOLATION) | 
| 23001 | 违反限制(RESTRICT VIOLATION) | 
| 23502 | 违反非空(NOT NULL VIOLATION) | 
| 23503 | 违反外键约束(FOREIGN KEY VIOLATION) | 
| 23505 | 违反唯一约束(UNIQUE VIOLATION) | 
| 23514 | 违反检查(CHECK VIOLATION) | 
| 24 类:非法游标状态 | |
| 24000 | 非法游标状态(INVALID CURSOR STATE) | 
| 25 类:非法事务状态 | |
| 25000 | 非法事务状态(INVALID TRANSACTION STATE) | 
| 25001 | 活跃的SQL状态(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 | 分支事务没有活跃的SQL事务(NO ACTIVE SQL TRANSACTION FOR BRANCH TRANSACTION) | 
| 25006 | 只读的SQL事务(READ ONLY SQL TRANSACTION) | 
| 25007 | 不支持混和的模式和数据语句(SCHEMA AND DATA STATEMENT MIXING NOT SUPPORTED) | 
| 25P01 | 没有活跃的SQL事务(NO ACTIVE SQL TRANSACTION) | 
| 25P02 | 在失败的SQL事务中(IN FAILED SQL TRANSACTION) | 
| 26 类:非法SQL语句名 | |
| 26000 | 非法SQL语句名(INVALID SQL STATEMENT NAME) | 
| 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过程异常(SQL ROUTINE EXCEPTION) | 
| 2F005 | 执行的函数没有返回语句(FUNCTION EXECUTED NO RETURN STATEMENT) | 
| 2F002 | 不允许修改SQL数据(MODIFYING SQL DATA NOT PERMITTED) | 
| 2F003 | 企图使用禁止的SQL语句(PROHIBITED SQL STATEMENT ATTEMPTED) | 
| 2F004 | 不允许读取SQL数据(READING SQL DATA NOT PERMITTED) | 
| 34 类:非法游标名 | |
| 34000 | 非法游标名(INVALID CURSOR NAME) | 
| 38 类:外部过程异常 | |
| 38000 | 外部过程异常(EXTERNAL ROUTINE EXCEPTION) | 
| 38001 | 不允许包含的SQL(CONTAINING SQL NOT PERMITTED) | 
| 38002 | 不允许修改SQL数据(MODIFYING SQL DATA NOT PERMITTED) | 
| 38003 | 企图使用禁止的SQL语句(PROHIBITED SQL STATEMENT ATTEMPTED) | 
| 38004 | 不允许读取SQL数据(READING SQL DATA NOT PERMITTED) | 
| 39 类:外部过程调用异常 | |
| 39000 | 外部过程调用异常(EXTERNAL ROUTINE INVOCATION EXCEPTION) | 
| 39001 | 返回了非法的SQLSTATE(INVALID SQLSTATE RETURNED) | 
| 39004 | 不允许空值(NULL VALUE NOT ALLOWED) | 
| 39P01 | 违反触发器协议(TRIGGER PROTOCOL VIOLATED) | 
| 39P02 | 违反SRF协议(SRF PROTOCOL VIOLATED) | 
| 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) | 
| 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 选项 | |
| 44000 | 违反 WITH CHECK 选项(WITH CHECK OPTION VIOLATION) | 
| 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 类:系统错误(PostgreSQL 自己内部的错误) | |
| 58030 | IO错误(IO ERROR) | 
| 58P01 | 未定义的文件(UNDEFINED FILE) | 
| 58P02 | 重复的文件(DUPLICATE FILE) | 
| F0 类:配置文件错误 | |
| F0000 | 配置文件错误(CONFIG FILE ERROR) | 
| F0001 | 锁文件存在(LOCK FILE EXISTS) | 
| P0 类:PL/PGSQL 错误 | |
| P0000 | PL/PGSQL 错误(PLPGSQL ERROR) | 
| P0001 | 抛出异常(RAISE EXCEPTION) | 
| XX 类:内部错误 | |
| XX000 | 内部错误(INTERNAL ERROR) | 
| XX001 | 数据损坏(DATA CORRUPTED) | 
| XX002 | 索引损坏(INDEX CORRUPTED) |