HOME >> Tips >> Oracle Tips >> SQL

PL/SQL で直前に実行したSQLの結果行数を取得する方法

 
文書番号:20675

・直前に実行したSQLの結果行数を取得する


--UPDATE コマンドを実行
UPDATE テーブルA
SET    xxx
WHERE  条件式

--実行結果件数を取得
RESULT_COUNT = SQL%ROWCOUNT;

--結果が0件の場合の処理
IF RESULT_COUNT = 0 THEN

    ・・・

END IF;
上記例は「UPDATE」コマンドですが、「INSERT」や「DELETE」コマンドの後でもその実行結果件数を取得することができます。

--INSERT コマンドを実行
INSERT INTO テーブルA
SELECT *
FROM   テーブルB
WHERE  条件式

--実行結果件数を取得
RESULT_COUNT = SQL%ROWCOUNT;

--結果をログ出力
INSERT INTO ログ
VALUES (RESULT_COUNT);
※RESULT_COUNT は NUMBER型で変数宣言されているものとします。