数据库中失效对象编译的方法教程
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇内容介绍了"数据库中失效对象编译的方法教程"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!----
千家信息网最后更新 2025年01月20日数据库中失效对象编译的方法教程
本篇内容介绍了"数据库中失效对象编译的方法教程"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
---------------------------------------------------------- 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安全错误
数据库的锁怎样保障安全
网络安全的海报下载
数据库安全网关系统
恩泽互联网科技有限公司招聘
馆陶软件开发
网络安全法 持证上岗
二手服务器前景如何
研发部网络安全管理
LUM数据库技术技巧
软件开发几年摊销
维护政治经济社会网络安全
浦东新区本地网络技术售后服务
全国网络安全教育培训
前端数据库怎么分析
激活苹果的应用与数据库
家用 智能 管理服务器
管理员身份启动服务器
工业图控系统软件开发企业
第一台服务器
我的世界国际服手机服务器教学
pl数据库修改密码
流媒体平台服务器搭建
新氧科技与美国互联网
我的世界服务器插件指令bug
富国互联网科技是什么
浪潮软件 服务器
山大网络安全研究所所长
数据库id自增是否可以设置
流媒体服务器如何搭建
分布式数据库和云计算构架研究
数据库字段改了自动生成代码