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 05 June 2009 14:52

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

ORA-01427 sur une requête update

Aloha
J'ai une table R_VOIE dans laquelle je trouve toutes les infos importantes de mes voies, une table R_TRONCO avec la géométrie de mes tronçons de voie et une table R_TRONCO_RELATION qui me sert à relier les deux (R_VOIE 1-n R_TRONCO_RELATION 1-1 R_TRONCO).
Je cherche à mettre à jour un champ de R_TRONCO avec R_VOIE :

Code:

UPDATE A_REIMS.R_TRONCO R_TRONCO
   SET "code_riv"   =
          (SELECT R_VOIE.CODRUE
             FROM    (   A_REIMS.R_TRONCO_RELATION R_TRONCO_RELATION
                      INNER JOIN
                         A_REIMS.R_VOIE R_VOIE
                      ON (R_TRONCO_RELATION.GID_A = R_VOIE.GID))
                  INNER JOIN
                     --A_REIMS.R_TRONCO
                     R_TRONCO
                  ON (R_TRONCO_RELATION.GID_D = R_TRONCO.GID)
            WHERE (R_TRONCO_RELATION.CLASS = 'R_VOIE'))
 --                  AND (R_TRONCO."code_riv" != R_VOIE.CODRUE))
 WHERE R_TRONCO.GID IN
             (SELECT R_TRONCO.GID
                FROM    (   A_REIMS.R_TRONCO_RELATION R_TRONCO_RELATION
                         INNER JOIN
                            A_REIMS.R_VOIE R_VOIE
                         ON (R_TRONCO_RELATION.GID_A = R_VOIE.GID))
                     INNER JOIN
                        A_REIMS.R_TRONCO R_TRONCO
                     ON (R_TRONCO_RELATION.GID_D = R_TRONCO.GID)
               WHERE     (R_TRONCO_RELATION.CLASS = 'R_VOIE')
                     AND R_TRONCO."code_riv" IN ('172', '584', '105', '055', '9999'))

Mais mon premier select renvoie plusieurs ligne, mais une seule par R_TRONC.GID. Comment lui expliquer laquelle prendre ?
D'avance, merci, merci beaucoup.


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 Fri 05 June 2009 15:14

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: ORA-01427 sur une requête update

Bonjour,

Si ta relation entre les deux  tables est bien R_VOIE 1-n R_TRONCO_RELATION, pourquoi utiliser un INNER JOIN ce qui risque de multiplier les lignes ?

Je me trompe ?

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Fri 05 June 2009 15:29

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

Re: ORA-01427 sur une requête update

En tous les cas les lignes ne sont pas multipliées.


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

 

#4 Tue 09 June 2009 15:40

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: ORA-01427 sur une requête update

Bonjour,

À priori il n'est pas possible de faire ce genre de chose sous postgresql. Je vient d'avoir une problématique assez similaire hmm

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

Pied de page des forums

Powered by FluxBB