Oracle
 sql >> Base de données >  >> RDS >> Oracle

Requête Oracle Update avec jointures

Votre requête me semble correcte, je viens d'ajouter l'alias de table. Votre requête mettra à jour tous les enregistrements de table1. Quelle erreur obtenez-vous... ? ?

Suggestions,

a) Sauf si vous souhaitez mettre à jour tous les enregistrements, ajoutez une clause where dans la requête pour éviter de mettre à jour tous les enregistrements...

b) Si vous obtenez (ORA-01427 :la sous-requête à une seule ligne renvoie plus d'une ligne), cela signifie que la sous-requête corrélée (entre parenthèses) manque une condition pour qu'elle ne récupère qu'une seule ligne par epcclass_id.

update table1 Pr
set Pr.code = (select t2.class_attr_value 
               from table2 t2 
               where  t2.class_attr_name = 'sample' 
               and t2.epclass_id = Pr.epcclass_id 
              );