找出作祟的TRIGGER

周五给一套SIT环境配置物化视图,但存在于视图名相同的表名,需要先把表改名后在创建视图,但却没那么顺利...


费了一点小周折终于搞定,记录一下解决的思路。


1.alter table old_table rename to new_table;

收到报错,从报错内容上看是没有DDL权限的错误,像是人为写的trigger,于是考虑想禁掉这个trigger,却苦于不知道trigger的名字


2.找trigger名,有两种思路,一是找到确切的trigger,二是遍历所有trigger找到可疑的trigger,在尝试禁用,显然第一种方法是可靠的


3.开启session级别的trace,然后执行alter命令修改表名


4.收到报错后关闭trace,并到udump小找到trace文件,在11g中udump默认与alterSID.log在一起


5.在trace中找到alter 那行,在那附近就可以看到trigger的代码


6.根据源码中的特殊语句,在dba_source中找到具体的trigger名


---------------------------------------------------全文完------------------------------------------------------------




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值