TableToTable_conversion和FeatureClassToFeatureClass_conversion在脚本中失败,但使用Postgres

时间:2018-06-05 22:00:19

标签: gis arcgis postgresql-9.5 arcpy

所有

我正在尝试将一些GIS数据从Oracle数据库复制到Postgres数据库中,这些数据库都托管在AWS中。我正在运行一个实例化服务器的python脚本,该服务器已经建立了与两个数据库的数据库连接,并且在目前为止进行的所有其他测试中都能正常工作。我特意尝试使用arcpy函数TableToTable_conversion和FeatureClassToFeatureClass_conversion来传输数据,因为其他方法已被证明太慢了。 (其他方法是CopyFeatures / CopyRows,附加到空shell,以及基于SQL的TRUNCATE / INSERT)正在使用的两个函数是我现在唯一关心的函数,所以我不是在寻找替代方法。如果我从python shell运行以下命令,它可以成功运行:

arcpy.TableToTable_conversion("TABLE1", r'C:\SDE_Connections\DB_CONNECT.sde', "TABLE1_COPY")

但如果我在代码中运行它,我会收到以下错误:

arcgisscripting.ExecuteError: ERROR 000210: Cannot create output C:\SDE_Connections\DB_CONNECT.sde\TABLE1_COPY

如果我用Oracle连接替换数据库连接,它也可以在脚本中运行。特别是当我尝试在失败的代码中使用postgres连接时。事先正确定义了工作区,我正在使用ArcGIS 10.5,Python 2.7。当postgres是输出的目标数据库时,是否有人知道一个错误阻止上述任何一个函数在python脚本中失败?同样,如果我将代码复制并粘贴到python shell中,它会成功。我很难过。

1 个答案:

答案 0 :(得分:0)

解决方案:在设置这些数据库的过程中,我一直认为它们是在云外部维护的生产数据库的快照和副本。事实证明并非一切都被复制了。具体而言,生产数据库具有未重新建立的arcpy环境配置关键字。正在测试的脚本的前一部分是将该配置关键字设置为不存在的值,从而将观察到的错误设置为该值。在脚本中将配置关键字重置为“DEFAULTS”解决了该问题。希望错误信息不是那么通用!