使用Loop on Rownum设置值= 1 VS选择进入异常

时间:2017-03-01 23:18:58

标签: oracle plsql rownum

我找不到答案,所以要么它不存在,要么我找不到要搜索的神奇单词组合。

以下哪项更有效,为什么?

(1)Rownum上的循环= 1

function get_a_val(limit_var in varchar2) is
  return_var table_name.data_col%type;
begin
  for rec in (select data_col, extra_col1, extra_col2 
              from table_name 
                where some_col = limit_var
                  and rownum   = 1)
  loop
    return_var := data_col;
  end loop;
  return(return_var);
end get_a_val;

(2)选择进入异常

function get_a_val(limit_var in varchar2) is
  return_var table_name.data_col%type;
begin
  select data_col into return_var 
  from table_name 
    where some_col = limit_var
      and rownum   = 1;
  return(return_var);
exception
  when no_data_found then return null;
end get_a_val;

0 个答案:

没有答案