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