例:SQL を使用したジオデータベース リリースの検索

ジオデータベースのリリースを確認するために、特定の XML ドキュメントから XPath 式を使ってリリース番号の値を抽出することができます。

リリース番号は、メジャー、マイナー、バグ フィックスの各バージョンとして格納されています。メジャー バージョンは、ジオデータベースのメジャー リリースに対応しています。ArcGIS 8 は、ArcGIS ジオデータベース機能を含む最初のリリースであるため、ArcGIS 8 はメジャー バージョン 1 です。ArcGIS 9 はメジャー バージョン 2、ArcGIS 10 はメジャー バージョン 3 です。

マイナー バージョンは、ArcGIS リリースのドット記号(.)の右にある番号で指定されます。たとえば、9.3 のマイナー バージョン番号は 3 です。

バグ フィックス バージョンは、サービス パック、パッチ、ホット フィックスをインストールしたときにジオデータベース スキーマが変化する場合にのみ増加します。一般的に、サービス パック、パッチ、ホット フィックス内でこのような変更はあまり行われないため、バグ フィックス バージョンは通常 0 です。

次のクエリは、ジオデータベースのメジャー、マイナー、バグ フィックスの各バージョン番号を取得しています。

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

7/10/2012