43.5. 错误和通知消息字段

本节描述那些可能出现在 ErrorResponse 和 NoticeResponse 消息里的字段。 每个字段类型有一个单字节标识记号。请注意,任意给定的字段类型在每条信息里都应该最多出现一次。

S

严重性:该字段的内容是ERRORFATAL, 或者 PANIC(在一个错误消息里),或者 WARNINGNOTICEDEBUGINFOLOG (在一条通知消息里),或者是这些的某种本地化翻译的字串。总是会出现。

C

代码:错误的 SQLSTATE 代码(参阅 Appendix A)。 不能本地化。总是出现。

M

消息:人类可读的错误信息的主体。这些信息应该准确并且简洁(通常是一行)。总是出现。

D

细节:一个可选的从属错误信息,承载有关问题的更多错误消息。 可以是多行。

H

提示:一个可选的有关如何处理问题的建议。它和细节不同的地方是它提出了建议(可能并不合适)而不仅仅是事实。可以是多行。

P

位置:这个字段值是一个十进制 ASCII 整数,表示一个错误游标的位置, 它是一个指向原始查询字串的索引。第一个字符的索引是 1,位置是以字符计算而非字节计算的。

p

内部位置:这个域和 P 域定义相同,但是它用于游标的位置指向一个内部生成的命令, 而不是用于客户端提交的命令。这个字段出现的时候,总是会出现 q 字段。

q

内部查询:失效的内部生成的命令的文本。 比如,它可能是一个 PL/pgSQL 函数发出的 SQL 查询。

W

哪里:一个指示错误发生的环境的指示器。目前, 这个参数包含一个活跃的过程语言函数的调用堆栈的追溯和内部生成的查询。 这个追溯每条记录一行,最新的在最上面。

F

文件:所报告错误在源代码中的位置。

L

行:报告的错误所在的源代码的位置的行号。

R

过程:报告错误的过程在源代码中的名字。

客户端负责对显示信息进行格式化输出以符合需要; 特别是它应该根据需要断开长的行。在错误信息字段里出现的换行符应该当作一个分段的符号,而不是换行。