Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Printemps des cartes 2024

#1 Tue 20 April 2010 13:18

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

Oracle : SQL : erreur 00918

Aloha

Mon serveur de publication web me renvoie cette erreur lorsque j'interroge des objets définis pas la requête SQL suivante :

Code:

SELECT E1_SPP.GID AS ID_SPP,
       E2_POLLU.GID,
       E2_POLLU.POLSOL,
       E2_POLLU.POLAIR,
       E2_POLLU.POLEAU,
       E2_POLLU.DEPOLL,
       E2_POLLU.SUIVI,
       E2_POLLU.EXCAV,
       E2_POLLU.ENFOUI,
       E2_POLLU.BIOCEN,
       E2_POLLU.VENTIN,
       E2_POLLU.STRIPPI,
       E2_POLLU.BIOTERT,
       E2_POLLU.CONFINT,
       E2_POLLU.OCCUP,
       E2_POLLU.GEOMETRY
  FROM E2_POLLU E2_POLLU, E1_SPP E1_SPP
 WHERE SDO_NN (E1_SPP.GEOMETRY,
               E2_POLLU.GEOMETRY,
               'querytype=window sdo_num_res=1') = 'TRUE'

Je décide donc de la reformuler :

Code:

SELECT /*+ ORDERED */ 
E2_POLLU.GID,
       E2_POLLU.POLSOL,
       E2_POLLU.POLAIR,
       E2_POLLU.POLEAU,
       E2_POLLU.DEPOLL,
       E2_POLLU.SUIVI,
       E2_POLLU.EXCAV,
       E2_POLLU.ENFOUI,
       E2_POLLU.BIOCEN,
       E2_POLLU.VENTIN,
       E2_POLLU.STRIPPI,
       E2_POLLU.BIOTERT,
       E2_POLLU.CONFINT,
       E2_POLLU.OCCUP,
       S.ID_SPP
  FROM    A_REIMS.E2_POLLU E2_POLLU
       INNER JOIN
          (SELECT E2_POLLU.GID, E1_SPP.GID AS ID_SPP
             FROM A_REIMS.E1_SPP E1_SPP, A_REIMS.E2_POLLU E2_POLLU
            WHERE SDO_NN (E1_SPP.GEOMETRY,
                          E2_POLLU.GEOMETRY,
                          'querytype=window sdo_num_res=1') = 'TRUE') S
       ON (E2_POLLU.GID = S.GID)

Mais là, c'est TOAD qui m'annonce qu'il ne peut l'éxécuter :

Code:

Toad for Data Analysts: ORA-13249: SDO_NN cannot be evaluated without using index
ORA-06512: à "MDSYS.MD", ligne 1723
ORA-06512: à "MDSYS.MDERR", ligne 17
ORA-06512: à "MDSYS.PRVT_IDX", ligne 9    1    0

Alors que la requête fonctionne parfaitement

Code:

SELECT E2_POLLU.GID, E1_SPP.GID AS ID_SPP
FROM A_REIMS.E1_SPP E1_SPP, A_REIMS.E2_POLLU E2_POLLU
WHERE SDO_NN (E1_SPP.GEOMETRY,
                          E2_POLLU.GEOMETRY,
                          'querytype=window sdo_num_res=1'

Quelqu'un a-t'il une idée pour que je corrige cette erreur 00918 (contournement, reformulation,...) ?

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

 

#2 Tue 20 April 2010 14:48

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1537

Re: Oracle : SQL : erreur 00918

Pierre a écrit:

Aloha

Mon serveur de publication web me renvoie cette erreur lorsque j'interroge des objets définis pas la requête SQL suivante :

Code:

SELECT E1_SPP.GID AS ID_SPP,
       E2_POLLU.GID,
       E2_POLLU.POLSOL,
       E2_POLLU.POLAIR,
       E2_POLLU.POLEAU,
       E2_POLLU.DEPOLL,
       E2_POLLU.SUIVI,
       E2_POLLU.EXCAV,
       E2_POLLU.ENFOUI,
       E2_POLLU.BIOCEN,
       E2_POLLU.VENTIN,
       E2_POLLU.STRIPPI,
       E2_POLLU.BIOTERT,
       E2_POLLU.CONFINT,
       E2_POLLU.OCCUP,
       E2_POLLU.GEOMETRY
  FROM E2_POLLU E2_POLLU, E1_SPP E1_SPP
 WHERE SDO_NN (E1_SPP.GEOMETRY,
               E2_POLLU.GEOMETRY,
               'querytype=window sdo_num_res=1') = 'TRUE'

Je décide donc de la reformuler :

Code:

SELECT /*+ ORDERED */ 
E2_POLLU.GID,
       E2_POLLU.POLSOL,
       E2_POLLU.POLAIR,
       E2_POLLU.POLEAU,
       E2_POLLU.DEPOLL,
       E2_POLLU.SUIVI,
       E2_POLLU.EXCAV,
       E2_POLLU.ENFOUI,
       E2_POLLU.BIOCEN,
       E2_POLLU.VENTIN,
       E2_POLLU.STRIPPI,
       E2_POLLU.BIOTERT,
       E2_POLLU.CONFINT,
       E2_POLLU.OCCUP,
       S.ID_SPP
  FROM    A_REIMS.E2_POLLU E2_POLLU
       INNER JOIN
          (SELECT E2_POLLU.GID, E1_SPP.GID AS ID_SPP
             FROM A_REIMS.E1_SPP E1_SPP, A_REIMS.E2_POLLU E2_POLLU
            WHERE SDO_NN (E1_SPP.GEOMETRY,
                          E2_POLLU.GEOMETRY,
                          'querytype=window sdo_num_res=1') = 'TRUE') S
       ON (E2_POLLU.GID = S.GID)

Mais là, c'est TOAD qui m'annonce qu'il ne peut l'éxécuter :

Code:

Toad for Data Analysts: ORA-13249: SDO_NN cannot be evaluated without using index
ORA-06512: à "MDSYS.MD", ligne 1723
ORA-06512: à "MDSYS.MDERR", ligne 17
ORA-06512: à "MDSYS.PRVT_IDX", ligne 9    1    0

Alors que la requête fonctionne parfaitement

Code:

SELECT E2_POLLU.GID, E1_SPP.GID AS ID_SPP
FROM A_REIMS.E1_SPP E1_SPP, A_REIMS.E2_POLLU E2_POLLU
WHERE SDO_NN (E1_SPP.GEOMETRY,
                          E2_POLLU.GEOMETRY,
                          'querytype=window sdo_num_res=1'

Quelqu'un a-t'il une idée pour que je corrige cette erreur 00918 (contournement, reformulation,...) ?

D'avance merci.


Bonjour,

Créer un index spatial ?

Nico

Hors ligne

 

#3 Tue 20 April 2010 15:20

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

Re: Oracle : SQL : erreur 00918

Bonjour,

J'ai oublié de dire, que mon index est à jour et créé (pour ce que j'en sais).


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