对要素的join已经用arcpy做过了,但是换成了table不成功,如果直接用物理路径下的table使用Addjoin函数报错数据不支持,如果创建一个tableview又提示没有OIDS,请问该怎么办?
目前主要有2个问题:
一是我将表从mdb文件中通过tabletodbase转出,然后用maketableview创建试视图,再用addjoin结果是空的?
二是我将addjoin的结果使用tabletotable再转进mdb文件时提示在数据库中创建table失败?
针对您的第一个问题,使用arcpy进行table之间的join需要先创建一个table view,而table view需要具备唯一标识符 OIDs。如果您的表中没有OIDS,可以通过arcpy添加一个字段作为唯一标识符,例如:
arcpy.AddField_management("table_name", "OID", "LONG")
arcpy.CalculateField_management("table_name", "OID", "!ObjectID!", "PYTHON")
其中"table_name"是您要创建唯一标识符的表的名称,"ObjectID"是该表默认存在的唯一标识符字段名。
关于您的第二个问题,可能原因是您将结果表保存到了已存在的数据库中并使用同名的表名创建了一个新的表。尝试使用不同的表名或在创建表时将其保存在一个新的数据库中。可以尝试将结果表先保存在本地,再使用arcpy导入到您需要的数据库中,例如:
arcpy.TableToTable_conversion("result_table_name", "output.mdb", "new_table_name")
其中"result_table_name"是您要导出的结果表的名称,"output.mdb"是你要导入到的目标mdb文件,"new_table_name"为导入后在mdb中新建的表名。