文档 / SQL 状态码 / Class 0Z 诊断异常
0Z000 diagnostics_exception
ERROR 仅定义 参考 未实测
- 条件名
diagnostics_exception- 宏名称
ERRCODE_DIAGNOSTICS_EXCEPTION- 启用版本
- 9.2
- 状态
- 活跃
版本覆盖
速览
SQLSTATE 0Z000 是 Diagnostics Exception 类别。在 PostgreSQL 固定源码中,具体的 PL/pgSQL 路径属于成员 0Z002;类别行本身不是独立的报告调用组。观察到 diagnostics 成员时可以用 0Z000 分类,但诊断必须保留成员码和对应消息。
含义
该类别覆盖访问诊断状态时产生的错误。pl_exec.c 中已确认的成员路径在 GET STACKED DIAGNOSTICS 或无参数 RAISE 位于活动异常处理器之外时报告 0Z002。这个成员证据只解释一条 PostgreSQL 路径,不能把所有 diagnostics API 失败都说成 0Z000 报告。
消息
由于有界扫描没有解析出原生报告调用,本页不采用未经确认的 PostgreSQL 固定消息变体。
诊断
先读取成员码和消息。对于 0Z002,检查语句是否处在拥有堆叠错误的 EXCEPTION 处理器内;普通函数控制流和处理器范围比类别名称更关键。如果是其他成员或产生者,就沿该组件的源码追踪,并保留其诊断字段。
处理
把依赖堆叠状态的 GET STACKED DIAGNOSTICS 和无参数 RAISE 放进对应的活动 PL/pgSQL 异常处理器。如果要在处理器外抛出新错误,应提供明确的条件/消息,而不是尝试复用堆叠状态。保留成员错误,不要因为它属于 0Z 类就自动重试失败例程。
版本
锁定目录将该条件的已知下界记为 PostgreSQL 9.2.0。事实块列出已发布快照;源码路径状态仅限于下方固定的 PostgreSQL 18.6 资料。
来源
- 上游源码 src/backend/utils/errcodes.txt 第 141 行
- 核验材料 raw/calls/REL_18_6.jsonl
证据
断言
每条断言都写明了是怎么核实的,以及它不覆盖什么。这一层是核验时留下的原始英文记录,照原样呈现,未经翻译。
-
0Z000 is diagnostics_exception in SQLSTATE Class 0Z.
-
No resolved 0Z000 report group was found in the locked PostgreSQL 18.6 core/contrib call scan.
-
The locked release definitions establish catalogue presence from the known 9.2.0 boundary; they do not establish a precise introducing release or runtime use.
同类 SQL 状态码
| 状态码 | 条件名 | 宏名称 | 严重等级 | 版本 |
|---|---|---|---|---|
| 0Z000 | diagnostics_exception | ERRCODE_DIAGNOSTICS_EXCEPTION |
ERROR | 9.2 |
| 诊断相关异常的类别,具体见成员码。 | 活跃 | |||
| 0Z002 | stacked_diagnostics_accessed_without_active_handler | ERRCODE_STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER |
ERROR | 9.2 |
| 在异常处理器外访问堆叠诊断状态。 | 活跃 | |||