ステートメントの効果を判断するために、いくつかの属性を使用できます。 SQL % FOUNDにはブール値があります。 少なくとも1つの行がINSERT、UPDATE、またはDELETEステートメントの影響を受けた場合、またはSELECT INTOステートメントが1つ以上の行を取得した場合、SQL % FOUNDはTRUEを返します。
次の匿名ブロックは、行を挿入し、その行が挿入された事実を表示します。
BEGIN
INSERT INTO emp (empno、ename、job、sal、deptno) 値 (
9001、'JONES' 、'CLERK '、850.00、40);
IF SQL % が見つかった
DBMS_OUTPUT.PUT_LINE (「行が挿入されました」);
エンドIF;
エンド;
行が挿入さ
れました
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);
エンド;
# rows updated: 1
SQL % NOTFOUNDはSQL % FOUNDの反対です。 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('行は更新されませんでした');
エンドIF;
エンド;
行が更新され
なかった