语句属性 (PL/SQL)
SQL%FOUND、SQL%NOTFOUND 和 SQL%ROWCOUNT 是可用于确定 SQL 语句的影响的 PL/SQL 属性。
- SQL%FOUND 属性包含一个布尔值,如果至少一行受 INSERT、UPDATE 或 DELETE 语句影响或者 SELECT INTO
语句已检索到一行,那么此属性返回 TRUE。 以下示例演示了一个匿名块,在此块中,插入一行并显示状态消息。
BEGIN INSERT INTO emp (empno,ename,job,sal,deptno) VALUES (9001, 'JONES', 'CLERK', 850.00, 40); IF SQL%FOUND THEN DBMS_OUTPUT.PUT_LINE('Row has been inserted'); END IF; END; - SQL%NOTFOUND 属性包含一个布尔值,如果没有任何行受 INSERT、UPDATE 或 DELETE 语句影响或者 SELECT INTO 语句未检索到任何行,那么此属性返回 TRUE。 例如:
BEGIN UPDATE emp SET hiredate = '03-JUN-07' WHERE empno = 9000; IF SQL%NOTFOUND THEN DBMS_OUTPUT.PUT_LINE('No rows were updated'); END IF; END; - SQL%ROWCOUNT 属性包含整数值,此值表示受 INSERT、UPDATE 或 DELETE 语句影响的行数。 例如:
BEGIN UPDATE emp SET hiredate = '03-JUN-07' WHERE empno = 9001; DBMS_OUTPUT.PUT_LINE('# rows updated: ' || SQL%ROWCOUNT); END;