Suite

Comment définir une version ArcSDE spécifique pour les rapports tabulaires ?

Comment définir une version ArcSDE spécifique pour les rapports tabulaires ?


J'ai créé une vue multiversion dans Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production. Je peux accéder à une version spécifique à l'aide d'un script SQL dans SQL Developer. Cependant, en utilisant d'autres outils, je ne peux accéder qu'à DEFAULT.

Le script suivant fonctionne bien :

appelez sde.version_util.set_current_version('MY_VERSION'); sélectionnez * à partir de mv_my_view ;

Encapsuler cette logique dans une vue Oracle (quelque chose de similaire à la réponse de Jay Cummins à cette question serait une excellente solution, mais je ne vois pas comment passer un appel dans une vue).

Dans Crystal Reports, je peux ajouter SDE.VERSION_UTIL.SET_CURRENT_VERSION en tant que table, mais je ne peux pas l'utiliser pour définir la version. Si je spécifie une bonne version connue, j'obtiens une erreur du moteur de requête : « Impossible d'obtenir le message d'erreur du serveur ».

En revanche, si je précise une version inexistante (avec une faute de frappe par exemple), j'obtiens un 'HY000:[Oracle][ODBC][ORA]ORA-20126: Version x not found… ORA-06512'

Comment puis-je définir la version actuelle sur autre chose que DEFAULT à des fins de création de rapports tabulaires - soit dans une vue Oracle, soit à l'aide de Crystal Reports, soit à l'aide d'un autre outil ?


La clé est de créer une fonction qui renvoie un jeu de résultats qui peut être interrogé comme s'il s'agissait d'une table. Dans la fonction, incluez un appel àset_current_version(voir ligne 6 ci-dessous).

SQL> créer le type emp_obj est un objet (numéro empno, nom varchar2 (10)); 2/ Type créé. SQL> créer le type emp_tab est la table de emp_obj; 2/ Type créé. SQL> créer ou remplacer la fonction all_emps return emp_tab 2 vaut 3 l_emp_tab emp_tab := emp_tab(); 4 n entier := 0; 5 begin 6 sde.version_util.set_current_version('ALT_VERSION') 7 for r in (select empno, enname from emp) 8 loop 9 l_emp_tab.extend; 10 n := n + 1; 11 l_emp_tab(n) := emp_obj(r.empno, r.ename); 12 boucle d'extrémité; 13 return l_emp_tab; 14 fin; 15/ Fonction créée. SQL> créer ou remplacer la vue ALT_VER_VIEW en tant que sélection empno, nom de la table (all_emps); Voir ALT_VER_VIEW créé. SQL> sélectionnez * dans alt_ver_view ; EMPNO ENAME ---------- ---------- 7369 SMITH 7499 ALLEN 7521 WARD 7566 JONES 7654 MARTIN 7698 BLAKE 7782 CLARK 7788 SCOTT 7839 KING 7844 TURNER 7902 FORD 7934 MILLER

Voir la vidéo: A Complete Beginners Guide to ArcGIS Desktop Part 1