我有 2 个选项可以根据选择查询的游标更新表。
假设我有这个选择查询:
select id1 from table1
我的更新查询是:
update table2 set value=1 where table2.id2 = table1.id1
现在有两个选项:
为选择查询设置一个游标并批量获取它,然后在 for all 语句中触发更新查询。
使用 select 子查询编写更新查询:
update table2 set value=1 where table2.id2 in (select id1 from table1)
哪一个更好?
Oracle 是否在内部将选择子查询转换为批量收集,还是将其视为普通游标?