问题

问题:地理数据库升级失败,并显示“无法更新服务器表和存储过程。 错误 (-238)”

Last Published: April 28, 2021

描述

注: 本文仅适用于 ArcGIS 10.0 版本。 更高版本的 ArcGIS 可能包含不同的功能,对于菜单、命令和地理处理工具,可能具有不同的名称和位置。
注: ArcSDE 软件(包括应用程序服务器、命令工具以及带有 C 和 Java API 的 SDK)在 ArcGIS 10.2.2 中已弃用,不再进行分发。

地理数据库升级至 10 或更高版本失败,并显示以下错误消息:

错误: 错误(校验数据集):无法更新服务器表和存储过程。 错误 (-238)

sde_setup.log 将显示以下详细信息:

[<时间戳>] 错误:DBMS 视图存在 (-238)。 无法将表转换为 DBS。 错误:-238 [<时间戳>] SDE 版本升级未完成 (-238)。 [<时间戳>] 安装/升级 ArcSDE 出错,错误 = -238

原因

已启用存档的要素类的地理数据库多版本化视图的物理数据库视图丢失。 导致此问题最可能的原因包括:

  • 用户使用 SQL 命令无意中删除该了视图
  • 在数据库迁移过程中,该视图丢失

解决方案或解决方法

此问题的解决方案是标识并删除地理数据库方案中启用存档的要素类的已分离多版本化视图条目,如下所示:

  1. 以地理数据库管理员用户身份执行以下 SQL 语句,以获取启用存档的要素类多版本化视图条目的列表。
select owner, table_name, imv_view_name from table_registry where upper(table_name) || '_H' in (select upper(table_name) from table_registry where Upper(table_name) like '%_H') and upper(Imv_view_name) = upper(table_name) || '_MV'
注: 对于 Microsoft SQL Server,请使用以下 SQL 语句:
select owner, imv_view_name from sde_table_registry where upper(table_name) || '_H' in (select upper(table_name) from sde_table_registry where Upper(table_name) like '%_H') and upper(Imv_view_name) = upper(table_name) || '_MV'
  1. 检查列出的地理数据库多版本化视图的数据库视图是否存在并标识已分离的条目。
  2. 使用以下命令删除已分离的多版本化视图条目:
sdetable -o delete_mv_view -t <table_name>
  1. 重新运行地理数据库升级。
  2. 如有必要,请重新创建删除的多版本化视图。

文章 ID:000011277

从 ArcGIS 专家处获得帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项

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