以下のようにトリガー TEST_TRIG を作成しました。
CREATE TRIGGER TEST_TRIG
AFTER INSERT ON TEST_TABLE
FOR EACH ROW
DECLARE
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
TEST_PROC();
END;
プロシージャ TEST_PROC コード:
create or replace
PROCEDURE TEST_PROC
AS
BEGIN
EXECUTE IMMEDIATE 'truncate table TEST_FINAL';
INSERT INTO TEST_FINAL select * from TEST_TABLE;
commit;
END;
最初に、TRIGGER TEST_TRIG を無効にして、TEST_TABLE にレコードを挿入し、PROCEDURE TEST_PROC を手動で実行しました。
出力: TEST_FINAL から TEST_TABLE に挿入したものと同じレコードを取得できました。
これらのレコードを両方のテーブルからフラッシュし、トリガー TEST_TRIG を有効にしました。
TEST_TABLEにレコードを挿入してコミットすると、TEST_FINALテーブルにレコードが見つかりませんでした...エラーメッセージも表示されません!!!
トリガーが発射されたかどうかを知りたいですか?