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....