首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在PL/SQL中受UPDATE影响的行数

在PL/SQL中受UPDATE影响的行数
EN

Stack Overflow用户
提问于 2009-05-14 07:21:22
回答 4查看 374.3K关注 0票数 176

我有一个PL/SQL函数(在Oracle10g上运行),其中我更新了一些行。有没有办法找出有多少行受到更新的影响?当手动执行查询时,它会告诉我有多少行受到影响,我希望在PL/SQL中获得这个数字。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-05-14 07:33:00

您可以使用sql%rowcount变量。

您需要在语句后面直接调用它,您需要找到受影响的行数。

例如:

代码语言:javascript
复制
set serveroutput ON; 
DECLARE 
    i NUMBER; 
BEGIN 
    UPDATE employees 
    SET    status = 'fired' 
    WHERE  name LIKE '%Bloggs'; 
    i := SQL%rowcount; 
    --note that assignment has to precede COMMIT
    COMMIT; 
    dbms_output.Put_line(i); 
END; 
票数 275
EN

Stack Overflow用户

发布于 2014-09-03 15:55:21

对于那些想要从普通命令中获得结果的人来说,解决方案可能是:

代码语言:javascript
复制
begin
  DBMS_OUTPUT.PUT_LINE(TO_Char(SQL%ROWCOUNT)||' rows affected.');
end;

基本问题是SQL%ROWCOUNT是一个PL/SQL变量(或函数),不能通过SQL命令直接访问。通过使用noname PL/SQL块,可以实现这一点。

..。如果任何人有在SELECT命令中使用它的解决方案,我会很感兴趣。

票数 31
EN

Stack Overflow用户

发布于 2012-08-06 22:03:38

或者,您可以在过程中使用SQL%ROWCOUNT,而不需要声明变量

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/861983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档