Usted no está buscando la automatización de la tabla se unen tanto como registro de mesas automatización.
No es necesario utilizar sdetable
para registrar tablas con ArcSDE porque ArcGIS soporta una operación completa de "Registro con Geodatabase" (que hace mucho más de lo que hacía la utilidad de línea de comandos).
Por ejemplo, aquí tenemos una conexión abierta:
Un clic con el botón derecho del ratón y la navegación a través de "Gestionar" lleva a "Registrar con Geodatabase"
(Tenga en cuenta que sólo puede registrarse como propietario de la mesa)
El registro requiere una nueva columna objectid, por lo que puede haber un aviso:
aunque si ya tiene una columna "ObjectID" ( INTEGER NOT NULL
), que es la mejor opción para evitar la fragmentación de la tabla, puede que aparezca un mensaje de confirmación:
Y luego se registra la mesa:
La única limitación efectiva al registro de geodatabases se destaca en la documentación --
Nota: Dado que ArcGIS no puede añadir un campo ObjectID a una vista o actualizar los valores de un campo ObjectID existente en una vista, no puede registrar una vista con la geodatabase.
y es posible utilizar sdelayer -o register
al menos registrar las vistas espaciales en ArcSDE, lo que las eleva a la categoría de "clase de característica simple" (sin necesidad de Query Layer).
También es importante tener en cuenta que una vez que una tabla está registrada en ArcGIS, tiene una columna rowid establecida por SDE, que afecta a la capacidad de insertar filas fuera de ArcGIS, y no debe ser alterada o eliminada con herramientas SQL (a riesgo de corrupción de los metadatos de la geodatabase).
Este proceso también puede realizarse a través de ArcPy mediante Registro en Geodatabase como se describe al final del página de migración de línea de comandos :
""" Register third-party tables with the geodatabase """
import arcpy
import sys
def RegisterThirdPartyTables(in_tables):
"""
Register third-party tables with the geodatabase
in_tables -- semi-colon delimited string of tables
"""
try:
tables = in_tables.split(';')
for table in tables:
arcpy.RegisterWithGeodatabase_management(table)
except arcpy.ExecuteError:
print(arcpy.GetMessages(2))
if __name__ == "__main__":
RegisterThirdPartyTables(sys.argv[1])
Ahora esto: Hace veinte años, los shapefiles eran una maravilla, pero ya han pasado. Las capacidades de las geodatabases de archivos superan a las de los shapefiles en casi todos los aspectos. Las uniones entre fuentes de geometría basadas en archivos (.shp o .gdb) y bases de datos son muy ineficaces y deben evitarse en la medida de lo posible. A veces se necesita un poco de pensamiento poco convencional para trabajar dentro de los límites de los tipos nativos de Geometría/Geografía, pero normalmente hay una manera de obtener un rendimiento adecuado (y a menudo superior) en una unión a una base de datos (y con una geodatabase empresarial, siempre existe la posibilidad de recurrir al almacenamiento SDEBINARIO).