百科 / 错误代码 / Class 2F SQL例程异常
2F002 modifying_sql_data_not_permitted
ERROR 仅定义 参考 未实测
- 条件名
modifying_sql_data_not_permitted- 宏名称
ERRCODE_S_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED- 启用版本
- 7.4
- 状态
- 活跃
版本覆盖
速览
SQLSTATE 2F002 是 SQL Routine Exception 中表示例程声明的数据访问契约不允许修改 SQL 数据的标准成员。锁定的 PostgreSQL 18.6 定义包含该成员,但已解析的 core/contrib 调用扫描没有找到原生报告调用组。不能据此推断 PostgreSQL 的 VOLATILE、STABLE 或 IMMUTABLE 单独会映射到此 SQLSTATE。
含义
该条件描述某个实现执行例程数据访问契约时的限制。PostgreSQL 目录行只提供身份和宏,并未证明后端存在执行该限制的路径,也未指定某种例程语言。扩展、嵌入式 SQL 实现、驱动或远端服务器可能独立使用这个标准成员。
消息
由于有界扫描没有解析出原生报告调用,本页不采用未经确认的 PostgreSQL 固定消息变体。
诊断
先保留实际 SQLSTATE,并检查例程声明以及执行限制的所有者。确认尝试的语句是否修改数据、例程是否声明了限制性的数据访问特征,以及代码来自远端还是客户端实现。如果服务器返回其他代码,应按那个代码处理,不要把 2F002 当成 PostgreSQL 函数 volatility 错误的同义词。
处理
只有在实际产生者文档明确支持时,才修改例程的数据访问声明,或把修改数据的工作移到允许的例程边界。否则应修正调用方或远端契约。不要加入通用重试:数据修改被拒绝本身不能说明周围工作是否已提交。
版本
锁定目录将该条件的已知下界记为 PostgreSQL 7.4。事实块列出已发布快照;源码路径状态仅限于下方固定的 PostgreSQL 18.6 资料。
来源
- 上游源码 src/backend/utils/errcodes.txt 第 290 行
- 核验材料 raw/calls/REL_18_6.jsonl
证据
断言
每条断言都写明了是怎么核实的,以及它不覆盖什么。这一层是核验时留下的原始英文记录,照原样呈现,未经翻译。
-
2F002 is modifying_sql_data_not_permitted in SQLSTATE Class 2F.
-
No resolved 2F002 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.
同类错误代码
Class 2F SQL例程异常 下的其他成员。