# HV005 — fdw_column_name_not_found（找不到外部列名）

> PostgreSQL SQLSTATE HV005 表示包装器在远端或导入描述符中找不到外部列名。应检查元数据和名称映射。
---

# HV005 — fdw_column_name_not_found

## 速览 {#at-a-glance}

`HV005` 表示包装器无法在相关远端或导入描述符中找到外部列名。18.6 核心/contrib 扫描没有解析出直接报告组，具体系统和报文必须从实际部署的包装器确认。

<!-- BEGIN SQLSTATE FACTS: generated by scripts/generate.py; do not edit -->

| 字段 | 值 |
| --- | --- |
| SQLSTATE | `HV005` |
| 条件名 | `fdw_column_name_not_found` |
| 状态 | `有效` |
| 已知存在于 | `9.1.0` |
| 锁定快照 | `9.1.24, 9.2.24, 9.3.25, 9.4.26, 9.5.25, 9.6.24, 10.23, 11.22, 12.22, 13.23, 14.24, 15.19, 16.15, 17.11, 18.6, 19beta3` |
| 宏 | `ERRCODE_FDW_COLUMN_NAME_NOT_FOUND` |
| 别名 | `—` |

<!-- source facts: data/errcodes/HV005.json -->
<!-- END SQLSTATE FACTS -->

## 含义 {#meaning}

这是 FDW 边界的名称查找问题：导入或规划得到的列名不在包装器正在使用的描述符中。它不同于外部表缺失，也不同于本地 SQL 的 `42703`。

## 报文与诊断 {#messages}

没有固定核心报文。保留准确列名、大小写/引号上下文、外部表或远端关系、包装器版本以及导入、规划、扫描还是修改阶段。

## 诊断 {#diagnosis}

比较 `pg_attribute` 和包装器的远端元数据及名称转换规则；适用时重新做模式发现或检查导入映射。不能只凭本地目标列表推断远端列存在。

## 处理 {#response}

修正外部表列定义或包装器名称映射，并按文档刷新远端模式元数据。描述符一致后再重试；事务重试不能创建缺失列。

## 版本 {#versions}

目录从 9.1.0 观察到该码，延续到 18.6 与 19 Beta 3；pre-9 定义文件未观察到它，精确引入未知。

## 相关 {#related}

[`HV007`](../hv007/) 是名称无效；[`HV008`](../hv008/) 是序号无效；[`42703`](../42703/) 是本地未定义列。

## 来源 {#sources}

- [`errcodes.txt`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L460) — 定义，SHA-256 `6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba`。
- [`fdwapi.h`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/include/foreign/fdwapi.h#L24-L55) — 描述符回调边界。
- [结构化证据](../../data/evidence/hv005.json) — 有界扫描与来源边界。
