文档 / SQL 状态码 / Class 2F SQL例程异常
2F000 sql_routine_exception
ERROR 仅定义 参考 未实测
- 条件名
sql_routine_exception- 宏名称
ERRCODE_SQL_ROUTINE_EXCEPTION- 启用版本
- 7.4
- 状态
- 活跃
版本覆盖
速览
SQLSTATE 2F000 是 SQL Routine Exception 类别。锁定目录中存在该定义,但已解析的 PostgreSQL 18.6 core/contrib 调用扫描没有找到原生 2F000 报告调用组。因此该类别只能组织例程相关调查,不能据此指定某个函数声明、PL/pgSQL 语句或重试规则。
含义
2F000 是类别码。其成员 2F002 表示一种标准的例程数据访问限制,但成员路径必须单独确认。PostgreSQL 可能用其他 SQLSTATE 报告其他例程错误;应保留实际成员码、消息、routine 和服务器版本,不要用类别码替换。
消息
由于有界扫描没有解析出原生报告调用,本页不采用未经确认的 PostgreSQL 固定消息变体。
诊断
记录失败发生在创建、调用还是执行例程的阶段,并确认所有者是后端、扩展、ECPG、驱动还是远端服务器。按准确成员和消息查找固定实现。只有类别码的观察不足以判断原因是数据访问规则、参数错误还是例程主体。
处理
按照实际例程实现及成员 SQLSTATE 支持的处置修复。如果条件来自远端或客户端层,应修正该所有者的声明或调用契约。在不知道执行是否开始或完成前,不要自动重试例程类别。
版本
锁定目录将该条件的已知下界记为 PostgreSQL 7.4。事实块列出已发布快照;源码路径状态仅限于下方固定的 PostgreSQL 18.6 资料。
来源
- 上游源码 src/backend/utils/errcodes.txt 第 288 行
- 核验材料 raw/calls/REL_18_6.jsonl
证据
断言
每条断言都写明了是怎么核实的,以及它不覆盖什么。这一层是核验时留下的原始英文记录,照原样呈现,未经翻译。
-
2F000 is sql_routine_exception in SQLSTATE Class 2F.
-
No resolved 2F000 report group was found in the locked PostgreSQL 18.6 core/contrib call scan.
-
The locked release definitions establish catalogue presence from the known 7.4 boundary; they do not establish a precise introducing release or runtime use.
同类 SQL 状态码
| 状态码 | 条件名 | 宏名称 | 严重等级 | 版本 |
|---|---|---|---|---|
| 2F000 | sql_routine_exception | ERRCODE_SQL_ROUTINE_EXCEPTION |
ERROR | 7.4 |
| SQL 例程异常的类别码,需按具体子码诊断。 | 活跃 | |||
| 2F002 | modifying_sql_data_not_permitted | ERRCODE_S_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED |
ERROR | 7.4 |
| 例程的数据访问契约不允许修改 SQL 数据。 | 活跃 | |||
| 2F003 | prohibited_sql_statement_attempted | ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED |
ERROR | 7.4 |
| 例程中尝试执行被禁止的 SQL 语句,见于 dblink。 | 活跃 | |||
| 2F004 | reading_sql_data_not_permitted | ERRCODE_S_R_E_READING_SQL_DATA_NOT_PERMITTED |
ERROR | 7.4 |
| 例程的数据访问契约不允许读取 SQL 数据。 | 活跃 | |||
| 2F005 | function_executed_no_return_statement | ERRCODE_S_R_E_FUNCTION_EXECUTED_NO_RETURN_STATEMENT |
ERROR | 7.4 |
| 函数执行结束时没有执行 RETURN 语句。 | 活跃 | |||