操作方法

错误:无法创建新要素。 未找到属性列。 错误:“oid”列不存在

Last Published: August 1, 2025

描述

尝试在 PostgreSQL 12.x 或者企业级地理数据库 10.8.1 或更高版本中创建和/或插入新要素时,将返回以下错误:

Failed to create new feature(s). Attribute column not found. Error: column "oid" does not exist

Image_2023-07-24_11-28-04.png

原因

在以下情形下会发生这种情况:

  • 使用 ArcGIS Desktop 10.8.0/ArcGIS Pro 2.5 在 PostgreSQL 11 企业级地理数据库 10.8.1 版本(或更高版本)中创建新要素类,
  • 使用建议工作流将 PostgreSQL 升级至 12 版本,以及
  • 尝试使用 ArcGIS Desktop 10.8.1/ArcGIS Pro 2.6 或更高版本将要素插入到要素类中。

PostgreSQL 12 的一个显著变化是移除了内部 OID 列的特殊行为。 无法再使用 WITH OIDS 子句创建表。 由此迫使 Esri 对 get_id 函数进行更改,当地理数据库升级至 10.8.1 时会更新该函数。 这也是 ArcGIS 10.8.0 或更低版本不支持 PostgreSQL 12 的部分原因。

PostgreSQL 12 仅在 ArcGIS 10.8.1/ArcGIS Pro 2.6 及更高版本中受支持,将数据库升级至 PostgreSQL 12 后,将不支持使用 ArcGIS Desktop 10.8.0/ArcGIS Pro 2.5 或更低版本创建和/或编辑数据。但是,在这种情况下,虽然数据是在 PostgreSQL 版本仍为 11 时通过 ArcGIS Desktop 10.8.0 或 ArcGIS Pro 2.5(均为兼容版本)创建的,但是正在使用 ArcGIS Desktop 10.8.1/ArcGIS Pro 2.6 对数据进行编辑。

解决方案或解决方法

必须更新使用 ArcGIS Desktop 10.8.0/ArcGIS Pro 2.5 创建的数据集所需的 get_id 函数。 可以通过两种方法实现此目的:将地理数据库升级至较新版本,或者,如果无法升级地理数据库,请使用以下工作流强制再次执行地理数据库的升级:

  1. 创建地理数据库的备份。
  2. PgAdmin 中,手动更新 sde.version 地理数据库资料档案库表:
    • bugfix 列设置为 0。
    • description 设置为“10.8.0.2.5 Geodatabase”

Image_2023-07-24_12-05-28.png

  1. 在 ArcGIS Desktop 10.8.1/ArcGIS Pro 2.6 或更高版本中,在数据库属性中(以 sde 用户身份连接时),升级状态现在将地理数据库版本标示为 10.8.0.2.5,并且启用了运行升级的选项,如下图所示。

Image_2023-07-24_12-24-08.png

  1. 单击运行升级以升级地理数据库。

Image_2023-07-24_12-41-18.png

现在,从客户端应用程序和 sde.version 地理数据库资料档案库表中,升级状态应再次显示为 10.8.1,如下图所示。

Image_2023-07-24_12-42-42.png

  1. 确认可以将新要素插入到这些要素类中,而不会出现任何错误。

文章 ID: 000032170

获得人工智能支持

使用 Esri Support AI Chatbot 快速解决您的问题。

立即开始聊天

相关信息

发现关于本主题的更多内容

获取来自 ArcGIS 专家的帮助

联系技术支持部门

立即开始聊天

转至下载选项