Oracle 更新列中的特定行

Oracle 更新列中的特定行,oracle,plsql,plsqldeveloper,toad,Oracle,Plsql,Plsqldeveloper,Toad,我有一个包含82行的列(来自表1),我只想用另一个表(表2)中不同的值更新其中的76行。避免6个特定行(1、10、38、39、46、77)。将这些行保留为空值 我使用游标保存了表2中的所有76行 Cursor my_cur Is Select * from table2 然后我尝试更新我的表1 Begin For x in my_cur loop Update table1 Set my_col = x.acct_num Where rnum not in ('1'

我有一个包含82行的列(来自表1),我只想用另一个表(表2)中不同的值更新其中的76行。避免6个特定行(1、10、38、39、46、77)。将这些行保留为空值

我使用游标保存了表2中的所有76行

Cursor my_cur
 Is
  Select * from table2
然后我尝试更新我的表1

Begin
 For x in  my_cur loop
   Update table1
   Set my_col = x.acct_num
   Where rnum not in ('1', '10', '38', '39', '46', '77');
end loop;
End;
但我最终用相同的值更新了这些行(所有76行只有1个acct_num)

我想输入76行的不同账号,顺序与表2中相同

Cursor my_cur
 Is
  Select * from table2

我在这两个行中都添加了rownum,以便至少确定要跳过哪些行。有什么办法吗?谢谢

在更新查询中,由于它是for循环,因此来自table1循环的acct_num的最后一个值将更新为来自table2的所有行

表1和表2之间必须有一个公共列连接。在where条件下使用它

Begin
 For x in  my_cur loop
   Update table1
   Set my_col = x.acct_num
   Where table1.common_column = x.common_column and
rnum not in ('1', '10', '38', '39', '46', '77');
end loop;
End;
where子句中的这个附加过滤器可以解决ur查询