Oracle 更新列中的特定行
我有一个包含82行的列(来自表1),我只想用另一个表(表2)中不同的值更新其中的76行。避免6个特定行(1、10、38、39、46、77)。将这些行保留为空值 我使用游标保存了表2中的所有76行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'
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查询