【发布时间】:2019-06-24 15:54:41
【问题描述】:
我使用存储过程创建新的触发器审计,因为需要触发器审计中的灵活列
我正在使用 Oracle 12 C ..
创建或替换过程 DBADMIN.TEST3(输出 SYS_REFCURSOR,
VARCHAR2 中的表名)
是
N号码;
开始
N := 0;
立即执行'
创建或替换触发器 DBADMIN.TA_EMPLOYEES3
插入、删除或更新后
在 DBADMIN.EMPLOYEES 上
每一行
宣布
SID VARCHAR2 (30);
开始
SELECT SYS_CONTEXT ('' USERENV '', '' IP_ADDRESS '') INTO IP FROM DUAL;
选择序列#
进入 SID1
FROM v$会话
WHERE audsid = (SELECT USERENV ('' SESSIONID '') FROM DUAL);
如果插入
然后
插入 DBADMIN.DBLOG_MONITORING_DETAIL2(SID,
列,
旧值,
新价值)
值(SID1,
i.COLUMN_NAME,
'for row in (SELECT column_name from user_tab_columns where table_name=''EMPLOYEES'' 循环
立即执行 '':old.row.column_name '';
结束循环;
/
32 26 PLS-00103:遇到符号“FOR”
我认为我的脚本逻辑不好......可以给我更好的逻辑或更好地修复我的脚本吗? .
【问题讨论】:
标签: linux database oracle oracle12c