比如我有一个delete语句:delete from 表名 where 条件;比如执行上面这条语句会删除100行记录大家能否帮我修改一下上面这个sql语句,在 where 后面加上某些条件后,让它只删除一行记录,因为我想执行100次。因为我程序涉及到删除记录进度条显示的问题。

解决方案 »

  1.   

    declare 
        v_num number;
    begin
        v_num := 1;
        while(v_num<=100)
            loop
                delete from test where rownum=1;
                commit;
                dbms_output.put_line(v_num);
                v_num := v_num + 1;
            end loop; 
    end;           
      

  2.   

    delete from 表名 where 条件 and rownum=1
      

  3.   


    说的对。楼主为了进度条显示而不顾数据库性能,有点舍本逐末。进度条你可以不用1~100%的方式,你可以放个gif,让它在那里动,表示没有死掉就可以了。
      

  4.   

    建议做进度条可以根据sql执行的时间来决定,从SQL开始执行->SQL结束完毕的总时间,然后按照百分比,进行进度条的控制.如果要执行100条SQL 这100条还好,如果是100万  1000万呢 那你的数据库不完蛋了!