Oracle : Comment mettre à jour plusieurs colonnes de table différente?
Je suis en utilisant la base de données oracle et ont une des situations pour mettre à jour les champs de certains autres tables. Mon problème est qu'elle est mise à jour tous les enregistrements à la place de conditions spécifiées.
Par exemple, je suis en train de mettre à jour perm_address et temp_address dans la table EMPLOYÉ à partir de la table d'ADRESSES. Maintenant, je suis en utilisant la requête ci-dessous. Mais, elle est mise à jour tous les enregistrements.
UPDATE EMPLOYEE EMP
SET (EMP.PERM_ADDRESS, EMP.TEMP_ADDRESS) =
(SELECT ADDR.PERM_ADDR,ADDR.TEMP_ADDR
FROM ADDRESS ADDR
WHERE ADDR.ID=EMP.ADDRESS_ID
);
Dans Oracle comment gérer cette situation? Normalement, la façon de gérer la mise à jour de plusieurs de table en table source?
Merci d'avance....
Vous devez vous connecter pour publier un commentaire.
Ajouter un
WHERE
clause de mettre à jour uniquement les enregistrements correspondants:Mise à jour d'une table avec des données provenant d'une autre table est souvent plus simple à l'aide de l'instruction MERGE. https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9016.htm
Quelque chose comme ceci: