1、没有执行过select、insert、update、delete sql%rowcount为null
2、commit、rollback后 sql%rowcount为0
SQL> Declare
2 Type t Is Table Of dept%Rowtype;3 vt t;
4 Begin
5 If Sql%Rowcount Is Null Then
6 dbms_output.put_line('未执行dml操作');
7 Else
8 dbms_output.put_line('已执行dml操作');
9 End If;
10 --查询
11 Select * Bulk Collect Into vt From dept;
12 dbms_output.put_line(Sql%Rowcount);
13 Commit;
14 dbms_output.put_line(Sql%Rowcount);
15
16 --insert
17 Insert Into dept Values('50','研发部','北京');
18 dbms_output.put_line(Sql%Rowcount);
19 Rollback;
20 dbms_output.put_line(Sql%Rowcount);
21 --update
22 Update dept Set dname=dname ||'*';
23 dbms_output.put_line(Sql%Rowcount);
24 Rollback;
25 dbms_output.put_line(Sql%Rowcount);
26 --delete
27 Delete dept;
28 dbms_output.put_line(Sql%Rowcount);
29 Rollback;
30 dbms_output.put_line(Sql%Rowcount);
31 End;
32 /
未执行dml操作
4
0
1
0
4
0
4
0
PL/SQL procedure successfully completed
SQL>