文档 / SQL 状态码 / Class 3B 保存点异常
3B000 savepoint_exception
保存点异常
ERROR 仅定义 参考 未实测
- 条件名
savepoint_exception- 宏名称
ERRCODE_SAVEPOINT_EXCEPTION- 启用版本
- 8.0
- 状态
- 活跃
版本覆盖
速览
3B000 是保存点异常类别的定义。固定核心调用扫描解析到的是更具体的缺失保存点路径 3B001,没有独立的通用 3B000 抛出点。诊断保存点失败时应使用服务器实际给出的具体 SQLSTATE;本页不编造类别级 RAISE 案例。
含义
3B000 是 3B 类的保存点异常条件。固定扫描解析到具体的缺失保存点码 3B001,没有独立的通用类码核心抛出点。因此服务器给出具体码时,应按 3B001 诊断找不到的保存点名称。
诊断
保存请求的保存点名称、是否存在显式事务,以及标记是否已释放或属于另一层嵌套。先读取服务器给出的具体 SQLSTATE:没有事务块时 ROLLBACK TO SAVEPOINT 是 25P01;显式块中缺少标记,在选定源码中由 3B001 表示。本页没有独立的自然运行案例。
处理
按具体错误选择边界:先开启事务再创建保存点;显式事务失败后先回滚,再建立新标记。不要伪造 3B000 的重试或使用 CASCADE;本页保持定义边界,缺失名称请看有源码依据的 3B001 路径。
可复现案例
在一次性实例上执行过的场景。
savepoint_exception_boundary PG 10 / 18
前置条件
- A runner-owned disposable target is provisioned.
触发
No generic 3B000 trigger is executed; the specific invalid-savepoint path is covered by 3B001.
处置
Use the specific savepoint condition and transaction boundary supplied by the server; do not manufacture a class-level RAISE.
清理
Drop the case schema with an owner connection.
版本
上面的锁定事实表记录项目快照范围内的目录存在情况。固定源码证据只覆盖下面声明的路径;不能仅从定义推导精确行为引入版本或更广的运行覆盖。
来源
证据
断言
每条断言都写明了是怎么核实的,以及它不覆盖什么。这一层是核验时留下的原始英文记录,照原样呈现,未经翻译。
-
3B000 is the savepoint_exception condition in Class 3B.
-
No distinct safe natural core runtime case for 3B000 was selected from the fixed call scan.
同类 SQL 状态码
| 状态码 | 条件名 | 宏名称 | 严重等级 | 版本 |
|---|---|---|---|---|
| 3B000 | savepoint_exception | ERRCODE_SAVEPOINT_EXCEPTION |
ERROR | 8.0 |
| 保存点异常的类别码,具体失败见 3B001。 | 活跃 | |||
| 3B001 | invalid_savepoint_specification | ERRCODE_S_E_INVALID_SPECIFICATION |
ERROR | 8.0 |
| 引用了当前事务中不存在的保存点。 | 活跃 | |||