错误

错误:错误 000005:无法打开地址定位器

Last Published: April 28, 2021

错误消息

执行包含重新构建地址定位器函数的 Python 脚本将返回以下错误消息:

错误: 错误 000005:无法打开地址定位器 执行 (RebuildAddressLocator) 失败。
错误消息的图像

原因

此问题可能由以下原因导致:

分离记录

在重新构建地址定位器之前,如果将新记录添加至数据库,则仍与原始地址定位器名称相关联的冲突过时记录将保留在 ArcGIS Server 服务所使用的资料档案库表中。 由于与新记录冲突,因此这些分离记录将阻止系统重新构建地址定位器。

注: 虽然可以使用不同的名称重新构建地址定位器,但是要使用原始名称重新构建地址定位器,请参阅有关移除分离记录的解决方案部分。

当地址定位器上存在活动锁,由此阻止重新构建地址定位器时,将返回该错误。 由于其他服务仍在访问地理编码服务,因此存在活动锁。 有关锁工作原理的详细信息,请参阅 ArcMap:方案锁定

32 位与 64 位

在 64 位命令行中执行重新构建地址定位器脚本将返回此错误,因为该脚本可能会调用 64 位环境不支持的工具或函数。 在某些情况下,虽然安装了 32 位 ArcMap,但某些 ArcMap 工具和程序仍需要在 64 位环境中运行。 有关详细信息,请参阅 ArcMap:后台地理处理(64 位)

解决方案或解决方法

请按照与问题原因相对应的解决方案步骤找到解决方案。

移除分离记录

  1. 标识必须重新构建的地址定位器的名称。
  2. 创建服务器数据库的备份。
  3. 在数据库中运行以下查询以从 <locator_name>_lox、SDE_locators、SDE_metadata、SDE_table_registry、SDE_column_registry 和 GDB_items 系统表中移除分离记录:
DELETE FROM <locator_name>_lox WHERE name = <address_locator_name>; DELETE FROM SDE_locators WHERE name = <address_locator_name>; DELETE FROM SDE_metadata WHERE name = <address_locator_name>; DELETE FROM SDE_table_registry WHERE name = <address_locator_name>; DELETE FROM SDE_column_registry WHERE name = <address_locator_name>; DELETE FROM GDB_ITEMS WHERE name = <address_locator_name>;
注: 以上列出的表是包含地址定位器记录的系统表。
  1. 执行 Python 脚本以重新构建地址定位器。

停止服务

  1. 停止 ArcGIS Server 服务。
  2. 执行脚本以重新构建地址定位器。
  3. 启动服务。

有关如何启动和停止服务的详细信息,请参阅 ArcGIS 帮助:启动和停止服务

在 32 位环境中运行脚本

使用 32 位版本,而非 64 位版本的 Python 命令行界面执行脚本。 32 位版本可以在以下位置找到:

C:\Python27\ArcGIS10.x\python.exe

此外,如果在 ArcMap 中使用 Python 控制台执行脚本并且失败,请将 Windows 文件关联设置更改为在 32 位环境中运行 Python。 有关执行此操作的步骤,请参阅常见问题解答:为什么 Python 脚本在同时安装了 ArcGIS for Server 和 ArcGIS for Desktop 的计算机中会失败?

文章 ID: 000014439

接收通知并查找新问题或常见问题的解决方案

从我们全新的 AI 聊天机器人中获得简明答案和视频解决方案。

下载 Esri 支持应用程序

相关信息

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

获取来自 ArcGIS 专家的帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项