Vertica 错误消息

欢迎使用《Vertica 错误代码指南》。本指南主要面向需要了解 Vertica 错误代码与 ODBC 和 JDBC 驱动程序返回的错误状态之间的关系的开发人员。

Vertica 报告错误的不同方式

Vertica 通过两种不同的机制报告警告和错误:SQLSTATE 和错误消息。SQLSTATE 旨在供客户端应用程序使用,例如通过 ODBC 或 JDBC 访问 Vertica 的应用程序。错误消息是向交互用户(例如,通过 vsql 连接到 Vertica 的用户)显示的且会写入错误日志。

关于 SQLSTATE

Vertica 会使用由五个字符组成的 SQLSTATE 值向客户端应用程序报告它执行的每个语句是成功还是失败。其中许多值是由 SQL 标准定义的。其他值(由其值中的字母“V”标识)是特定于 Vertica 的。

SQLSTATE 值将分组到由 SQLSTATE 值中的前两个字符定义的类中。最后三个字符表示类中的特定条件。例如,SQLSTATE 类 22 表示所有数据错误。特定的 SQLSTATE 值 22012 表示除以零错误。SQLSTATE 类让无法识别特定 SQLSTATE 值的应用程序仍能对结果有大致了解。

警告和错误消息

Vertica 向交互用户显示或写入日志文件的每条错误和警告消息都分配有自己的错误代码编号。例如:

ERROR 3117: Division by zero
WARNING 4098: No projections found
ERROR 5617: Multiple WITH clauses not allowed

错误代码编号与 SQLSTATE 值无关。但是,错误和警告消息确实对应于特定的 SQLSTATE。与主要用于客户端应用程序的 SQLSTATE 相比,它们只是一种特殊的人类可读消息。

例如,Vertica 显示的所有警告消息都对应于 SQLSTATE 类 01。警告消息 "WARNING 3084: Design Workspace couldn't be dropped" 对应于 SQLSTATE 值 01000 ERRCODE_WARNING。

错误代码在 Vertica 各版本之间不会改变,但新版本中可能会增加或移除个别错误和警告消息。客户端应用程序不应依赖于从一个版本到下一个版本出现的特定错误代码。相反,它应使用 SQLSTATE 值来确定执行语句的结果。

有关 Vertica 定义的所有 SQLSTATE 类和值的列表,请参阅 SQL 状态列表。此表还会链接到与每个 SQLSTATE 值关联的错误或警告消息的列表。

本节内容