VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

PQresultErrorField

功能描述

返回一个独立的错误报告字段。

接口原型

char *PQresultErrorField(const PGresult *res, int fieldcode);

参数说明

参数名 参数说明
res 执行命令后获取的结果指针。
fieldcode 错误字段标识符。

错误字段标识符可以是如下内容:

fieldcode 说明
PG_DIAG_SEVERITY 严重程度,这个字段的内容是ERROR,FATAL或者PANIC (在错误消息里),或者WARNING,NOTICE,DEBUG, INFO或LOG(在通知消息里),或者是这些东西的一个本地化翻译。总是出现。
PG_DIAG_SQLSTATE 这个错误的SQLSTATE代码。SQLSTATE代码表示所发生的错误的类型; 可以由前端应用用于对特定的数据库错误执行特定的操作(比如错误处理)。 可能的SQLSTATE代码的列表,请查看附录 A。 这个字段是不能区域化的,并且总是出现。
PG_DIAG_MESSAGE_PRIMARY 主要的人类可读错误的信息(通常一行)。总是出现。
PG_DIAG_MESSAGE_DETAIL 细节:一个可选的从属错误消息,里面有更多有关该问题的细节。可能有多行。
PG_DIAG_MESSAGE_HINT 提示:一个可选的有关如何处理该问题的建议。它和细节的区别是它提供了建议 (可能不太合适)而不光是事实。可能有好几行。
PG_DIAG_STATEMENT_POSITION 一个包含十进制整数的字串,表明错误游标的位置,作为一个索引指向最初的语句字符串。 第一个字符的索引是 1,并且这个位置是用字符计,而不是用字节计。
PG_DIAG_INTERNAL_POSITION 这个和PG_DIAG_STATEMENT_POSITION字段定义是一样的, 区别是它在游标位置指向内部生成的命令时使用,而不是客户端提交的命令。如果出现了这个字段, 那么PG_DIAG_INTERNAL_QUERY字段也总是出现。
PG_DIAG_INTERNAL_QUERY 一个失败的内部生成的命令的文本。比如,这个可能是一个 PL/pgSQL 函数发出的 SQL 查询。
PG_DIAG_CONTEXT 一个指示器,表明错误发生的环境。目前这个包括活跃的过程语言函数和内部生成的查询的调用堆栈跟踪。 跟踪是每行一条,最近的在上面。
PG_DIAG_SCHEMA_NAME 如果错误与特定的数据库对象相关,那么是包含该对象的模式名(如果有)。
PG_DIAG_TABLE_NAME 如果错误与特定的表相关,那么是该表的名字。(参考模式名字段获取表的模式的名字)
PG_DIAG_COLUMN_NAME 如果错误与特定的表字段相关,那么是该字段的名字。(参考模式和表名字段识别该表)
PG_DIAG_DATATYPE_NAME 如果错误与特定的数据类型相关,那么是该数据类型的名字。(参考模式名字段获取数据类型的模式的名字)
PG_DIAG_CONSTRAINT_NAME 如果错误与特定的约束相关,那么是该约束的名字。参考上面列出的字段获取相关的表或域。 (为了这个目的,索引被看做是约束,即使它们是用约束语法创建的)
PG_DIAG_SOURCE_FILE 报告错误的源代码所在的文件名。
PG_DIAG_SOURCE_LINE 报告错误的源代码所在的行号。
PG_DIAG_SOURCE_FUNCTION 报告错误的源代码函数的名字。

返回值

返回一个独立的错误报告字段,若PGresult不是错误或者警告结果或者不包括指定的字段, 那么返回NULL。

其他

调用者不应该直接释放返回结果。 在相关联的PGresult句柄传递给PQclear之后,它将被自动释放。