Lecture de données versionnées dans Oracle à l'aide de vues multi-versionnées
Vous pouvez exécuter des instructions SELECT SQL sur des vues multi-versionnées pour accéder aux données versionnées.
Les vues multi-versionnées accèdent automatiquement à la version DEFAULT. Avant d'émettre des requêtes sur la vue, vous devez vérifier que vous allez interroger la version appropriée.
Pour accéder à une version spécifique autre que l'état actuel de la version DEFAULT, exécutez la procédure stockée ArcSDE 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. Elle peut être exécutée directement à partir d'un client SQL. La syntaxe de la procédure stockée pour définir la version courante est la suivante :
EXEC sde.version_util.set_current_version('<version_name>')
Le cas échéant, cette procédure peut être rappelée pour modifier d'autres versions. Elle peut être appelée chaque fois que l'espace de travail est actualisé pour renvoyer l'état courant de la table versionnée à l'application d'appel.
Les vues multi-versionnées ne doivent pas être utilisées pour accéder ou modifier des entités complexes, telles que des entités qui participent aux réseaux géométriques, aux topologies, aux MNT, aux ateliers cadastraux, aux jeux de données réseau ou aux relations ou qui ont un comportement de géodatabase spécifique. Vous devez utiliser ArcGIS pour afficher et modifier ces types d'entités.
-
Dans l'invite de commande MS-DOS (Windows) ou shell (UNIX ou Linux), exécutez l'utilitaire sdetable pour créer une vue multi-versionnée.
sdetable –o create_mv_view –T code_mv –t code_enf –i sde:oracle11g –u sarja –p not4U@orasvc
-
Dans une invite SQL, exécutez l'utilitaire version_util.set_current_version pour définir la version que vous souhaitez mettre à jour.
EXEC sde.version_util.set_current_version('version2')
-
Exécutez une instruction SELECT sur la vue multi-versionnée pour lire les données versionnées de la géodatabase.
SELECT violationID,codenum,propowner,insp_date FROM code_mv WHERE zip = '99999';