2016-07-26 46 views
0

我想Oracle遊標基於兩個表 在EMPLOYEE_NUMBERBRANCH_SECRETARIAT_CODE .table2更新ENTITY_BRANCH .table1如果我在兩個表中有更多的超過20萬名的員工......Oracle遊標從另一個表更新列數據

的表1,我想更新的樣子

EMPLOYEE_NUMBER JOINING_DATE  ENTITY_BRANCH 

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

表2從樣子::

Employee_Number MINISTRY_CODE BRANCH_SECRETARIAT_CODE 

     12     333     30 
     13     222     31 
+0

任何嘗試到目前爲止? –

+0

您的意思是您想要在遊標循環中逐行更新或批量更新行嗎?爲什麼不做一個相關的更新語句 - 它會更快更簡單,而200,000行並不是很多。 –

+0

一個一個我的意思是 – ALI

回答

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)上的索引將非常有幫助。

+0

沒有工作的兄弟我得到了錯誤 – ALI

+0

那該錯誤是什麼? –

+0

我編輯到雷爾表名稱作爲 – ALI