oracle游标用于更新另一个表中的列数据

时间:2016-07-26 11:31:48

标签: sql oracle

我希望oracle游标在两个表中基于ENTITY_BRANCHBRANCH_SECRETARIAT_CODE。table2更新EMPLOYEE_NUMBER。table1 如果我在两个表中都有超过20万名员工......

我要更新的table1看起来像

EMPLOYEE_NUMBER    JOINING_DATE      ENTITY_BRANCH 

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

table2用于从::

看起来更新
 Employee_Number   MINISTRY_CODE   BRANCH_SECRETARIAT_CODE

        12                 333                 30
        13                 222                 31

1 个答案:

答案 0 :(得分:1)

您可以使用子查询执行此操作:

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
                        );

无需光标即可完成此操作。另一方面,table2(Employee_Number, BRANCH_SECRETARIAT_CODE)上的索引会非常有用。