Ejemplo: Identificar qué datasets están versionados en una geodatabase
Es posible consultar la columna de definición de la tabla GDB_Items (o la vista GDB_Items_vw en Oracle) para generar una lista de clases de entidad que tiene el valor de versionado definido como True (o como 1, según el tipo de base de datos).
Tal como se menciona en Un recorrido rápido para utilizar SQL con geodatabases de ArcSDE, es necesario generar vistas multiversionadas para editar datos versionados con SQL. Por lo tanto, es recomendable identificar qué clases de entidad están versionadas en una geodatabase, para saber si debe generar vistas multiversionadas de una clase de entidad antes de editar con SQL.
Las consultas de ejemplo siguientes devuelven una lista de todas las clases de entidad versionadas en la geodatabase en las que se ejecutó la declaración.
No todas las clases de entidad devueltas por esta consulta se deben editar con SQL, incluso si se usan una vista multiversionada. Consulte Qué tipo de datos puede editarse con SQL para obtener más información.
Asegúrese de conectarse a la base de datos correcta antes de ejecutar esta consulta.
--Queries PostgreSQL --Returns a list of versioned datasets in the specified geodatabase SELECT name AS "Versioned feature class", FROM sde.gdb_items WHERE (xpath('//Versioned/text()', definition))[1]::text = 'true';
--Queries a dbo-schema geodatabase in SQL Server --Returns a list of versioned datasets in the specified geodatabase SELECT NAME AS "Versioned feature class" FROM dbo.GDB_ITEMS WHERE Definition.exist('(/*/Versioned)[1]') = 1 AND Definition.value('(/*/Versioned)[1]', 'nvarchar(4)') = 'true'
--Queries Oracle --Returns a list of versioned datasets in the specified geodatabase SELECT items.name AS Dataset, itemtypes.name AS Dataset_Type FROM sde.gdb_items_vw items, sde.gdb_itemtypes itemtypes WHERE items.definition LIKE '%Versioned>true%' AND items.type = itemtypes.uuid;