【发布时间】:2017-08-11 04:03:36
【问题描述】:
我想在 for 循环中使用动态表名。我知道使用游标可以解决这个问题。但我想知道是否有没有游标的解决方案,因为我当前的代码具有通用 for 循环(隐式游标),我想知道是否可以在不使用显式游标的情况下以相同的方式保留它。
现在对我有用的是:
BEGIN
for itr in (select var1,var2,var3,var4 from schedule_table)
loop
--work using itr.var1, itr.var2, itr.var3, itr.var4
end loop
END
我想知道是否可以使用相同类型的 for 循环但动态地将表名传递给它。我查看了执行立即动态 sql 选项,但我认为我无法在 for 循环中使用它。在我开始重新设计整个过程以使用显式游标之前,我只是想在这里检查一下(不是我的忠实粉丝,因为我担心与隐式游标相比的性能)。
谢谢。
【问题讨论】:
-
“恐惧”不能替代基准。鉴于您正在逐行执行模式,管理显式游标的开销似乎很小。
标签: oracle performance plsql