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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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