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)