我现在执行了一条更新语句,如果成功的更新(即影响了一行),就什么也不做,如果未能影响一行的话,就将这条SQL语句打印到一个文件中,我该怎么办?现在的问题是,我如何知道这条语句是否成功的影响了一行!

解决方案 »

  1.   

    SQL> ed
    已写入 file afiedt.buf  1  begin
      2    update t
      3      set account = account  + 10;
      4    dbms_output.put_line(sql%rowcount);
      5    commit;
      6* end;
    SQL> /
    3PL/SQL 过程已成功完成。SQL> ed
    已写入 file afiedt.buf  1  begin
      2    update t
      3      set account = account  + 10
      4     where 1=0;
      5    dbms_output.put_line(sql%rowcount);
      6    commit;
      7* end;
    SQL> /
    0PL/SQL 过程已成功完成。SQL>
      

  2.   


    我帮那位大哥解释一下:
    sql%rowcount是指这条SQL语句执行影响的行数,如果执行结果为n并且n>0,则说明该语句执行了n条记录
    即如果是插入操作则插入了n条记录