EMP表在SCOTT用户下。用SCOTT/TIGER登录。
代码:
BEGIN
UPDATE EMP SET ENAME = 'SMITH' WHERE EMPNO = 7369;
DBMS_OUTPUT.put_line('SQL%ROWCOUNT = ' || SQL%ROWCOUNT);
IF SQL%ISOPEN THEN
DBMS_OUTPUT.put_line('SQL%ISOPEN');
ELSE
DBMS_OUTPUT.put_line('NOT SQL%ISOPEN');
END IF;
IF SQL%FOUND THEN
DBMS_OUTPUT.put_line('SQL%FOUND');
ELSE
DBMS_OUTPUT.put_line('NOT SQL%FOUND');
END IF;
IF SQL%NOTFOUND THEN
DBMS_OUTPUT.put_line('SQL%NOTFOUND');
ELSE
DBMS_OUTPUT.put_line('NOT SQL%NOTFOUND');
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.put_line('NO_DATA_FOUND');
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.put_line('TOO_MANY_ROWS');
END;
执行后输出:
SQL%ROWCOUNT = 1
NOT SQL%ISOPEN
SQL%FOUND
NOT SQL%NOTFOUND
%FOUND
指出了当PL/SQL代码最后从游标的结果集中获取记录时,找到了记录。
%NOTFOUND
指出了当PL/SQL代码最后从游标的结果集中获取记录时,结果集中没有记录。
%ROWCOUNT
返回当前时刻还没有从游标中获取的记录数量。
%ISOPEN
对于隐式游标而言,属性%ISOPEN的值总是false,这是因为隐式游标在DML语句执行时打开,结束时就立即关闭。