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Ă© ?

#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: 10053
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: 10053
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

Copyright Association GeoRezo