Im create new trigger audit using store procedure cause want flexible column in the trigger audit
im using Oracle 12 C ..
CREATE OR REPLACE PROCEDURE DBADMIN.TEST3 (OUTPUT OUT SYS_REFCURSOR,
TABLE_NAME IN VARCHAR2)
IS
N NUMBER;
BEGIN
N := 0;
EXECUTE IMMEDIATE '
CREATE OR REPLACE TRIGGER DBADMIN.TA_EMPLOYEES3
AFTER INSERT OR DELETE OR UPDATE
ON DBADMIN.EMPLOYEES
FOR EACH ROW
DECLARE
SID VARCHAR2 (30);
BEGIN
SELECT SYS_CONTEXT ('' USERENV '', '' IP_ADDRESS '') INTO IP FROM DUAL;
SELECT SEQ#
INTO SID1
FROM v$session
WHERE audsid = (SELECT USERENV ('' SESSIONID '') FROM DUAL);
IF INSERTING
THEN
INSERT INTO DBADMIN.DBLOG_MONITORING_DETAIL2 (SID,
COLUMNS,
OLDVALUE,
NEWVALUE)
VALUES (SID1,
i.COLUMN_NAME,
'for row in (SELECT column_name from user_tab_columns where table_name=''EMPLOYEES'' loop
execute immediate '':old.row.column_name '';
end loop;
/
32 26 PLS-00103: Encountered the symbol "FOR"
i think im bad logic in my script .. can give me better logic or repair my script its better ?? .