如 表a,字段a.num1;
while(i <100)
{
  num1++;
  update表a;
  i++;
}
这样因在while中没做commit,不能实现字段a的累加功能,
请问在不做commit的情况下请问如何实现字段num1的累加(想要在一个事务中完成).

解决方案 »

  1.   

    先累加后再UPDATE——————
      

  2.   

    有没有试过FOR循环或者FORALL,组合字符串的形式?
      

  3.   

    没做commit,也能多次update的啊!while(i <100)
    {
      num1++;  i++;
    }  
    update表a;
      

  4.   


    --是否此意思
    decalre
    begin
    while i <100 loop
    update a set num1=num1+1;
    i:=i+1;
    end loop;
    commit;
    end;
      

  5.   

    2个变量(num1,i)初始值一样吗?
    如果一样,可以省略一个
    这个循环可以放也可以不放在一个事务中1)
    while(i <100)
    {
      num1++;
      i++;
    }
    事务开始
    update表a;
    Commit2)事务开始
    while(i <100)
    {
      num1++;
      i++;
      update表a;
    }
    Commit
      

  6.   

    l_str := 'update表a';    
    execute immediate l_str;
      

  7.   

    为什么要这样操作呢,逻辑上有问题呀,你得到num1的累加之后结果,再更新多好呀。update放在循环之外,执行一次。