oracle 重新编译用户无效对象
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,oracle sys用户无效对象select owner,object_name, replace(object_type,' ','') object_type,to_char(created,'y
千家信息网最后更新 2026年11月02日oracle 重新编译用户无效对象
oracle sys用户无效对象select owner,object_name, replace(object_type,' ','') object_type,to_char(created,'yyyy-mm-dd') as created,to_char(last_ddl_time,'yyyy-mm-dd') as last_ddl_time,statusfrom dba_objects where status='INVALID' and owner='SYS';OWNER OBJECT_NAME OBJECT_TYPE CREATED LAST_DDL_TIME STATUS------ --------------------- ------------- ----------- -------------- ----------SYS ALL_TAB_STATISTICS VIEW 2011-09-17 2012-05-16 INVALIDSYS USER_TAB_STATISTICS VIEW 2011-09-17 2012-05-16 INVALIDSYS ALL_IND_STATISTICS VIEW 2011-09-17 2012-05-16 INVALIDSYS USER_IND_STATISTICS VIEW 2011-09-17 2012-05-16 INVALIDSYS VALIDATE_ORDIM PROCEDURE 2011-09-17 2012-05-16 INVALIDSYS DBMS_CUBE_ADVISE PACKAGEBODY 2011-09-17 2012-05-16 INVALIDSYS DBMS_CUBE PACKAGEBODY 2011-09-17 2012-05-16 INVALID方法1:手动重新rebuiltSQL>alter view sys.ALL_TAB_STATISTICS compile; SQL>alter view sys.USER_TAB_STATISTICS compile; SQL>alter view ALL_IND_STATISTICS compile; SQL>alter view sys.USER_IND_STATISTICS compile;SQL>alter procedure sys.VALIDATE_ORDIM compile;SQL>alter package DBMS_CUBE_ADVISE compile body; SQL>alter package DBMS_CUBE compile body;方法2:oracle用户下执行$cd $ORACLE_HOME/rdbms/admin$sqlplus / as sysdbaSQL>@utlprp.sql编译完成后,再次查看SQL> select owner,object_name 2 , replace(object_type,' ','') object_type 3 ,to_char(created,'yyyy-mm-dd') as created 4 ,to_char(last_ddl_time,'yyyy-mm-dd') as last_ddl_time, 5 status 6 from dba_objects where status='INVALID' and owner='SYS';no rows selected 方法3:以下是一个转帖的方法 --创建自动编译失效过程事务记录表declare tabcnt integer := 0;begin select count(*) into tabcnt from dba_tables where table_name='RECOMPILE_LOG'; if tabcnt = 0 then execute immediate 'create table recompile_log(rdate date,errmsg varchar2(200))'; end if;end;/ --创建编译失效对象的存储过程create or replace procedure recompile_invalid_objects as str_sql varchar2(200); --中间用到的sql语句 p_owner varchar2(20); --所有者名称,即SCHEMA errm varchar2(200); --中间错误信息begin /*****************************************************/ p_owner := 'owner';/***用户名*************************/ /*****************************************************/ insert into recompile_log(rdate, errmsg) values(sysdate,'time to recompile invalid objects'); --编译失效存储过程 for invalid_procedures in (select object_name from all_objects where status = 'INVALID' and object_type = 'PROCEDURE' and owner=upper(p_owner)) loop str_sql := 'alter procedure ' ||invalid_procedures.object_name || ' compile'; begin execute immediate str_sql; exception When Others Then begin errm := 'error by obj:'||invalid_procedures.object_name||' '||sqlerrm; insert into recompile_log(rdate, errmsg) values(sysdate,errm); end; end; end loop; --编译失效函数 for invalid_functions in (select object_name from all_objects where status = 'INVALID' and object_type = 'FUNCTION' and owner=upper(p_owner)) loop str_sql := 'alter function ' ||invalid_functions.object_name || ' compile'; begin execute immediate str_sql; exception When Others Then begin errm := 'error by obj:'||invalid_functions.object_name||' '||sqlerrm; insert into recompile_log(rdate, errmsg) values(sysdate,errm); end; end; end loop; --编译失效包 for invalid_packages in (select object_name from all_objects where status = 'INVALID' and object_type = 'PACKAGE' and owner=upper(p_owner)) loop str_sql := 'alter package ' ||invalid_packages.object_name || ' compile'; begin execute immediate str_sql; exception When Others Then begin errm := 'error by obj:'||invalid_packages.object_name||' '||sqlerrm; insert into recompile_log(rdate, errmsg) values(sysdate,errm); end; end; end loop; --编译失效类型 for invalid_types in (select object_name from all_objects where status = 'INVALID' and object_type = 'TYPE' and owner=upper(p_owner)) loop str_sql := 'alter type ' ||invalid_types.object_name || ' compile'; begin execute immediate str_sql; exception When Others Then begin errm := 'error by obj:'||invalid_types.object_name||' '||sqlerrm; insert into recompile_log(rdate, errmsg) values(sysdate,errm); end; end; end loop; --编译失效索引 for invalid_indexs in (select object_name from all_objects where status = 'INVALID' and object_type = 'INDEX' and owner=upper(p_owner)) loop str_sql := 'alter index ' ||invalid_indexs.object_name || ' rebuild'; begin execute immediate str_sql; exception When Others Then begin errm := 'error by obj:'||invalid_indexs.object_name||' '||sqlerrm; insert into recompile_log(rdate, errmsg) values(sysdate,errm); end; end; end loop; --编译失效触发器 for invalid_triggers in (select object_name from all_objects where status = 'INVALID' and object_type = 'TRIGGER' and owner=upper(p_owner)) loop str_sql := 'alter trigger ' ||invalid_triggers.object_name || ' compile'; begin execute immediate str_sql; exception When Others Then begin errm := 'error by obj:'||invalid_triggers.object_name||' '||sqlerrm; insert into recompile_log(rdate, errmsg) values(sysdate,errm); end; end; end loop; end;/ --创建任务计划,每天早上8点整执行该任务,且保证此任务有且只有一个declare jobcnt integer :=0; job_recompile number := 0; str_sql varchar2(200);begin select count(*) into jobcnt from all_jobs where what = 'recompile_invalid_objects;' and broken = 'N'; if jobcnt > 0 then for jobs in (select job from all_jobs where what = 'recompile_invalid_objects;' and broken = 'N') loop str_sql := 'begin dbms_job.remove('||jobs.job||'); end;'; begin execute immediate str_sql; exception When Others Then null; end; end loop; end if; --创建任务计划 dbms_job.submit(job_recompile,'recompile_invalid_objects;',sysdate,'TRUNC(SYSDATE + 1) + 8/24'); --启动任务计划 dbms_job.run(job_recompile);end;/
编译
任务
方法
用户
过程
对象
存储
事务
信息
再次
函数
只有
名称
所有者
手动
用户名
类型
索引
触发器
记录表
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海卓越科技互联网
互联网与科技金融数据
重庆互联网络科技
互联网金融 科技金融
贷财互联网科技
互联网科技网站
互联网科技宣传片
互联网科技公司招聘
江苏南京365互联网科技
隆华科技工业互联网
宁波青枫互联网科技有限公司
广州慧亚互联网科技怎么样
顶级互联网科技成果有哪些
互联网大会黑科技排名
宜昌元轩互联网科技有限公司
启辰互联网科技
昆明中奇联合互联网科技
互联网高科技行业有哪些企业
北京品多多互联网科技有限公司
华人运通互联网科技公司
赫美联合互联网科技
互联网科技宣传片
科技与互联网哪个更好
重庆互联网医院沙龙医盟信息科技
岳阳华臻互联网科技有限公司
互联网保险科技创业
电子商务与互联网科技的关系
产业互联网科技服务公司
互联网领先科技宣传片
黑龙江互联网科技公司