重命名时的Oracle 12C审核触发器

重命名时的Oracle 12C审核触发器,oracle,triggers,audit,table-rename,Oracle,Triggers,Audit,Table Rename,我有一个用于源代码管理的审计触发器,我们跟踪所有oracle(12c)对象修改。如何在重命名中获得“新”对象名(无论是通过“alter”还是“rename”)?无论我在“ALTER或RENAME或DDL ON DATABASE”之前还是之后触发触发器,我都会在ORA_DICT_OBJ_name中看到“old”名称。您可以使用functionORA_SQL_TXT捕捉触发语句(通过functions out参数),然后提取新对象的名称 编辑: 我用ORA\u SQL\u TXT替换了ORA\u S

我有一个用于源代码管理的审计触发器,我们跟踪所有oracle(12c)对象修改。如何在重命名中获得“新”对象名(无论是通过“alter”还是“rename”)?无论我在“ALTER或RENAME或DDL ON DATABASE”之前还是之后触发触发器,我都会在ORA_DICT_OBJ_name中看到“old”名称。

您可以使用function
ORA_SQL_TXT
捕捉触发语句(通过functions out参数),然后提取新对象的名称

编辑:
我用
ORA\u SQL\u TXT替换了
ORA\u SQL\u TEXT

谢谢!我能做到这一点!如果ora_sysevent='RENAME',则声明n PLS_INTEGER;sql\u text sys.dbms\u standard.ora\u name\u list\t;开始n:=ora\U sql\U txt(sql\U文本);对于1..n循环中的i v_obj_original:=v_obj_original | | sql_text(i);端环;当其他人然后v|obj|u original时发生异常:='exception getting DDL:'| | SQLCODE | | |'-'| | SQLERRM | |'at'| | TO| CHAR(SYSDATE,'HH24:MI');结束;如果结束;