你每次调用输出的abc都是一样的话!就不需要循环调用这么多次了!

解决方案 »

  1.   

    可否放到一个临时表里呢, 返回一个sequence no
      

  2.   

    使用type传递参数,通过一次查询产生结果
      

  3.   

    速度慢也许不在存储过程,
    比如生成jsp页面时
    oracle的配置上如果不合理的话都有可能发生上面的问题
    建议你排除其他的原因
      

  4.   

    用函数返回比较简洁,看是否帮到你
    create function name_f(p_id in varchar2)
    return number
    as
    cursor t_sor(v_id varchar2) is
    select sum(rmb) a,sum(dollar) b,sum(hkdollar) c from table where id=v_id;
    begin
    for v_sor in t_sor(p_id) loop
    if v_sor.a<>0 then
    return(v_sor.a);
    elsif v_sor.b<>0 then
    return(v_sor.b);
    else
    return(v_sor.c);
    end if;
    end loop;
    end;
    /