Beispiel: Ermitteln, welche Datasets in einer Geodatabase versioniert sind

Mit einer Abfrage der Spalte "Definition" der Tabelle "GDB_Items" (oder GDB_Items_vw_view in Oracle) wird eine Liste der Feature-Classes zurückgegeben, deren Wert für die Versionierung auf "True" (oder, je nach Datenbanktyp, auf 1) festgelegt ist.

Wie in Kurzer Überblick über die Verwendung von SQL bei ArcSDE-Geodatabases beschrieben, müssen Sie zur Bearbeitung versionierter Daten mit SQL Multiversioned Views erstellen. Aus diesem Grund ist es sinnvoll zu ermitteln, welche Feature-Classes in einer Geodatabase versioniert sind, sodass Sie wissen, ob Sie Multiversioned Views einer Feature-Class erstellen müssen, um diese mit SQL bearbeiten zu können.

Mit den folgenden Beispielabfragen wird eine Liste aller versionierten Feature-Classes in der Geodatabase zurückgegeben, für die die Anweisung ausgeführt wurde.

HinweisHinweis:

Nicht alle mit diesen Abfragen zurückgegebenen Feature-Classes lassen sich mit SQL bearbeiten, selbst wenn Sie hierfür eine Multiversioned View verwenden. Weitere Informationen finden Sie unter Welcher Datentyp kann mit SQL bearbeitet werden?.

Achten Sie darauf, dass Sie mit der richtigen Datenbank verbunden sind, bevor Sie diese Abfrage durchführen.

--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