[讨论] oracle数据库游标更新时sql%rowcount影响数量记录的一个疑问
这是部分的sql。(update的部分忽略)变量1和变量2是变化的,先把符合条件的全部找出来,最后一起提交。类似效果如下:
会先找A:delete from bdc_affix_dir where slid=1 and ax_owner<>1;--(假如提交会删除2条)
再找B: delete from bdc_affix_dir where slid=2 and ax_owner<>2;--(假如提交会删除3条)
问题:
sql%rowcount只能记载最后一次的操作数量,也就是只会记载最后一次的B(sql%rowcount=3)。
需求:
请问有没有办法把所有的删除记录类似求和的打印出来!
希望达到的效果 dbms_output.put_line(n)--希望打印出来是5
你图片中标3那行就是把sql%rowcount赋值给变量n
如果只执行两次语句,可以一个赋给变量m,一个赋给变量n
如果是循环执行语句,可以循环之前把n赋成0,循环中 n:=n+sql%rowcount
如果是要执行很多次脚本,而要把每次脚本执行的行数保存下来,那需要建一个表,每次都把sql%rowcount插入表中,因为脚本运行完释放内存,变量会消失