Exemple : Déterminer quels jeux de données sont versionnés dans une géodatabase
Vous pouvez interroger la colonne de définition de la table GDB_Items (ou la vue GDB_Items_vw dans Oracle) pour obtenir une liste des classes d'entités dont la valeur versionnée est définie sur vrai (ou 1, selon la base de données).
Ainsi qu'il est mentionné dans Présentation rapide de l'utilisation de SQL avec des géodatabase d'entreprise, vous devez créer des vues versionnées pour mettre à jour des données versionnées à l'aide de SQL. Il est donc utile de déterminer quelles classes d'entités dans une géodatabase sont versionnées afin de savoir si vous devez créer des vues versionnées d'une classe d'entités avant de la mettre à jour à l'aide de SQL.
Les exemples de requête suivants renvoient une liste de toutes les classes d'entités versionnées dans la géodatabase sur laquelle l'instruction a été exécutée.
Toutes les classes d'entités renvoyées par ces interrogations ne doivent pas être mises à jour à l'aide de SQL, même en utilisant une vue versionnée. Reportez-vous à la rubrique Type de données pouvant être modifié avec SQL pour plus d'informations.
Veillez à vous connecter à la bonne base de données avant d'exécuter cette requête.
--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;