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.

RemarqueRemarque :

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;

7/10/2012