选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档 / SQL 状态码 / Class 0Z 诊断异常

0Z000 diagnostics_exception

ERROR 仅定义 参考 未实测

类别
Class 0Z 诊断异常
严重等级
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 资料。

来源

证据

断言

每条断言都写明了是怎么核实的,以及它不覆盖什么。这一层是核验时留下的原始英文记录,照原样呈现,未经翻译。

  • 0Z000 is diagnostics_exception in SQLSTATE Class 0Z.

    核实方式Read the fixed errcodes definition row, severity, and macro.

    来源src/backend/utils/errcodes.txt

  • No resolved 0Z000 report group was found in the locked PostgreSQL 18.6 core/contrib call scan.

    核实方式Compare resolved report groups with the fixed macro mapping.

    不覆盖The scan does not cover external wrappers, drivers, extensions, remote systems, or user code; absence from this scan is not an absolute absence claim.

    来源raw/calls/REL_18_6.jsonl · src/backend/utils/errcodes.txt

  • 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.

    核实方式Compare canonical release-definition facts with the available history boundary.

    不覆盖Definition presence is not an emitting-path observation.

    来源src/backend/utils/errcodes.txt

同类 SQL 状态码

状态码 条件名 宏名称 严重等级 版本
Class 0Z 诊断异常 Diagnostics Exception 2 个
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
在异常处理器外访问堆叠诊断状态。 活跃