ロールバックしても出力できるログ

PRAGMA AUTONOMOUS_TRANSACTION と宣言すると、呼び出し元とは、別のトランザクションで実行される。

CREATE OR REPLACE PROCEDURE INVESTIGATE_LOGGER(
    MODULEID    IN  VARCHAR2,
    TEXT        IN  VARCHAR2
)
IS
    PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN

    insert into LOGTABLE
    (MODULEID, TEXT, LASTDATE)
    values(MODULEID, TEXT, SYSTIMESTAMP);

    COMMIT;
END;
/