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型で変数宣言されているものとします。