解决方案 »

  1.   

    http://www.linuxidc.com/Linux/2012-10/72954.htm
    参考,上面链接是记录alter ddl语句的方法,稍加调整可以把rename的语句都提取出来
    然后再对语句进行解析就可以了
      

  2.   

    你的意思是得到那个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(可获得对象名称,修改后的值对象名称,但旧的无法获得修改前的新名称)。
      

  3.   

    修正下应该是ora_dict_obj_name吧
    触发器分别建立before和after两个,before触发器中获取的ora_dict_obj_name应该就是修改前的名称吧
    before和after分别提取前后的名称,然后配对得到,但是给我的感觉还不如直接解析语句来的容易
    如何进行配对,确实是个问题
      

  4.   

    如果没有更好的办法的话,好像是解析SQL会比创建两个触发器来获得新旧对象名称要好一些。谢谢了老兄。