【问题标题】:Oracle How to count total number of rows inserted in a plsql blockOracle如何计算插入plsql块中的总行数
【发布时间】:2016-06-01 08:39:31
【问题描述】:

我想计算我在数据库中插入的次数

虽然有 2 行确实更新了,但下面的查询返回一 (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;

【问题讨论】:

    标签: sql oracle plsql


    【解决方案1】:
    dbms_output.put_line('No Of rows'||sql%Rowcount);
    

    这将为您提供由 last 语句更新的总行数。因此,即使您以这种方式有 10 个插入语句,您也将始终得到 1sql%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;
    

    【讨论】:

    • 谢谢 - 我的网络中断了,所以我花了很长时间才回复
    • 没问题。如果您还没有回答,也请接受之前提出的问题的答案。如果没有正确回答,请对答案发表评论,以便查看。谢谢!
    猜你喜欢
    • 2020-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    相关资源
    最近更新 更多