数据库中失效对象编译的方法教程
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇内容介绍了"数据库中失效对象编译的方法教程"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!----
千家信息网最后更新 2025年11月07日数据库中失效对象编译的方法教程
本篇内容介绍了"数据库中失效对象编译的方法教程"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
---------------------------------------------------------- DDL for Table RECOMPILE_LOG-------------------------------------------------------- CREATE TABLE "RECOMPILE_LOG" ( "RDATE" DATE, "ERRMSG" VARCHAR2(200 BYTE) ) ;---------------------------------------------------------- DDL for Table RECOMPILE_TYPE_INFO-------------------------------------------------------- CREATE TABLE "RECOMPILE_TYPE_INFO" ( "TYPE" VARCHAR2(30 BYTE), "PROCESS_MODE" VARCHAR2(30 BYTE), "BASE_TABLE" VARCHAR2(30 BYTE) ) ;Insert into EODA.RECOMPILE_TYPE_INFO (TYPE,PROCESS_MODE,BASE_TABLE) values ('TRIGGER','COMPILE','DBA_DEPENDENCIES');Insert into EODA.RECOMPILE_TYPE_INFO (TYPE,PROCESS_MODE,BASE_TABLE) values ('PROCEDURE','COMPILE','DBA_DEPENDENCIES');Insert into EODA.RECOMPILE_TYPE_INFO (TYPE,PROCESS_MODE,BASE_TABLE) values ('FUNCTION','COMPILE','DBA_DEPENDENCIES');Insert into EODA.RECOMPILE_TYPE_INFO (TYPE,PROCESS_MODE,BASE_TABLE) values ('PACKAGE','COMPILE','DBA_DEPENDENCIES');Insert into EODA.RECOMPILE_TYPE_INFO (TYPE,PROCESS_MODE,BASE_TABLE) values ('TYPE','COMPILE','DBA_DEPENDENCIES');Insert into EODA.RECOMPILE_TYPE_INFO (TYPE,PROCESS_MODE,BASE_TABLE) values ('INDEX','REBUILD ONLINE','DBA_INDEXES');---------------------------------------------------------- DDL for Procedure RECOMPILE_OBJECTS--------------------------------------------------------set define off; CREATE OR REPLACE EDITIONABLE PROCEDURE "RECOMPILE_OBJECTS" (RIO_OWNER VARCHAR2, RIO_OBJECT_NAME VARCHAR2) AS COMPILE_SQL VARCHAR2(500); P_OWNER VARCHAR2(30) := UPPER(RIO_OWNER); P_OBJECT_NAME VARCHAR2(30) := UPPER(RIO_OBJECT_NAME);BEGIN FOR RIO_TYPE IN (SELECT TYPE, PROCESS_MODE, BASE_TABLE FROM RECOMPILE_TYPE_INFO) LOOP IF RIO_TYPE.BASE_TABLE = 'DBA_DEPENDENCIES' THEN FOR DBA_DEP IN (SELECT OWNER, NAME FROM DBA_DEPENDENCIES WHERE TYPE = RIO_TYPE.TYPE AND REFERENCED_OWNER = P_OWNER AND REFERENCED_NAME = P_OBJECT_NAME) LOOP FOR DBA_OBJ IN (SELECT STATUS FROM DBA_OBJECTS WHERE OWNER = DBA_DEP.OWNER AND OBJECT_NAME = DBA_DEP.NAME) LOOP IF DBA_OBJ.STATUS = 'INVALID' THEN BEGIN COMPILE_SQL := 'ALTER ' || RIO_TYPE.TYPE || ' ' || DBA_DEP.OWNER || '.' || DBA_DEP.NAME || ' ' || RIO_TYPE.PROCESS_MODE; EXECUTE immediate COMPILE_SQL; EXCEPTION WHEN OTHERS THEN INSERT INTO recompile_log (rdate, errmsg) VALUES (sysdate, COMPILE_SQL); END; END IF; END LOOP; END LOOP; END IF; IF RIO_TYPE.BASE_TABLE = 'DBA_INDEXES' THEN FOR DBA_IND IN (SELECT OWNER, INDEX_NAME, PARTITIONED, STATUS FROM DBA_INDEXES WHERE TABLE_OWNER = P_OWNER AND TABLE_NAME = P_OBJECT_NAME) LOOP IF DBA_IND.PARTITIONED = 'NO' AND DBA_IND.STATUS = 'INVALID' THEN BEGIN COMPILE_SQL := 'ALTER ' || RIO_TYPE.TYPE || ' ' || DBA_IND.OWNER || '.' || DBA_IND.INDEX_NAME || ' ' || RIO_TYPE.PROCESS_MODE; EXECUTE immediate COMPILE_SQL; EXCEPTION WHEN OTHERS THEN INSERT INTO recompile_log (rdate, errmsg) VALUES (sysdate, COMPILE_SQL); END; END IF; IF DBA_IND.PARTITIONED = 'YES' THEN FOR IND_PAR IN (SELECT PARTITION_NAME, STATUS FROM DBA_IND_PARTITIONS WHERE INDEX_OWNER = DBA_IND.OWNER AND INDEX_NAME = DBA_IND.INDEX_NAME) LOOP IF IND_PAR.STATUS = 'UNUSABLE' THEN BEGIN COMPILE_SQL := 'ALTER ' || RIO_TYPE.TYPE || ' ' || DBA_IND.OWNER || '.' || DBA_IND.INDEX_NAME || ' PARTITION ' || IND_PAR.PARTITION_NAME || ' ONLINE'; EXECUTE immediate COMPILE_SQL; EXCEPTION WHEN OTHERS THEN INSERT INTO recompile_log (rdate, errmsg) VALUES (sysdate, COMPILE_SQL); END; END IF; END LOOP; END IF; END LOOP; END IF; END LOOP;END;/"数据库中失效对象编译的方法教程"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
对象
教程
数据
数据库
方法
编译
内容
更多
知识
实用
学有所成
接下来
困境
实际
情况
文章
案例
编带
网站
行业
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发实习生的工作内容
关于网络安全的英文手抄报
模式是数据库的模型
血小板基因数据库建库的目的
宜宾市公安局网络安全管理
部队有关网络安全的标题
网络安全区域如何分类
网络安全签名体制中
数据库两表并接
考研数据库原理复试看什么书
美国免费金融数据库
金天鹅软件显示数据库连接失败
数据库 入库审核
在数据库中怎样修改表的数据类型
魔兽世界单机版无服务器可用
Mac下的win可以装数据库吗
服务器硬件维保有前途吗
大庆市网络安全演练
黑龙江网络安全支撑
即墨区安卓软件开发系统
汇川互联网科技
数据库技术文案夏天
火车站免费网络安全吗
SQL数据库表拉出来
服务器运行中黑屏
Q_Dir连接服务器
数据库自动备份程序怎么启动
铁路网络安全八禁止十不准
jbpm4.4 数据库
连接vps数据库