Exemple : recherche de la version de géodatabase à l'aide de SQL

Vous pouvez extraire les valeurs de numéro de version à partir d'un document XML spécifique à l'aide d'une expression XPath afin de connaître la version de la géodatabase.

Les numéros de version sont stockés en fonction du type de mise à jour : majeure, mineure ou solution de bogue. Une version majeure correspond à une évolution majeure de la géodatabase. ArcGIS 8 était la première version qui comprenait la fonctionnalité de géodatabase ArcGIS ; par conséquent, ArcGIS 8 correspond à la version majeure 1, ArcGIS 9 correspond à la version majeure 2 et ArcGIS 10, à la version majeure 3.

Une version mineure est représentée par le nombre après le point (.) dans le numéro de version ArcGIS. Par exemple, le numéro de version mineure pour 9.3 était 3.

La version de type solution de bogue n'est identifiée à l'aide d'un chiffre que si vous avez installé un service pack, un patch ou un correctif qui a modifié la structure de la géodatabase. En général, de tels modifications sont évitées dans les services packs, les patchs et les correctifs et donc la version de la solution de bogue est habituellement 0.

Les requêtes suivantes extraient les numéros de version majeure, mineure et de solution de bogue d'une géodatabase :

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

2/28/2012