banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Fri 16 November 2012 13:48

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

[Oracle 10g Locator]Essaie de PL/SQL pour correctif. Pb Get_Dims()

Aloha

Lorsque j'exécute la requête

Code:

select  c.GEOMETRY.Get_Dims() FROM A_TRONCO c;

J'ai en retour pour chacun des enregistrements de ma table A_TRONCO le nombre de dimension des objets (2 ou 3 ou null si il y a un problème...).

Souhaitant construire un script PL/SQL à vocation de correction des informations de 3D présentes dans le champ descriptif de la géométrie de mes objets j'ai testé ceci :

Code:

Declare
  Cursor tableName IS
        SELECT table_name
        FROM user_tables
        WHERE table_name like 'A_TRONCO';     
  --       
  Type t_CurTyp IS Ref Cursor;
  crsData       t_CurTyp;
  dim    Varchar2(32676);
  l_sql         Varchar2(32676);
  --  
Begin
  FOR tabs IN tableName
  Loop
    l_sql := 'Select '|| tabs.table_name||'.GEOMETRY.Get_Dims()
               From '||tabs.table_name;
        Open crsData FOR l_sql ;
        Loop
       Fetch crsData INTO dim;
       Exit When crsData%NOTFOUND;
             dbms_output.put_line(dim);
        End loop; 
    Close crsData;    
  End loop;    
End;

Pour l'instant mon curseur ne s'occupe que d'une table, mais dans le futur, il y aura X tables.
J'espérais pouvoir parcourir chacune des tables, puis pour chacune, interroger les objets et renvoyer le nombre de dimension.
Ensuite j'aurai inscrit un test (si 2 alors, si 3 alors, si null alors).
Mais là j'ai une erreur : 

Oracle Database Error: ORA-00904: "A_TRONCO"."GEOMETRY"."GET_DIMS" : identificateur non valide
ORA-06512: à ligne 17


Quelqu'un a-t'il une idée ?

D'avance, merci,


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

Pied de page des forums

Powered by FluxBB