最好重复调用函数或将函数结果存储在变量中,以便在plsql过程中重用

时间:2017-08-30 10:17:53

标签: oracle function variables plsql

在过程中多次调用已定义的函数或将函数结果存储在局部变量中并使用保持的变量值是最佳实践/更高效吗?

函数中返回的值是日期值。 (从extract_dates中选择start_date)

1 个答案:

答案 0 :(得分:1)

如果可能的话,调用函数一次并重复使用返回值绝对是个好主意 - 例如循环时:

declare
  l_start_date date;
begin
  l_start_date := get_start_date_for_dept (10);
  for r in (select id from big_table) loop
    process_record (r.id, l_start_date );
  end loop;
end;

这里调用函数一次,而不是big_table有行的次数。如果每次调用都需要一毫秒,并且big_table有10,000行,那么在循环内调用函数可能会在整个运行时间内增加10秒。这只是标准的编程良好实践。