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 21 June 2011 14:52

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

ORACLE SPATIAL : faire une jointure à base de SDO_NN

Aloha

Voilà, je veux mettre à jour (UPDATE) une table d'après les attributs des objets les plus proches.
Or avec SDO_NN, cela ne passe pas, ou je ne maîtrise pas la syntaxe.

Quelqu'un a-t'il déjà pratiqué ?

D'avance, merci,

PS. Voici ce que j'ai essayé :

Code:

SELECT                                                /*+ INDEX(Q_TO_CAXYZ) */
      *
  FROM (SELECT /* leading (R_TRONCO R_ADRESS) INDEX(Q_TO_CAXYZ)*/   T  .GID,
               T."numero",
               T."commune",
               T."date_m_a",
               T."z",
               A.CODCOM CODCOM_ADR,
               A.CODRUE CODRUE_ADR,
               A.NUM_POST,
               A.LIBELLE,
               A.GID GID_ADR,
               sdo_nn_distance (2) "Distance_ADR",
               R.GID GID_TRO,
               R.CODCOM CODCOM_TRO,
               R.CODRUE CODRUE_TRO,
               sdo_nn_distance (1) "Distance_TRO"
          FROM R_TRONCO R, TO_CAXYZ T, R_ADRESS A
         WHERE (SDO_NN (A.GEOMETRY,
                        T.GEOMETRY,
                        'sdo_num_res=2',
                        2) = 'TRUE'
                AND SDO_NN (R.GEOMETRY,
                            T.GEOMETRY,
                            'sdo_num_res=1',
                            1) = 'TRUE')) T
 WHERE T.CODCOM_ADR = T.CODCOM_TRO AND T.CODRUE_ADR = T.CODRUE_TRO;

Il s'agit de récupérer l'adresse la plus proche d'un point de canevas planimétrique mais seulement si cette adresse a le même code rivoli que le tronçon de voie le plus proche du point de canevas (pour gérer les cas de points de canevas dans les champs).

Dernière modification par Pierre (Tue 21 June 2011 15:50)


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