Oracle如何计算插入plsql块中的总行数
Posted
技术标签:
【中文标题】Oracle如何计算插入plsql块中的总行数【英文标题】:Oracle How to count total number of rows inserted in a plsql block 【发布时间】: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;
【问题讨论】:
【参考方案1】:dbms_output.put_line('No Of rows'||sql%Rowcount);
这将为您提供由 last 语句更新的总行数。因此,即使您以这种方式有 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;
【讨论】:
谢谢 - 我的网络中断了,所以我花了很长时间才回复 没问题。如果您还没有回答,也请接受之前提出的问题的答案。如果没有正确回答,请对答案发表评论,以便查看。谢谢!以上是关于Oracle如何计算插入plsql块中的总行数的主要内容,如果未能解决你的问题,请参考以下文章