sql - Oracle如何计算在plsql block 中插入的总行数

标签 sql oracle plsql

我想不计入数据库的插入次数

尽管更新了2行,但以下查询返回one(1)

begin 
   Insert into APPLICATIONS (ID,ALIAS,NAME,STATUS) 
        values (1000000386,'BB','Branch Budgets','I'));
   Insert into APPLICATIONS (ID,ALIAS,NAME,STATUS) 
        values (1000000257,'TIME','Timesheets','I'));
   dbms_output.put_line('No Of rows'||sql%Rowcount);
 end;

最佳答案

dbms_output.put_line('No Of rows'||sql%Rowcount);

这将为您提供由上一条语句更新的总行数。因此,即使您以这种方式有10条插入语句,您也将始终将1作为sql%rowcount

使用2条输出语句,在insert语句之后各使用一条,或者使用变量并添加更新后的行数,然后最后显示它。
declare
    v_count integer;
    begin 
        v_count:=0;
       Insert into APPLICATIONS (ID,ALIAS,NAME,STATUS) 
            values (1000000386,'BB','Branch Budgets','I');
        v_count:=   sql%Rowcount;
       Insert into APPLICATIONS (ID,ALIAS,NAME,STATUS) 
            values (1000000257,'TIME','Timesheets','I');
        v_count:= v_count+ sql%Rowcount;
       dbms_output.put_line('No Of rows '||v_count);
     commit;
     end;

或者
如果要将数据插入同一张表,请使用组合的insert语句,如下所示。
这将返回2行。
begin    
    INSERT ALL 
        into  APPLICATIONS (ID,ALIAS,NAME,STATUS) 
             values (1000000386,'BB','Branch Budgets','I')
        into  APPLICATIONS (ID,ALIAS,NAME,STATUS) 
             values (1000000257,'TIME','Timesheets','I')
    SELECT * FROM dual;         
    dbms_output.put_line('No Of rows '||sql%Rowcount);
    commit;
    end;

关于sql - Oracle如何计算在plsql block 中插入的总行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37563557/

相关文章:

仅当记录中有特定值时,MYSQL 才会进行重复键更新

sql - 为什么此 Azure SQL 存储过程无法执行?

sql - 非规范化 SQL 查询和组合列

oracle - 如何获得两个日期之间的小时差?

sql - Oracle 错误处理

sql - 无法连接到 sql server : SQL server Instance failure. (System.Data)

java - java环境是否改变NLS_DATE_FORMAT参数的值?

java - 在 Oracle ADF 中使用 EAR 文件设置应用程序

php - 如何使用 PHP PDO 运行 Transact-SQL

sql - 当PL SQL匿名 block 完成时,为什么没有输出?