Bonjour,
C'est un sujet qu'on trouve à la pelle sur internet mais malgré tous mes essais je ne me sors pas de ce problème.
Je suis en train de faire des reprises de données en passant par une base en Oracle 11g.
J'essaye de mettre à jour une zone clef d'une table par une valeur se trouvant dans une autre table.
J'ai essayé
Là j'avais une erreur en valeur NULL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 UPDATE X3_ITMFACILIT ITF SET ITF.ITMREF = (select ITM.ITMREF from X3_ITMMASTER ITM where ITM.CODE_SOC1 = ITF.OLDCOD); where ITF.STOFCY= 'SOR';
Ok le code n'était pas très claire.
J'ai donc fait ceci :
Là j'ai un ORA-00933 sur SQL qui ne se termine pas correctement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 update X3_ITMFACILIT set ITMREF = ITM.ITMREF from X3_ITMFACILIT ITF join X3_ITMMASTER ITM on (ITF.OLDCOD = ITM.CODE_SOC1) where ITF.STOFCY= 'SOR';
Et j'ai donc terminé par :
Et là j'ai une erreur ORA-00904 comme quoi mon ITM.ITMREF identificateur invalide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 UPDATE ( select ITF.ITMREF, ITM.ITMREF from X3_ITMFACILIT ITF left outer join X3_ITMMASTER ITM on (ITF.OLDCOD = ITM.CODE_SOC1) Where ITF.STOFCY= 'SOR' ) SET ITF.ITMREF = ITM.ITMREF;
Je ne sais pas trop à quel bord me raccrocher, si quelqu'un aurait une idée !
Merci par avance
Partager