我想不计算我在数据库中插入的内容
以下查询返回一(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;
答案 0 :(得分:8)
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;
OR
如果要将数据插入到同一个表中,请使用这样的组合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;