当前位置: 代码迷 >> Oracle开发 >> 如果批量编译失效存储过程解决办法
  详细解决方案

如果批量编译失效存储过程解决办法

热度:100   发布时间:2016-04-24 07:38:44.0
如果批量编译失效存储过程
现在发现有大量存储过程失效,不可能一个一个编译,有什么办法可以批量编译?

------解决方案--------------------
如果在服务器本机上,可以在sqlplus中以sysdba身份登陆执行rdbms\admin\目录下的utlrp.sql脚本。也可以自己写个脚本,从user_objects中查出所有invalid的存储过程名,然后用动态sql对那些过程重新编译(alter procedure XXX recompile)。

------解决方案--------------------
select 'ALTER PROCEDURE '||object_name|| ' COMPILE; ' as s from user_objects where object_type= 'PROCEDURE ' and status <> 'VALID ';

把得到的结果拿来执行就可以了.
  相关解决方案