[PL/SQL] update avec jointure
Bonjour
J'ai besoin d'optimiser un update en PL/SQL.
J'ai deux tables TABLE1 et TABLE2 qui possède la meme structure qui est la suivante : CLE, CHAMP1 et CHAMP2
Le but de de mettre à jour la table TABLE1 avec la table TABLE2 en fonction du champ CLE.
Voici la requete qui fonctionne
Code:
1 2 3 4 5
| update TABLE1 a
set
a.CHAMP1 = (select CHAMP1 from TABLE2 where CLE = a.CLE),
a.CHAMP2 = (select CHAMP2 from TABLE2 where CLE = a.CLE)
where (a.CLE in (select CLE from TABLE2); |
Le problème est qu'elle est lente, surement à cause des multiples select.
Je me rappelle d'une facon de coder cela en TRANSAC-SQL et qui serait surement plus rapide, mais qui ne marche pas en PL/SQL :
Code:
1 2 3 4 5 6
| update TABLE1
set
a.CHAMP1 = b.CHAMP1,
a.CHAMP2 = b.CHAMP2
from TABLE1 a, TABLE2 b
where (a.CLE = b.CLE) |
Serait-il possible de faire un update similaire en PL/SQL
Merci pour vos réponses
Fox