Beispiel: Suchen der Geodatabase-Version mit SQL

Sie können unter Verwendung eines XPath-Ausdrucks die Versionsnummernwerte eines bestimmten XML-Dokuments extrahieren, um die Version der Geodatabase zu ermitteln.

Versionsnummern werden als Haupt-, Neben- und Bug-Fix-Versionen gespeichert. Die Hauptversion entspricht der Hauptversion der Geodatabase. ArcGIS 8 war die erste Version, die die ArcGIS-Geodatabase-Funktionalität einschloss; daher entspricht ArcGIS 8 der Hauptversion 1. ArcGIS 9 entspricht Hauptversion 2, und ArcGIS 10 entspricht Hauptversion 3.

Die Nebenversion wird von der Zahl rechts vom Punkt (.) in der ArcGIS-Version angegeben. Die Nebenversionsnummer für 9.3 ist z. B. 3.

Die Bug-Fix-Version erhöht sich nur, wenn Sie Service Packs, Patches oder Hotfixes installiert haben, die zu Änderungen am Geodatabase-Schema geführt haben. Im Allgemeinen werden solche Änderungen in Service Packs, Patches und Hotfixes vermieden, deshalb ist die Bug-Fix-Version normalerweise 0.

Die folgenden Abfragen rufen die Versionsnummern für Haupt-, Neben- und Bug-Fix-Versionen einer Geodatabase ab:

-- Queries a dbo-schema geodatabase in SQL Server
-- Gets the geodatabase release from the workspace catalog item.

SELECT
  Definition.value('(/DEWorkspace/MajorVersion)[1]', 'smallint') AS "Major version",
  Definition.value('(/DEWorkspace/MinorVersion)[1]', 'smallint') AS "Minor version",
  Definition.value('(/DEWorkspace/BugfixVersion)[1]', 'smallint') AS "Bug fix version"
FROM
 dbo.gdb_items AS items INNER JOIN
  (SELECT UUID 
   FROM dbo.gdb_itemtypes
   WHERE Name = 'Workspace') AS itemtypes
  ON items.Type = itemtypes.UUID
-- Queries PostgreSQL
-- Gets the geodatabase release from the workspace catalog item.

SELECT
  (xpath('//MajorVersion/text()',definition))::text as "Major version",
  (xpath('//MinorVersion/text()',definition))::text as "Minor version",
  (xpath('//BugfixVersion/text()',definition))::text as "Bug fix version"
FROM
 sde.gdb_items AS items INNER JOIN
  (SELECT uuid 
   FROM sde.gdb_itemtypes
   WHERE name = 'Workspace') AS itemtypes
  ON items.type = itemtypes.uuid;
-- Queries Oracle
-- Gets the geodatabase release from the workspace catalog item.

SELECT
  EXTRACTVALUE(XMLType(Definition), '/DEWorkspace/MajorVersion') AS "Major version",
  EXTRACTVALUE(XMLType(Definition), '/DEWorkspace/MinorVersion') AS "Minor version",
  EXTRACTVALUE(XMLType(Definition), '/DEWorkspace/BugfixVersion') AS "Bug fix version"
FROM
 sde.gdb_items_vw items INNER JOIN
  (SELECT UUID 
   FROM sde.gdb_itemtypes
   WHERE Name = 'Workspace') itemtypes
  ON items.Type = itemtypes.UUID;

3/6/2012