oracle数据库游标更新时sql%rowcount影响数量记录的一个疑问
本帖最后由 yk156511 于 2022-12-27 20:20 编辑这是部分的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 刚自学,大佬轻喷! 发错了 抱歉{:1_911:}{:1_911:}{:1_911:}{:1_911:} 可以用变量啊
每次执行sql语句后,把sql%rowcount保存到变量
cloud2010 发表于 2022-12-28 10:32
每次执行sql语句后,把sql%rowcount保存到变量
请问具体怎么操作呢。 yk156511 发表于 2022-12-28 17:22
请问具体怎么操作呢。
你图片中标3那行就是把sql%rowcount赋值给变量n
如果只执行两次语句,可以一个赋给变量m,一个赋给变量n
如果是循环执行语句,可以循环之前把n赋成0,循环中 n:=n+sql%rowcount
如果是要执行很多次脚本,而要把每次脚本执行的行数保存下来,那需要建一个表,每次都把sql%rowcount插入表中,因为脚本运行完释放内存,变量会消失 cloud2010 发表于 2022-12-29 06:14
你图片中标3那行就是把sql%rowcount赋值给变量n
如果只执行两次语句,可以一个赋给变量m,一个赋给变 ...
谢谢,有思路了。
页:
[1]