Exemple : Définition des jeux de données 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 renvoyer la liste des classes d'entités dont la valeur versionnée est définie sur True (ou sur 1, selon la base de données).
Comme l'indique la rubrique Présentation rapide de l'utilisation de SQL avec les géodatabases ArcSDE, vous devez créer des vues multi-versionnées pour mettre à jour des données versionnées avec SQL. Par conséquent, il serait utile de déterminer quelles classes d'entités sont versionnées dans une géodatabase, afin de savoir si vous devez créer des vues multi-versionnées d'une classe d'entités avant de procéder à la mise à jour avec SQL.
Les requêtes de l'exemple suivant renvoient la 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 requêtes ne doivent pas être mises à jour avec SQL, même lorsque vous utilisez une vue multi-versionnée. Reportez-vous à la rubrique Type de données pouvant être modifié avec SQL pour plus d'informations.
Veillez à vous connecter à la base de données correcte 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;