curseur Oracle pour mettre à jour les données de colonne d'une autre table

voix
0

je veux curseur Oracle pour mettre à jour ENTITY_BRANCH.table1 de BRANCH_SECRETARIAT_CODE.table2 sur la base EMPLOYEE_NUMBERdans les deux tableaux si j'ai plus de 200000 employés dans les deux tables ...

le tableau 1 que je veux mettre à jour ressembler à

EMPLOYEE_NUMBER    JOINING_DATE      ENTITY_BRANCH 

     12              11/12/2006          null
     13              01/11/2009          null

Tableau 2 pour la mise à jour de ressembler à ::

 Employee_Number   MINISTRY_CODE   BRANCH_SECRETARIAT_CODE

        12                 333                 30
        13                 222                 31
Créé 26/07/2016 à 10:31
utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

Vous pouvez le faire avec une sous-requête:

update ENTITY_BRANCH.table1 t
    set ENTITY_BRANCH = (SELECT t2.BRANCH_SECRETARIAT_CODE
                         FROM BRANCH_SECRETARIAT_CODE.table2 t2
                         WHERE t2.Employee_Number = t.Employee_Number
                        );

Il n'y a pas besoin d'un curseur pour le faire. D'autre part, un index sur table2(Employee_Number, BRANCH_SECRETARIAT_CODE)serait très utile.

Créé 26/07/2016 à 10:35
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more