久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

數據庫中失效對象編譯的方法教程

170次閱讀
沒有評論

共計 3517 個字符,預計需要花費 9 分鐘才能閱讀完成。

本篇內容介紹了“數據庫中失效對象編譯的方法教程”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

--------------------------------------------------------
-- 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;
/

“數據庫中失效對象編譯的方法教程”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-20發表,共計3517字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 邵阳市| 蚌埠市| 余江县| 屯门区| 延边| 五大连池市| 乾安县| 乐昌市| 南平市| 察隅县| 泸西县| 南汇区| 沙河市| 邵东县| 克拉玛依市| 烟台市| 屯昌县| 大厂| 开原市| 双鸭山市| 尉氏县| 闻喜县| 平果县| 八宿县| 栾川县| 探索| 石柱| 普兰县| 无锡市| 太仆寺旗| 乐亭县| 靖宇县| 石首市| 新兴县| 朝阳区| 南川市| 黄浦区| 航空| 宜州市| 阜宁县| 临沧市|