与SQL%FOUND的返回值相反
l
NULL 如果没有SELECT或DML运行
l
FALSE 如果SELECT或DML返回或影响了一行或多行
l
TRUE 其他
该属性对PL/SQL中的SELECT INTO语句不起作用,因为调用集合函数的SELECT INTO
总会有返回值(有时会为0),所以SQL%NOTFOUND始终为FALSE。
DROP TABLE dept_temp;
CREATE TABLE dept_temp AS SELECT * FROM departments;
CREATE OR REPLACE PROCEDURE P (dept_no NUMBER) AS
BEGIN
DELETE FROM dept_temp
WHERE department_id = dept_no;
IF SQL%NOTFOUND THEN
DBMS_OUTPUT.PUT_LINE ('Delete succeeded for department number ' || dept_no);
ELSE
DBMS_OUTPUT.PUT_LINE ('No department number ' || dept_no);
END IF;
END;
BEGIN
p(270);
p(400);
END;
--Result:
--Delete succeeded for department number 270
GBase 8s PL/SQL手册
南大通用数据技术股份有限公司
- 97 -
--No department number 400