sqlrowcount
使用虚拟游标来查询执行操作的结果,如下
--一般执行updateinsertdelete都会有相应的影响行数,此时可以使用虚拟游标来查询操作结果
updatetable_namesetfield_name='xxx'where...
--执行后,使用
dbms_output.put_line('更新行数为:'||sql%rowcount);
另外:虚拟游标还有
%FOUND表示记录影响至少为一条
%NOTFOUND表示没有记录影响,即无更新
有问题请追问,希望可以帮到你
② SQL查询语句怎样限定返回结果集的行数
1、创建测试表,create table test_rows(id number, value varchar(200));
③ oracle中的sql%rowcount是啥意思
你好,这个是oracle的语法
sql%rowcount用于记录修改的条数,必须放在一个更新或者删除等修改类语句后面执行,select语句用于查询的话无法使用,
当你执行多条修改语句时,按照sql%rowcount 之前执行的最后一条语句修改数为准。
④ oracle PLSQL sql%rowcount的几点疑问
1. v_count1 v_coun2 只是变量而已,后面的number(3)表示精度,该变量可以接收3位数以内的数字 超过则会报错,一般情况下直接写number更好一些,反而不容易出现错误。
2.sql%rowcount用于记录修改的条数,就如你在sqlplus下执行delete from之后提示已删除xx行一样, 这个参数必须要在一个修改语句和commit之间放置,否则你就得不到正确的修改行数。
例如:
SQL> declare n number;
2 begin
3 insert into test_a select level lv from al connect by level<500;
4 n:=sql%rowcount;
5 commit;
6 dbms_output.put_line(n);
7 end;
8 /
499
PL/SQL procere successfully completed.
SQL> declare n number;
2 begin
3 insert into test_a select level lv from al connect by level<500;
4 commit;
5 n:=sql%rowcount;
6 dbms_output.put_line(n);
7 end;
8 /
0
PL/SQL procere successfully completed.
3.是最后一个select的条数。 要统计所有的,可以使用三个变量接收sql%rowcount,然后相加即可,不过貌似直接select的写法无法使用sql%rowcount。