Vous pouvez exécuter des instructions SELECT SQL sur des vues versionnées pour accéder aux données versionnées.
Lire depuis la version Default
Deux options se présentent à vous lorsque vous exécutez des instructions SQL sur la version Default : vous pouvez lire le dernier état ou lire depuis un état de version que vous spécifiez.
Lire le dernier état de la version Default
Les vues versionnées accèdent automatiquement à l'état actuel de la version Default. Si vous exécutez des instructions SELECT sur une vue versionnée, elles accèdent à l’état actuel de la version Default au moment de l’exécution de l’instruction. Si d’autres utilisateurs intègrent des modifications dans la version Default (modifiant ainsi l’état auquel fait référence la version Default), vos requêtes suivantes voient le dernier état et leurs modifications.
Lire un état de version spécifique
Si vous souhaitez interroger un état spécifique de la version Default et que vous ne voulez pas que l'état change pendant les requêtes, exécutez l'utilitaire version_util.set_current_version. Cette procédure valide le nom de version fourni et définit l'état de la base de données correspondant en interne. Si vous exécutez version_util.set_current_version pour la version Default, les requêtes que vous exécutez sur la version Default pointeront toujours sur l'état auquel la version Default faisait référence lorsque vous avez exécuté l'utilitaire version_util.set_current_version.
L'utilitaire Version_util.set_current_version peut être exécuté directement d'un client SQL. La syntaxe est la suivante :
EXEC sde.version_util.set_current_version('<version_name>')
- Assurez-vous il y a une vue versionnée pour la table ou classe d'entités versionnée à laquelle vous souhaitez accéder.
À partir d'ArcGIS 10.1, les vues versionnées sont créées lorsque vous versionnez des données. Si vos données ont été inscrites comme versionnées avant la version 10.1, vous pouvez créer une vue versionnée en cliquant avec le bouton droit sur le jeu de données dans l'arborescence du Catalogue d'ArcMap, en pointant sur Gérer, puis en cliquant sur Activer l'accès à SQL.
- A une invite SQL, exécutez l'utilitaire version_util.set_current_version pour définir la version sur Default.
EXEC sde.version_util.set_current_version('DEFAULT')
- Exécutez une instruction SELECT sur la vue versionnée pour lire les données versionnées de la géodatabase.
Dans cet exemple, la vue versionnée est sightings_ev.
SELECT ID, SPECIES, REPORTER FROM SIGHTINGS_EV WHERE REPORTER = 'CHUCK';
Lire une version autre que Default
Vous pouvez exécuter l'utilitaire sde.version_util.set_current_version pour interroger une version autre que Default. Cet utilitaire valide le nom de version que vous spécifiez et définit l'état de version correspondant en interne. Les requêtes exécutées sur la version pointent toujours l'état auquel la version faisait référence lorsque vous avez exécuté sde.version_util.set_current_version.
Le cas échéant, cet utilitaire peut être rappelé pour modifier d'autres versions. Il peut être appelé chaque fois que l'espace de travail est actualisé pour renvoyer l'état courant de la table versionnée à l'application d'appel.
Les étapes suivantes vous indiquent comment exécuter version_util.set_current_version pour interroger une version spécifique autre que Default :
- Assurez-vous il y a une vue versionnée pour la table ou classe d'entités versionnée à laquelle vous souhaitez accéder.
Les vues versionnées sont créées lorsque vous inscrivez une table, une classe d’entités ou un jeu de classe d’entités comme versionné. Si la version de vos données est antérieure à ArcGIS 10.1, vous pouvez créer une vue versionnée en cliquant avec le bouton droit sur le jeu de données, en pointant sur Manage (Gérer), puis en cliquant sur Enable SQL Access (Activer l’accès à SQL).
- A une invite SQL, exécutez l'utilitaire version_util.set_current_version pour définir la version que vous souhaitez interroger.
Dans cet exemple, FIELD_INSPECTIONS est défini comme version à interroger dans la géodatabase sde principale. Si vous exécutez ceci sur une version dans une géodatabase de structure utilisateur, l'utilitaire est précédé du nom du propriétaire de la géodatabase.
EXEC sde.version_util.set_current_version('FIELD_INSPECTIONS')
- Exécutez une instruction SELECT sur la vue versionnée pour lire les données versionnées de la géodatabase.
Dans cet exemple, la vue versionnée est code_ev.
SELECT violationID,codenum,propowner,insp_date FROM code_ev WHERE zip = '99999';
Si vous devez revenir à une requête sur l'état actuel de la version Default, exécutez la procédure set_default.
CALL sde.version_util.set_default();