在PL/SQL中,UPDATE语句影响的行数。

5 浏览
0 Comments

在PL/SQL中,UPDATE语句影响的行数。

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

admin 更改状态以发布 2023年5月23日
0
0 Comments

对于那些想要从一个简单的命令中获取结果的人,解决方案可能是:

begin
  DBMS_OUTPUT.PUT_LINE(TO_Char(SQL%ROWCOUNT)||' rows affected.');
end;

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

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

0
0 Comments

你使用sql%rowcount变量。

你需要在需要查找受影响行数的语句之后直接调用它。

例如:

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; 

0