在循环中实现if语句的更好方法

时间:2018-04-12 06:25:56

标签: for-loop optimization plsql procedure

我在PL / SQL中有一个简单的代码,我希望对其进行优化。我有这个过程接受两个参数,param1(表id)和param2(日期)。它的作用是遍历表并检查param2是否在列fld_date1和fld_date2之间。如果是,则执行另一个逻辑。除了表id之外,该表不再接受任何参数。以下是摘录

procedure proc1(
  param1                                     id table
 ,param2                                        date
)
is
begin
   for n in tab(param1).row_list loop
     if  param2 >= n.fld_date1
     and param2 <= n.n.fld_date2 then
       (...);
     end if;
   end loop;
end proc1;

这个可行,但我想也许你们中的一些人可能会想到更好的版本。我担心的是通过大量行迭代的性能。任何帮助/建议都非常感谢。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用“between”来检查日期是否在某个范围内,而不是检查2个条件。