吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 933|回复: 7
收起左侧

[讨论] oracle数据库游标更新时sql%rowcount影响数量记录的一个疑问

[复制链接]
yk156511 发表于 2022-12-27 20:19
本帖最后由 yk156511 于 2022-12-27 20:20 编辑

image.png
这是部分的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

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| yk156511 发表于 2022-12-27 20:21
刚自学,大佬轻喷!
yunyun123456789 发表于 2022-12-27 20:56
溯雪 发表于 2022-12-28 06:26
cloud2010 发表于 2022-12-28 10:32

每次执行sql语句后,把sql%rowcount保存到变量
 楼主| yk156511 发表于 2022-12-28 17:22
cloud2010 发表于 2022-12-28 10:32
每次执行sql语句后,把sql%rowcount保存到变量

请问具体怎么操作呢。
cloud2010 发表于 2022-12-29 06:14
yk156511 发表于 2022-12-28 17:22
请问具体怎么操作呢。


你图片中标3那行就是把sql%rowcount赋值给变量n

如果只执行两次语句,可以一个赋给变量m,一个赋给变量n

如果是循环执行语句,可以循环之前把n赋成0,循环中 n:=n+sql%rowcount

如果是要执行很多次脚本,而要把每次脚本执行的行数保存下来,那需要建一个表,每次都把sql%rowcount插入表中,因为脚本运行完释放内存,变量会消失

免费评分

参与人数 1吾爱币 +1 收起 理由
yk156511 + 1 谢谢@Thanks!

查看全部评分

 楼主| yk156511 发表于 2022-12-29 09:15
cloud2010 发表于 2022-12-29 06:14
你图片中标3那行就是把sql%rowcount赋值给变量n

如果只执行两次语句,可以一个赋给变量m,一个赋给变 ...

谢谢,有思路了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 02:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表