当前位置: 首页 > Database, postgresql > 正文

postgresql 错误消息和具体格式含义

postgresql使用ErrorResponse报文向前端发送错误信息,具体消息格式如下:

    Byte1('E')

        标识消息是一条错误。

    Int32

        以字节记的消息内容的长度,包括长度本身。

消息体由一个或多个标识出来的字段组成,后面跟着一个字节零作为终止符。
字段可以以任何顺序出现。对于每个字段都有下面的东西:

    Byte1

        一个标识字段类型的代码;如果为零,这就是消息终止符并且不会跟着
        有字串。目前定义的字段类型在 Section 43.5 列出。 因为将来可能
        增加更多的字段类型,所以前端应该不声不响地忽略不认识类型的字段。

    String

        字段值。

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

S

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

C

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

M

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

D

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

H

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

P

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

p

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

q

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

W

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

F

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

L

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

R

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

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

    分享到:

本文固定链接: http://klwang.info/postgresql-error-message-format-and-meaning/ | 数据库|Linux|软件开发

该日志由 klwang 于2014年01月17日发表在 Database, postgresql 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: postgresql 错误消息和具体格式含义 | 数据库|Linux|软件开发
关键字: ,

postgresql 错误消息和具体格式含义:等您坐沙发呢!

发表评论

*
快捷键:Ctrl+Enter