可使用多個屬性來確定命令的效果。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;
Row has been inserted
SQL%ROWCOUNT 提供受 INSERT、UPDATE、DELETE 或 SELECT INTO 命令影響的行數。SQL%ROWCOUNT 值作為 BIGINT 數據類型返回。以下示例更新剛插入的行并顯示 SQL%ROWCOUNT。
BEGIN
UPDATE emp SET hiredate = '03-JUN-07' WHERE empno = 9001;
DBMS_OUTPUT.PUT_LINE('# rows updated: ' || SQL%ROWCOUNT);
END;
# rows updated: 1
SQL%NOTFOUND 與 SQL%FOUND 相反。如果沒有行受 INSERT、UPDATE 或 DELETE 命令影響或 SELECT INTO 命令沒有檢索到行,則 SQL%NOTFOUND 返回 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;
No rows were updated