当然有必要了。
尤其在多事物处理过程中
如果COMMIT后,你以前的值将永久改变,保存到变量中才能得到原来的值。

解决方案 »

  1.   

    两位大侠:     我以上的语句不能run,能给个例子吗?
      

  2.   

    用本机动态SQL吧,如果你是9i的话,是8i就用DMBS_SQL包建立动态sql语句执行.
    see below:
    ----------------------------------------------------------
    declare 
      age number(2);
      sqltext varchar(200);
      name varchar(20);
      sumheight15 number(10);
      sumheight20 number(10);
    begin
      age:=1;
      sqltext='select name,sum(case :1 when >10 and <15 then height
               else 0 end),sum(case :1 when >15 and <20 then height 
               else 0 end) from test';
      execute immediate sqltext into name,sumheight15,sumheight20 using age  
    end;
    ----------------------------------------------------------------
    大致就是这样了,详细的参考pl/sql的书;