文档 / SQL 状态码 / Class 38 外部例程异常
38003 prohibited_sql_statement_attempted
ERROR 仅定义 参考 未实测
- 条件名
prohibited_sql_statement_attempted- 宏名称
ERRCODE_E_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED- 启用版本
- 7.4
- 状态
- 活跃
版本覆盖
速览
SQLSTATE 38003 是外部例程异常类别中“尝试执行被禁止 SQL 语句”的成员。该定义存在,但锁定的 PostgreSQL 18.6 core/contrib 扫描没有找到原生报告调用组;它与 2F003 不是同一个 SQLSTATE。
含义
外部例程类别指出标准上下文;在找到源码路径或消息前,具体被禁止的语句、例程语言和所有者仍未知。
消息
由于有界扫描没有解析出原生报告调用,本页不采用未经确认的 PostgreSQL 固定消息变体。
诊断
保留实际返回的类别/成员码并检查外部例程契约。不要把 dblink 或 postgres_fdw 的 2F003 消息套到 38003。
处理
按固定文档修复所有者的例程或调用契约;未确认 PostgreSQL 原生修复路径。
版本
锁定目录将该条件的已知下界记为 PostgreSQL 7.4;事实块列出已发布快照,源码路径状态仅限于下方固定的 PostgreSQL 18.6 资料。
来源
- 上游源码 src/backend/utils/errcodes.txt 第 303 行
- 核验材料 raw/calls/REL_18_6.jsonl
证据
断言
每条断言都写明了是怎么核实的,以及它不覆盖什么。这一层是核验时留下的原始英文记录,照原样呈现,未经翻译。
-
38003 is prohibited_sql_statement_attempted in SQLSTATE Class 38.
-
No resolved 38003 report group was found in the locked PostgreSQL 18.6 core/contrib call scan.
-
Locked release definitions establish catalogue presence from 7.4; they do not establish a precise introducing release or runtime use.
同类 SQL 状态码
| 状态码 | 条件名 | 宏名称 | 严重等级 | 版本 |
|---|---|---|---|---|
| 38000 | external_routine_exception | ERRCODE_EXTERNAL_ROUTINE_EXCEPTION |
ERROR | 7.4 |
| 外部例程异常的类别码,覆盖外部命令与 PL 处理器。 | 活跃 | |||
| 38001 | containing_sql_not_permitted | ERRCODE_E_R_E_CONTAINING_SQL_NOT_PERMITTED |
ERROR | 7.4 |
| 外部例程不允许包含 SQL 语句。 | 活跃 | |||
| 38002 | modifying_sql_data_not_permitted | ERRCODE_E_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED |
ERROR | 7.4 |
| 外部例程不允许修改 SQL 数据,区别于 2F002。 | 活跃 | |||
| 38003 | prohibited_sql_statement_attempted | ERRCODE_E_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED |
ERROR | 7.4 |
| 外部例程中尝试执行被禁止的 SQL 语句。 | 活跃 | |||
| 38004 | reading_sql_data_not_permitted | ERRCODE_E_R_E_READING_SQL_DATA_NOT_PERMITTED |
ERROR | 7.4 |
| 外部例程不允许读取 SQL 数据。 | 活跃 | |||