我想要计算我在数据库中插入的数量
下面的查询返回一(1),虽然2行确实更新
begin Insert into APPLICATIONS (ID,ALIAS,NAME,STATUS) values (1000000386,'BB','Branch Budgets','I')); Insert into APPLICATIONS (ID,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个输出语句,每个语句在插入语句之后,或使用变量并添加更新的行数,然后最后显示它.
declare v_count integer; begin v_count:=0; Insert into APPLICATIONS (ID,STATUS) values (1000000386,'I'); v_count:= sql%Rowcount; Insert into APPLICATIONS (ID,STATUS) values (1000000257,'I'); v_count:= v_count+ sql%Rowcount; dbms_output.put_line('No Of rows '||v_count); commit; end;
要么
如果要将数据插入到同一个表中,请使用这样的组合插入语句.
这将返回2行.
begin INSERT ALL into APPLICATIONS (ID,STATUS) values (1000000386,'I') into APPLICATIONS (ID,STATUS) values (1000000257,'I') SELECT * FROM dual; dbms_output.put_line('No Of rows '||sql%Rowcount); commit; end;