错误
执行包含重新构建地址定位器函数的 Python 脚本将返回以下错误消息:
错误: 错误 000005:无法打开地址定位器 执行 (RebuildAddressLocator) 失败。
此问题可能由以下原因导致:
分离记录
在重新构建地址定位器之前,如果将新记录添加至数据库,则仍与原始地址定位器名称相关联的冲突过时记录将保留在 ArcGIS Server 服务所使用的资料档案库表中。 由于与新记录冲突,因此这些分离记录将阻止系统重新构建地址定位器。
注: 虽然可以使用不同的名称重新构建地址定位器,但是要使用原始名称重新构建地址定位器,请参阅有关移除分离记录的解决方案部分。
锁
当地址定位器上存在活动锁,由此阻止重新构建地址定位器时,将返回该错误。 由于其他服务仍在访问地理编码服务,因此存在活动锁。 有关锁工作原理的详细信息,请参阅 ArcMap:方案锁定。
32 位与 64 位
在 64 位命令行中执行重新构建地址定位器脚本将返回此错误,因为该脚本可能会调用 64 位环境不支持的工具或函数。 在某些情况下,虽然安装了 32 位 ArcMap,但某些 ArcMap 工具和程序仍需要在 64 位环境中运行。 有关详细信息,请参阅 ArcMap:后台地理处理(64 位)。
请按照与问题原因相对应的解决方案步骤找到解决方案。
移除分离记录
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>;
注: 以上列出的表是包含地址定位器记录的系统表。
停止服务
有关如何启动和停止服务的详细信息,请参阅 ArcGIS 帮助:启动和停止服务。
在 32 位环境中运行脚本
使用 32 位版本,而非 64 位版本的 Python 命令行界面执行脚本。 32 位版本可以在以下位置找到:
C:\Python27\ArcGIS10.x\python.exe
此外,如果在 ArcMap 中使用 Python 控制台执行脚本并且失败,请将 Windows 文件关联设置更改为在 32 位环境中运行 Python。 有关执行此操作的步骤,请参阅常见问题解答:为什么 Python 脚本在同时安装了 ArcGIS for Server 和 ArcGIS for Desktop 的计算机中会失败?
获取来自 ArcGIS 专家的帮助
下载 Esri 支持应用程序