编译oracle失效的函数、存储过程、视图等
2010-11-12 10:32
531 查看
进行oracle开发时常常为不时失效的存储过程,函数等苦恼,于是下决心解决这个问题,东查西找,找到一个好东东,在基础上又修改了一下,问题终于被我解决了。
1。建立一个存储过程
2。在需要的时候执行,或者建立一个定时任务
定时执行
1。建立一个存储过程
CREATE OR REPLACE PROCEDURE TIMER_AUTO_RECOMPILE_OBJS AS CURSOR OBJECTS_LIST IS SELECT OBJECT_NAME, OBJECT_TYPE FROM USER_OBJECTS WHERE STATUS = 'INVALID'; BEGIN FOR V_OBJECT IN OBJECTS_LIST LOOP IF V_OBJECT.OBJECT_TYPE = 'PROCEDURE' THEN EXECUTE IMMEDIATE 'alter procedure ' || V_OBJECT.OBJECT_NAME || ' compile'; ELSEIF V_OBJECT.OBJECT_TYPE = 'FUNCTION' THEN EXECUTE IMMEDIATE 'alter function ' || V_OBJECT.OBJECT_NAME || ' compile'; ELSIF V_OBJECT.OBJECT_TYPE = 'VIEW' THEN EXECUTE IMMEDIATE 'alter view ' || V_OBJECT.OBJECT_NAME || ' compile'; ELSIF V_OBJECT.OBJECT_TYPE = 'MATERIALIZED VIEW' THEN EXECUTE IMMEDIATE 'alter materialized view ' || V_OBJECT.OBJECT_NAME || ' compile'; END IF; END LOOP; END;
2。在需要的时候执行,或者建立一个定时任务
exec dbms_job.submit(:job_id,'timer_auto_recompile_objs;',sysdate,'sysdate+1/24');
定时执行
相关文章推荐
- Oracle搜索编译有问题或者失效的存储过程,包,函数等
- Oracle 中重新编译无效的存储过程, 或函数、触发器等对象
- oracle编译存储过程提示表或视图不存在的问题分析
- oracle编译存储过程提示表或视图不存在的问题分析
- 手动 重编译存储过程、SQL语句、函数、触发器、视图
- mysql,sqlserver,oracle查看所有存储过程,函数,视图,触发器,表
- Oracle中重新编译无效的存储过程, 或函数、触发器等对象
- oracle 创建表,序列,索引,视图,触发器,函数,存储过程,定时器,包体
- Oracle创建和调用存储过程,函数,视图
- 编译Oracle所有失效的过程、视图等
- Oracle 中重新编译无效的存储过程, 或函数、触发器等对象(转)
- Oracle 10g管理存储过程——查询数据库中的视图、存储过程、函数
- Oracle 中重新编译无效的存储过程, 或函数、触发器等对象
- Oracle的存储过程、函数和触发器
- mysql查看所有存储过程,函数,视图,触发器,表,分页
- Oracle 导出、导入某用户所有数据(包括表、视图、存储过程...)
- java下实现调用oracle的存储过程和函数
- Oracle 存储过程定义和优点及与函数区别
- oracle调用存储过程和函数返回结果集
- Java代码调用Oracle的存储过程,存储函数和包