你的意思是得到那个DDL的执行语句(SQL脚本)然后,自己写方法提取执行脚本字符串之中的字符。例如上面: alter table Old_tab rename to New_tab ;用substring等函数去截图出来? 然而,我想知道,是否有更好的变法,即有没有oracle自带的如DML触发器一样功能,用:new.COlName得到新值,用:Old.column得到旧值。在DDL触发器之中,用ora_dict_obj_type(可获得对象类型),ora_dict_obj_obj(可获得对象名称,修改后的值对象名称,但旧的无法获得修改前的新名称)。
参考,上面链接是记录alter ddl语句的方法,稍加调整可以把rename的语句都提取出来
然后再对语句进行解析就可以了
alter table Old_tab rename to New_tab ;用substring等函数去截图出来?
然而,我想知道,是否有更好的变法,即有没有oracle自带的如DML触发器一样功能,用:new.COlName得到新值,用:Old.column得到旧值。在DDL触发器之中,用ora_dict_obj_type(可获得对象类型),ora_dict_obj_obj(可获得对象名称,修改后的值对象名称,但旧的无法获得修改前的新名称)。
触发器分别建立before和after两个,before触发器中获取的ora_dict_obj_name应该就是修改前的名称吧
before和after分别提取前后的名称,然后配对得到,但是给我的感觉还不如直接解析语句来的容易
如何进行配对,确实是个问题