Пример: Определение версии базы геоданных с помощью запроса 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;
5/25/2014