This post is also available in: English
Since 2017 I am quarterly writing a post dissecting the changes implemented by Oracle CPUs so we can understand better the modifications implemented by Oracle in our Databases.
To check previous changes, follow the links below:
- Dissecting 171017 BP, PSU, RU and RUR
- Dissecting 180116 BP, PSU, RU and RUR
- Dissecting 180417 BP, PSU, RU and RUR
- Dissecting 180717 BP, PSU, RU and RUR
So what oracle internal objects were changed in October 2018 - 181016?
VERSION PATCH OWNER TYPE TOTAL ---------- --------------- ---------- --------------- ---------- 12.1.0.2 BP SYS PACKAGE 1 12.1.0.2 BP SYS PACKAGE BODY 5 12.1.0.2 BP SYS VIEW 3 12.1.0.2 BP SYSTEM FUNCTION 1 12.1.0.2 PSU SYS PACKAGE BODY 2 12.1.0.2 PSU & BP SYS PACKAGE BODY 1 12.2.0.1 JUL2018RUR DVSYS TYPE 5 12.2.0.1 JUL2018RUR SYS PACKAGE BODY 6 12.2.0.1 RU SYS PACKAGE 1 12.2.0.1 RU SYS PACKAGE BODY 3 18.0.0.0 18.2RUR SYS PACKAGE 2 18.0.0.0 18.2RUR SYS PACKAGE BODY 1 18.0.0.0 18.3RUR SYS PACKAGE 2 18.0.0.0 18.3RUR SYS PACKAGE BODY 1 18.0.0.0 RU CTXSYS PACKAGE BODY 1 18.0.0.0 RU SYS PACKAGE 4 18.0.0.0 RU SYS PACKAGE BODY 6 18.0.0.0 RU SYS PROCEDURE 2
P.S: Nothing was changed for 11.2 in Oracle objects.
And created?
VERSION PATCH OWNER TYPE TOTAL ---------- --------------- ---------- --------------- ---------- 12.1.0.2 BP SYSTEM FUNCTION 1 12.1.0.2 BP SYSTEM TYPE 2
P.S: Nothing was added for 11.2 / 12.2 / 18 in Oracle objects.
So which are exactly the objects modified by 181016?
VERSION PATCH OWNER TYPE NAME ACTION ---------- --------------- ---------- --------------- ------------------------------ ------ 12.1.0.2 BP SYSTEM FUNCTION LOGMNR$GSBA_GG_TABF_PUBLIC NEW 12.1.0.2 BP SYSTEM TYPE LOGMNR$GSBA_GG_REC NEW 12.1.0.2 BP SYSTEM TYPE LOGMNR$GSBA_GG_RECS NEW 12.1.0.2 BP SYS PACKAGE DBMS_BACKUP_RESTORE MOD 12.1.0.2 BP SYS PACKAGE BODY DBMS_BACKUP_RESTORE MOD 12.1.0.2 BP SYS PACKAGE BODY DBMS_STATS MOD 12.1.0.2 BP SYS PACKAGE BODY LOGMNR_DICT_CACHE MOD 12.1.0.2 BP SYS VIEW LOGSTDBY_RU_UNSUPPORT_TAB_12_1 MOD 12.1.0.2 BP SYS VIEW LOGSTDBY_SUPPORT_TAB_12_1 MOD 12.1.0.2 BP SYS VIEW LOGSTDBY_UNSUPPORT_TAB_12_1 MOD 12.1.0.2 BP SYSTEM FUNCTION LOGMNR$TAB_GG_TABF_PUBLIC MOD 12.1.0.2 PSU & BP SYS PACKAGE BODY DBMS_AQADM_SYS MOD 12.1.0.2 PSU & BP SYS PACKAGE BODY DBMS_PRVTAQIM MOD 12.1.0.2 PSU & BP SYS PACKAGE BODY DBMS_RCVMAN MOD 12.2.0.1 JUL2018RUR DVSYS TYPE SYS_YOID0000072649$ MOD 12.2.0.1 JUL2018RUR DVSYS TYPE SYS_YOID0000072661$ MOD 12.2.0.1 JUL2018RUR DVSYS TYPE SYS_YOID0000072667$ MOD 12.2.0.1 JUL2018RUR DVSYS TYPE SYS_YOID0000072694$ MOD 12.2.0.1 JUL2018RUR DVSYS TYPE SYS_YOID0000072697$ MOD 12.2.0.1 JUL2018RUR SYS PACKAGE BODY DBMS_XSTREAM_ADM_INTERNAL MOD 12.2.0.1 JUL2018RUR SYS PACKAGE BODY DBMS_XSTREAM_ADM_UTL MOD 12.2.0.1 JUL2018RUR SYS PACKAGE BODY DBMS_XSTREAM_AUTH_IVK MOD 12.2.0.1 JUL2018RUR SYS PACKAGE BODY DBMS_XSTREAM_GG_INTERNAL MOD 12.2.0.1 JUL2018RUR SYS PACKAGE BODY DBMS_XSTREAM_UTL_IVK MOD 12.2.0.1 RU SYS PACKAGE DBMS_RCVMAN MOD 12.2.0.1 RU SYS PACKAGE BODY DBMS_QOPATCH MOD 12.2.0.1 RU SYS PACKAGE BODY DBMS_STATS MOD 12.2.0.1 RU & JUL2018RUR SYS PACKAGE BODY DBMS_RCVMAN MOD 18.0.0.0 RU CTXSYS PACKAGE BODY DRIUTL MOD 18.0.0.0 RU SYS PACKAGE DBMS_ISCHED MOD 18.0.0.0 RU SYS PACKAGE DBMS_RCVMAN MOD 18.0.0.0 RU SYS PACKAGE BODY DBMS_ISCHED MOD 18.0.0.0 RU SYS PACKAGE BODY DBMS_QOPATCH MOD 18.0.0.0 RU SYS PACKAGE BODY DBMS_REGISTRY MOD 18.0.0.0 RU SYS PACKAGE BODY DBMS_SCHEDULER MOD 18.0.0.0 RU SYS PACKAGE BODY DBMS_STATS MOD 18.0.0.0 RU SYS PROCEDURE DBMS_FEATURE_ACTIVE_DATA_GUARD MOD 18.0.0.0 RU SYS PROCEDURE SCHEDULER$_JOB_EVENT_HANDLER MOD 18.0.0.0 RU & 18.3RUR & SYS PACKAGE DBMS_BACKUP_RESTORE MOD 18.2RUR 18.0.0.0 RU & 18.3RUR & SYS PACKAGE DBMS_REGISTRY MOD 18.2RUR 18.0.0.0 RU & 18.3RUR & SYS PACKAGE BODY DBMS_RCVMAN MOD 18.2RUR
What changed for each? (click to see the changes)
- 12.1.0.2
- SYS.DBMS_BACKUP_RESTORE - PACKAGE 12cR1 (BP)
- SYS.DBMS_AQADM_SYS - PACKAGE BODY 12cR1 (PSU & BP)
- SYS.DBMS_BACKUP_RESTORE - PACKAGE BODY 12cR1 (BP)
- SYS.DBMS_PRVTAQIM - PACKAGE BODY 12cR1 (BP)
- SYS.DBMS_PRVTAQIM - PACKAGE BODY 12cR1 (PSU)
- SYS.DBMS_RCVMAN - PACKAGE BODY 12cR1 (PSU)
- SYS.DBMS_RCVMAN - PACKAGE BODY 12cR1 (BP)
- SYS.DBMS_STATS - PACKAGE BODY 12cR1 (BP)
- SYS.LOGMNR_DICT_CACHE - PACKAGE BODY 12cR1 (BP)
- SYS.LOGSTDBY_RU_UNSUPPORT_TAB_12_1 - VIEW 12cR1 (BP)
- SYS.LOGSTDBY_SUPPORT_TAB_12_1 - VIEW 12cR1 (BP)
- SYS.LOGSTDBY_UNSUPPORT_TAB_12_1 - VIEW 12cR1 (BP)
- SYSTEM.LOGMNR$TAB_GG_TABF_PUBLIC - FUNCTION 12cR1 (BP)
- 12.2.0.1
- DVSYS.SYS_YOID0000072649$ - TYPE 12cR2 (JUL2018RUR)
- DVSYS.SYS_YOID0000072661$ - TYPE 12cR2 (JUL2018RUR)
- DVSYS.SYS_YOID0000072667$ - TYPE 12cR2 (JUL2018RUR)
- DVSYS.SYS_YOID0000072694$ - TYPE 12cR2 (JUL2018RUR)
- DVSYS.SYS_YOID0000072697$ - TYPE 12cR2 (JUL2018RUR)
- SYS.DBMS_RCVMAN - PACKAGE 12cR2 (RU)
- SYS.DBMS_QOPATCH - PACKAGE BODY 12cR2 (RU)
- SYS.DBMS_RCVMAN - PACKAGE BODY 12cR2 (JUL2018RUR)
- SYS.DBMS_RCVMAN - PACKAGE BODY 12cR2 (RU)
- SYS.DBMS_STATS - PACKAGE BODY 12cR2 (RU)
- SYS.DBMS_XSTREAM_ADM_INTERNAL - PACKAGE BODY 12cR2 (JUL2018RUR)
- SYS.DBMS_XSTREAM_ADM_UTL - PACKAGE BODY 12cR2 (JUL2018RUR)
- SYS.DBMS_XSTREAM_AUTH_IVK - PACKAGE BODY 12cR2 (JUL2018RUR)
- SYS.DBMS_XSTREAM_GG_INTERNAL - PACKAGE BODY 12cR2 (JUL2018RUR)
- SYS.DBMS_XSTREAM_UTL_IVK - PACKAGE BODY 12cR2 (JUL2018RUR)
- 18.0.0.0
- CTXSYS.DRIUTL - PACKAGE BODY 18c (RU)
- SYS.DBMS_BACKUP_RESTORE - PACKAGE 18c (18.2RUR)
- SYS.DBMS_BACKUP_RESTORE - PACKAGE 18c (RU)
- SYS.DBMS_BACKUP_RESTORE - PACKAGE 18c (18.3RUR)
- SYS.DBMS_ISCHED - PACKAGE 18c (RU)
- SYS.DBMS_RCVMAN - PACKAGE 18c (RU)
- SYS.DBMS_REGISTRY - PACKAGE 18c (18.2RUR)
- SYS.DBMS_REGISTRY - PACKAGE 18c (RU)
- SYS.DBMS_REGISTRY - PACKAGE 18c (18.3RUR)
- SYS.DBMS_ISCHED - PACKAGE BODY 18c (RU)
- SYS.DBMS_QOPATCH - PACKAGE BODY 18c (RU)
- SYS.DBMS_RCVMAN - PACKAGE BODY 18c (18.3RUR)
- SYS.DBMS_RCVMAN - PACKAGE BODY 18c (18.2RUR)
- SYS.DBMS_RCVMAN - PACKAGE BODY 18c (RU)
- SYS.DBMS_REGISTRY - PACKAGE BODY 18c (RU)
- SYS.DBMS_SCHEDULER - PACKAGE BODY 18c (RU)
- SYS.DBMS_STATS - PACKAGE BODY 18c (RU)
- SYS.DBMS_FEATURE_ACTIVE_DATA_GUARD - PROCEDURE 18c (RU)
- SYS.SCHEDULER$_JOB_EVENT_HANDLER - PROCEDURE 18c (RU)
Changed Objects
P.S:
> = Added Lines
< = Removed Lines
12.1.0.2
8242a8243,8248 > > FUNCTION createTempXmlFile > RETURN varchar2; > -- This procedure returns a temporary filename. > -- The temporary filename is derived from ?/dbs location. >
2804c2804,2815 < TMP_STR := NLS_UPPER(LTRIM(RTRIM(SORT_TAB(I)))); --- > > > > > > > > > > > > TMP_STR := NLS_UPPER(LTRIM(RTRIM(SORT_TAB(I))), 'nls_sort=binary');
9045a9046,9063 > > > FUNCTION KRBI_CREATE_XML RETURN VARCHAR2; > PRAGMA INTERFACE (C, KRBI_CREATE_XML); > > FUNCTION CREATETEMPXMLFILE RETURN VARCHAR2 IS > FNAME VARCHAR2(1024); > BEGIN > ICDSTART(214); > FNAME := KRBI_CREATE_XML; > ICDFINISH; > RETURN FNAME; > EXCEPTION > WHEN OTHERS THEN > ICDFINISH; > RAISE; > END; >
1714c1714,1725 < TMP_STR := NLS_UPPER(LTRIM(RTRIM(SORT_TAB(I)))); --- > > > > > > > > > > > > TMP_STR := NLS_UPPER(LTRIM(RTRIM(SORT_TAB(I))), 'nls_sort=binary');
1706c1706,1717 < TMP_STR := NLS_UPPER(LTRIM(RTRIM(SORT_TAB(I)))); --- > > > > > > > > > > > > TMP_STR := NLS_UPPER(LTRIM(RTRIM(SORT_TAB(I))), 'nls_sort=binary');
23754a23755 > END IF; 23756,23779c23757,23777 < < < < < < < < IF (AVAILABLE_FROMSCN_ACT IS NULL OR < (USABLE_INCR.DFNUMBER_OBJ = LOCAL.DFNUMBER_OBJ AND < USABLE_INCR.DFCREATIONSCN_OBJ = LOCAL.DFCREATIONSCN_OBJ AND < LOCAL.TOSCN_ACT < AVAILABLE_FROMSCN_ACT)) THEN < IF (AVAILABLE_FROMSCN_ACT IS NULL) THEN < DEB(DEB_PRINT, 'available_fromSCN_act set to ' || < AVAILABLE_FROMSCN_ACT || ' for file# ' || < LOCAL.DFNUMBER_OBJ || ', creation_scn '|| < LOCAL.DFCREATIONSCN_OBJ); < ELSE < DEB(DEB_PRINT, 'broken chain, available_fromSCN_act set to ' || < AVAILABLE_FROMSCN_ACT || ' for file ' || < LOCAL.DFNUMBER_OBJ || ', creation_scn '|| < LOCAL.DFCREATIONSCN_OBJ); < END IF; < USABLE_INCR := LOCAL; < AVAILABLE_FROMSCN_ACT := LOCAL.FROMSCN_ACT; --- > > > > > > > > IF (AVAILABLE_FROMSCN_ACT IS NULL OR > (USABLE_INCR.DFNUMBER_OBJ = LOCAL.DFNUMBER_OBJ AND > USABLE_INCR.DFCREATIONSCN_OBJ = LOCAL.DFCREATIONSCN_OBJ AND > LOCAL.TOSCN_ACT < AVAILABLE_FROMSCN_ACT)) THEN > IF (AVAILABLE_FROMSCN_ACT IS NULL) THEN > DEB(DEB_PRINT, 'available_fromSCN_act set to ' || > AVAILABLE_FROMSCN_ACT || ' for file# ' || > LOCAL.DFNUMBER_OBJ || ', creation_scn '|| > LOCAL.DFCREATIONSCN_OBJ); > ELSE > DEB(DEB_PRINT, 'broken chain, available_fromSCN_act set to ' || > AVAILABLE_FROMSCN_ACT || ' for file ' || > LOCAL.DFNUMBER_OBJ || ', creation_scn '|| > LOCAL.DFCREATIONSCN_OBJ); 23780a23779,23780 > USABLE_INCR := LOCAL; > AVAILABLE_FROMSCN_ACT := LOCAL.FROMSCN_ACT;
23947a23948 > END IF; 23949,23972c23950,23970 < < < < < < < < IF (AVAILABLE_FROMSCN_ACT IS NULL OR < (USABLE_INCR.DFNUMBER_OBJ = LOCAL.DFNUMBER_OBJ AND < USABLE_INCR.DFCREATIONSCN_OBJ = LOCAL.DFCREATIONSCN_OBJ AND < LOCAL.TOSCN_ACT < AVAILABLE_FROMSCN_ACT)) THEN < IF (AVAILABLE_FROMSCN_ACT IS NULL) THEN < DEB(DEB_PRINT, 'available_fromSCN_act set to ' || < AVAILABLE_FROMSCN_ACT || ' for file# ' || < LOCAL.DFNUMBER_OBJ || ', creation_scn '|| < LOCAL.DFCREATIONSCN_OBJ); < ELSE < DEB(DEB_PRINT, 'broken chain, available_fromSCN_act set to ' || < AVAILABLE_FROMSCN_ACT || ' for file ' || < LOCAL.DFNUMBER_OBJ || ', creation_scn '|| < LOCAL.DFCREATIONSCN_OBJ); < END IF; < USABLE_INCR := LOCAL; < AVAILABLE_FROMSCN_ACT := LOCAL.FROMSCN_ACT; --- > > > > > > > > IF (AVAILABLE_FROMSCN_ACT IS NULL OR > (USABLE_INCR.DFNUMBER_OBJ = LOCAL.DFNUMBER_OBJ AND > USABLE_INCR.DFCREATIONSCN_OBJ = LOCAL.DFCREATIONSCN_OBJ AND > LOCAL.TOSCN_ACT < AVAILABLE_FROMSCN_ACT)) THEN > IF (AVAILABLE_FROMSCN_ACT IS NULL) THEN > DEB(DEB_PRINT, 'available_fromSCN_act set to ' || > AVAILABLE_FROMSCN_ACT || ' for file# ' || > LOCAL.DFNUMBER_OBJ || ', creation_scn '|| > LOCAL.DFCREATIONSCN_OBJ); > ELSE > DEB(DEB_PRINT, 'broken chain, available_fromSCN_act set to ' || > AVAILABLE_FROMSCN_ACT || ' for file ' || > LOCAL.DFNUMBER_OBJ || ', creation_scn '|| > LOCAL.DFCREATIONSCN_OBJ); 23973a23972,23973 > USABLE_INCR := LOCAL; > AVAILABLE_FROMSCN_ACT := LOCAL.FROMSCN_ACT;
1203c1203,1204 < TYPE VARCHARTAB IS TABLE OF VARCHAR2(4000) INDEX BY VARCHAR2(64); --- > > TYPE VARCHARTAB IS TABLE OF VARCHAR2(32767) INDEX BY VARCHAR2(64);
5749,5754c5749,5757 < < UNSUPPORTEDCOLS_LOCAL NUMBER := NULL; < UNSUPPORTEDCOLS_LOCAL2 NUMBER := NULL; < COMPLEXTYPECOLS_LOCAL NUMBER := NULL; < TLOFLAGS_LOCAL NUMBER := NULL; < LOGMNRMCV_LOCAL VARCHAR2(32) := NULL; --- > UNSUPPORTEDCOLS_LOCAL NUMBER := 0; > UNSUPPORTEDCOLS_LOCAL2 NUMBER := 0; > COMPLEXTYPECOLS_LOCAL NUMBER := 0; > TLOFLAGS_LOCAL NUMBER := 0; > LOGMNRMCV_LOCAL VARCHAR2(32) := NULL; > OWNERNAME VARCHAR2(390); > OBJNAME VARCHAR2(390); > LONG_IDEN NUMBER := 0; > IS_APPLICATION_CON NUMBER := 0;
141c141 < and (c2.type# in (114, 122) or /* BFILE/Nested Table */ --- > and (c2.type# in (114, 122, 111) or /* BFILE/Nested Table/REF */
153c153 < and (c2.type# in (114, 122) or /* BFILE/Nested Table */ --- > and (c2.type# in (114, 122, 111) or /* BFILE/Nested Table/REF */
143c143 < and (c2.type# in (114, 122) or /* BFILE/Nested Table */ --- > and (c2.type# in (114, 122, 111) or /* BFILE/Nested Table/REF */
32c32 < DECODE(BITAND(LOGMNRTLOFLAGS, 14), 0, 'NO', 'YES') --- > DECODE(BITAND(NVL(LOGMNRTLOFLAGS,0), 14), 0, 'NO', 'YES') 44,45c44,48 < LOGMNR_SPARE9, UNSUPPORTEDCOLS, COMPLEXTYPECOLS, NTPARENTOBJNUM, < NTPARENTOBJVERSION, NTPARENTINTCOLNUM, LOGMNRTLOFLAGS, --- > LOGMNR_SPARE9, UNSUPPORTEDCOLS, > NVL(COMPLEXTYPECOLS,0) COMPLEXTYPECOLS, > NTPARENTOBJNUM, > NTPARENTOBJVERSION, NTPARENTINTCOLNUM, > NVL(LOGMNRTLOFLAGS,0) LOGMNRTLOFLAGS,
12.2.0.1
2c2 < type "SYS_YOID0000072649$" as object( "SYS_NC00001$" RAW(16)) --- > type "SYS_YOID0000072649$" as object( "SYS_NC00001$" VARCHAR2(128 BYTE), "SYS_NC00002$" VARCHAR2(128 BYTE), "SYS_NC00003$" VARCHAR2(128 BYTE))
2c2 < type "SYS_YOID0000072661$" as object( "SYS_NC00001$" RAW(16)) --- > type "SYS_YOID0000072661$" as object( "SYS_NC00001$" VARCHAR2(128 BYTE), "SYS_NC00002$" VARCHAR2(128 BYTE))
2c2 < type "SYS_YOID0000072667$" as object( "SYS_NC00001$" RAW(16)) --- > type "SYS_YOID0000072667$" as object( "SYS_NC00001$" VARCHAR2(128 BYTE), "SYS_NC00002$" VARCHAR2(100 BYTE), "SYS_NC00003$" VARCHAR2(128 BYTE), "SYS_NC00004$" VARCHAR2(128 BYTE), "SYS_NC00005$" VARCHAR2(128 BYTE), "SYS_NC00006$" VARCHAR2(128 BYTE), "SYS_NC00007$" NUMBER)
2c2 < type "SYS_YOID0000072694$" as object( "SYS_NC00001$" RAW(16)) --- > type "SYS_YOID0000072694$" as object( "SYS_NC00001$" VARCHAR2(128 BYTE), "SYS_NC00002$" VARCHAR2(128 BYTE), "SYS_NC00003$" VARCHAR2(128 BYTE), "SYS_NC00004$" VARCHAR2(128 BYTE))
2c2 < type "SYS_YOID0000072697$" as object( "SYS_NC00001$" RAW(16)) --- > type "SYS_YOID0000072697$" as object( "SYS_NC00001$" VARCHAR2(128 BYTE), "SYS_NC00002$" VARCHAR2(128 BYTE), "SYS_NC00003$" VARCHAR2(100 BYTE), "SYS_NC00004$" VARCHAR2(128 BYTE), "SYS_NC00005$" VARCHAR2(128 BYTE), "SYS_NC00006$" VARCHAR2(128 BYTE), "SYS_NC00007$" VARCHAR2(128 BYTE))
554c554,555 < stamp number --- > stamp number, > order_hint number 699a701 > rl_snapstandby VARCHAR2(3), 3278c3280 < ,nblocks OUT binary_integer -- number of blocks of datafilecopy --- > ,nblocks OUT number -- number of blocks of datafilecopy
23a24,28 > V_CODE NUMBER; > V_ERRM VARCHAR2(128); > > > 78c83 < RETURN '$Header: rdbms/src/client/tools/qpinv/prvtqopi.sql /st_rdbms_12.2.0.1.0dbbp/3 2018/05/02 15:37:07 surman Exp $'; --- > RETURN '$Header: rdbms/src/client/tools/qpinv/prvtqopi.sql /st_rdbms_12.2.0.1.0dbbp/6 2018/08/10 12:48:23 aime Exp $'; 127a133,149 > --+ > PROCEDURE LOG_STATUS(MSG VARCHAR2) IS > BEGIN > IF DO_DEBUG THEN > DBMS_OUTPUT.PUT_LINE(MSG); > END IF; > DBMS_SYSTEM.KSDWRT(1,MSG); > > END; > > --+ > > > > > > 143a166,171 > T_OP_INST_PATH VARCHAR2(1024) := ''; > T_OP_SCPT_PATH VARCHAR2(1024) := ''; > T_OP_LOG_PATH VARCHAR2(1024) := ''; > T_ROOT VARCHAR2(1024) := ''; > T_ORABASE VARCHAR2(1024) := ''; > OPATCHFILE VARCHAR2(128) := 'opatch'; 168,172c196,198 < DBMS_SYSTEM.KSDWRT(1,'QPI: Event 22171584 set. Skipping sanity check'); < DBMS_SYSTEM.KSDWRT(1,'QPI: Please disable the event in case of any errors and try again'); < IF DO_DEBUG THEN < DBMS_OUTPUT.PUT_LINE('Event 22171584 set. Skipping sanity check'); < END IF; --- > DBMS_SYSTEM.KSDWRT(3,'QPI: Event 22171584 set. Skipping sanity check'); > DBMS_SYSTEM.KSDWRT(3,'QPI: Please disable the event in case of any errors and try again'); > LOG_STATUS('Event 22171584 set. Skipping sanity check'); 195a222,229 > SELECT PLATFORM_ID INTO PFID FROM V$DATABASE; > NOT_WIN := IS_NON_WINDOWS (PFID); > > > IF NOT NOT_WIN THEN > OPATCHFILE := 'opatch.bat'; > END IF; > 208a243,309 > > > > > > > > > T_ROOT := ROOT; > T_ORABASE := ORABASE; > T_OP_INST_PATH := OP_INST_PATH; > T_OP_SCPT_PATH := OP_SCPT_PATH; > T_OP_LOG_PATH := OP_LOG_PATH; > > IF NOT_WIN THEN > IF SUBSTR( ROOT,-1,1 ) <> '/' THEN > T_ROOT := ROOT || '/'; > LOG_STATUS('QPI: t_root is ' || T_ROOT); > END IF; > > IF SUBSTR( ORABASE,-1,1 ) <> '/' THEN > T_ORABASE := ORABASE || '/'; > LOG_STATUS('QPI: t_orabase is ' || T_ORABASE); > END IF; > > IF SUBSTR( OP_INST_PATH,-1,1 ) <> '/' THEN > T_OP_INST_PATH := OP_INST_PATH || '/'; > LOG_STATUS('QPI: t_op_inst_path is ' || T_OP_INST_PATH); > END IF; > > IF SUBSTR( OP_SCPT_PATH,-1,1 ) <> '/' THEN > T_OP_SCPT_PATH := OP_SCPT_PATH || '/'; > LOG_STATUS('QPI: t_op_scpt_path is ' || T_OP_SCPT_PATH); > END IF; > > IF SUBSTR( OP_LOG_PATH,-1,1 ) <> '/' THEN > T_OP_LOG_PATH := OP_LOG_PATH || '/'; > LOG_STATUS('QPI: t_op_log_path is ' || T_OP_LOG_PATH); > END IF; > ELSE > IF SUBSTR( ROOT,-1,1 ) <> '\' THEN > T_ROOT := ROOT || '\'; > LOG_STATUS('QPI: t_root is ' || T_ROOT); > END IF; > > IF SUBSTR( ORABASE,-1,1 ) <> '\' THEN > T_ORABASE := ORABASE || '\'; > LOG_STATUS('QPI: t_orabase is ' || T_ORABASE); > END IF; > > IF SUBSTR( OP_INST_PATH,-1,1 ) <> '\' THEN > T_OP_INST_PATH := OP_INST_PATH || '\'; > LOG_STATUS('QPI: t_op_inst_path is ' || T_OP_INST_PATH); > END IF; > > IF SUBSTR( OP_SCPT_PATH,-1,1 ) <> '\' THEN > T_OP_SCPT_PATH := OP_SCPT_PATH || '\'; > LOG_STATUS('QPI: t_op_scpt_path is ' || T_OP_SCPT_PATH); > END IF; > > IF SUBSTR( OP_LOG_PATH,-1,1 ) <> '\' THEN > T_OP_LOG_PATH := OP_LOG_PATH || '\'; > LOG_STATUS('QPI: t_op_log_path is ' || T_OP_LOG_PATH); > END IF; > > END IF; > 230d330 < SELECT PLATFORM_ID INTO PFID FROM V$DATABASE; 245d344 < NOT_WIN := IS_NON_WINDOWS (PFID); 292c391 < UTL_FILE.FGETATTR('OPATCH_INST_DIR', 'opatch', FEXISTS, FILE_LENGTH, BLOCK_SIZE); --- > UTL_FILE.FGETATTR('OPATCH_INST_DIR', OPATCHFILE, FEXISTS, FILE_LENGTH, BLOCK_SIZE); 294c393 < DBMS_SYSTEM.KSDWRT(1,'QPI: opatch file present'); --- > DBMS_SYSTEM.KSDWRT(3,'QPI: opatch file present, ' || OPATCHFILE); 296a396 > DBMS_SYSTEM.KSDWRT(3,'QPI: opatch executable does not exist, ' || OPATCHFILE); 306c406 < DBMS_SYSTEM.KSDWRT(1,'QPI: qopiprep.bat file present'); --- > DBMS_SYSTEM.KSDWRT(3,'QPI: qopiprep.bat file present'); 361,363d460 < IF DO_DEBUG THEN < DBMS_OUTPUT.PUT_LINE ('QPI: GOT lock at :' || SYSTIMESTAMP); < END IF; 366a464 > LOG_STATUS('QPI: Obtaining lock FAILED, qp_result=' || QP_RESULT || ' at : ' || SYSTIMESTAMP); 367a466,467 > ELSIF QP_RESULT = 0 OR QP_RESULT = 4 THEN > LOG_STATUS('QPI: Obtaining lock SUCCESSFUL, qp_result=' || QP_RESULT || ' at : ' || SYSTIMESTAMP); 390,391c490,493 < IF DO_DEBUG THEN < DBMS_OUTPUT.PUT_LINE ('QPI: Releasing the lock at :' || SYSTIMESTAMP); --- > IF QP_RESULT = 0 THEN > LOG_STATUS('QPI: Releasing lock SUCCESSFUL, qp_result=' || QP_RESULT || ' at : ' || SYSTIMESTAMP); > ELSE > LOG_STATUS('QPI: Releasing lock FAILED, qp_result=' || QP_RESULT || ' at : ' || SYSTIMESTAMP); 417,418d518 < V_CODE NUMBER; < V_ERRM VARCHAR2(128); 488,489c588,589 < V_ERRM := SUBSTR(SQLERRM, 1, 64); < DBMS_OUTPUT.PUT_LINE('Error code ' || V_CODE || ': ' || V_ERRM); --- > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in config_oinv_jobs, Error code ' || V_CODE || ': ' || V_ERRM); 507a608 > PROCEDURE CLEAN_METADATA_PRI; 821,824c922,923 < IF DO_DEBUG THEN < DBMS_OUTPUT.PUT_LINE('QPI: Cleaning and refreshing metadata..'); < END IF; < DBMS_SYSTEM.KSDWRT(1,'QPI: Cleaning and refreshing metadata..'); --- > LOG_STATUS('QPI: Cleaning and refreshing metadata..'); > DBMS_SYSTEM.KSDWRT(3,'QPI: Cleaning and refreshing metadata..'); 866a966,969 > LOG_STATUS('QPI: Caught error while querying opatch_xml_inv'); > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in REFRESH_OPATCH_DATA, ERROR code ' || V_CODE || ' : ' || V_ERRM); 927a1031,1037 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in get_opatch_install_info, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 976a1087,1093 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in get_opatch_list, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 1033a1151,1157 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in IS_PATCH_INSTALLED, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 1092a1217,1223 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in GET_OPATCH_DATA, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 1158a1290,1296 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in GET_OPATCH_BUGS, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 1182a1321,1324 > QP_RESULT := GET_QOPATCH_LOCK(); > > LOG_STATUS('QPI: Got lock get_opatch_files'); > 1194a1337,1340 > > LOG_STATUS('QPI: Release lock get_opatch_files'); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > 1195a1342,1354 > > EXCEPTION > WHEN UNABLE_TO_LOCK THEN > RAISE_APPLICATION_ERROR(-20016, > 'Unable to get the lock : get_opatch_files : ' || QP_RESULT); > > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in GET_OPATCH_FILES, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 1245a1405,1411 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in GET_OPATCH_COUNT, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 1298a1465,1471 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in GET_OPATCH_PREQS, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 1347a1521,1532 > EXCEPTION > WHEN UNABLE_TO_LOCK THEN > RAISE_APPLICATION_ERROR(-20016, > 'Unable to get the lock : get_opatch_install_info : ' || QP_RESULT); > > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in GET_OPATCH_OLAYS, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 1402a1588,1594 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in PATCH_CONFLICT_DETECTION, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 1454c1646 < OPATCHFILE CONSTANT VARCHAR2(128) := 'opatch'; --- > OPATCHFILE VARCHAR2(128) := 'opatch'; 1491a1684 > OPATCHFILE := 'opatch.bat'; 1544a1738 > LOG_STATUS('QPI: opatch executable exists and is readable, ' || OPATCHFILE); 1546a1741 > LOG_STATUS('QPI: opatch executable does not exist or is not redable, ' || OPATCHFILE); 1607,1608d1801 < V_CODE NUMBER; < V_ERRM VARCHAR2(128); 1689,1690c1882,1883 < V_ERRM := SUBSTR(SQLERRM, 1, 64); < DBMS_OUTPUT.PUT_LINE('Error code ' || V_CODE || ': ' || V_ERRM); --- > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in add_oinv_job, Error code ' || V_CODE || ': ' || V_ERRM); 1713c1906 < DBMS_SYSTEM.KSDWRT(1,'Node name: ' || PVAL.NODE_NAME || ' Inst:' || PVAL.INST_NAME|| ' Job:' || PVAL.INST_JOB); --- > DBMS_SYSTEM.KSDWRT(3,'Node name: ' || PVAL.NODE_NAME || ' Inst:' || PVAL.INST_NAME|| ' Job:' || PVAL.INST_JOB); 1720c1913 < DBMS_SYSTEM.KSDWRT(1,'Job: ' || PVAR.JOB_NAME || ' State: ' || PVAR.STATE); --- > DBMS_SYSTEM.KSDWRT(3,'Job: ' || PVAR.JOB_NAME || ' State: ' || PVAR.STATE); 1781c1974 < CLEAN_METADATA(); --- > CLEAN_METADATA_PRI(); 1827a2021 > 2021a2216,2219 > WHEN UNABLE_TO_LOCK THEN > RAISE_APPLICATION_ERROR(-20016, > 'Unable to get the lock : get_pending_activity : ' || QP_RESULT); > 2027a2226,2228 > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in get_pending_activity, ERROR code ' || V_CODE || ' : ' || V_ERRM); 2265a2467,2473 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in get_opatch_lsinventory, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 2647a2856,2862 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in opatch_compare, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 2714a2930,2936 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in get_patch_details, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 2761a2984,2990 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in check_patch_installed, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 2835c3064,3067 < --- > > LOG_STATUS('QPI: Release lock opatch_compare_nodes'); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > 2855a3088,3091 > > LOG_STATUS('QPI: Release lock opatch_compare_nodes'); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > 2862,2866d3097 < IF DO_DEBUG THEN < DBMS_OUTPUT.PUT_LINE('QPI: Release lock opatch_compare_nodes'); < END IF; < QP_RESULT:= RELEASE_QOPATCH_LOCK(); < 2871a3103,3109 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in OPATCH_COMPARE_NODES, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 2886,2888d3123 < < < 2890c3125 < PROCEDURE CLEAN_METADATA IS --- > PROCEDURE CLEAN_METADATA_PRI IS 2902c3137 < DBMS_OUTPUT.PUT_LINE('QPI: In clean_metadata'); --- > DBMS_OUTPUT.PUT_LINE('QPI: In clean_metadata_pri'); 2905,2910d3139 < QP_RESULT := GET_QOPATCH_LOCK(); < < IF DO_DEBUG THEN < DBMS_OUTPUT.PUT_LINE('QPI: Got lock clean_metadata'); < END IF; < 2919c3148 < DBMS_OUTPUT.PUT_LINE('QPI: clean_metadata opatch_inst_job :' || NODECNT ); --- > DBMS_OUTPUT.PUT_LINE('QPI: clean_metadata_pri opatch_inst_job :' || NODECNT ); 2951,2955d3179 < IF DO_DEBUG THEN < DBMS_OUTPUT.PUT_LINE('QPI: Release lock clean_metadata'); < END IF; < < QP_RESULT:= RELEASE_QOPATCH_LOCK(); 2959a3184,3223 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in CLEAN_METADATA_PRI, ERROR code ' || V_CODE || ' : ' || V_ERRM); > RAISE; > > END; > > --+ > > > > > > > > > > > > > > --+ > > PROCEDURE CLEAN_METADATA IS > BEGIN > > LOG_STATUS('QPI: In clean_metadata'); > > QP_RESULT := GET_QOPATCH_LOCK(); > > LOG_STATUS('QPI: Got lock clean_metadata'); > > CLEAN_METADATA_PRI(); > > LOG_STATUS('QPI: Release lock clean_metadata'); > > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > > EXCEPTION 2961c3225 < RAISE_APPLICATION_ERROR(-20016, --- > RAISE_APPLICATION_ERROR(-20016, 2963,2964c3227,3234 < WHEN OTHERS THEN < RAISE; --- > > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in CLEAN_METADATA, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 2966a3237 >
26424c26424,26425 < ELSIF (LISTBACKUPINMKS(LBSTATE.LBDFRECTABUS, LBREC, --- > ELSIF (LBREC.FILE_TYPE <> SPFILE_TXT AND > LISTBACKUPINMKS(LBSTATE.LBDFRECTABUS, LBREC,
545a546 > NULL RL_SNAPSTANDBY, 614a616 > NULL RL_SNAPSTANDBY, 691a694 > NULL RL_SNAPSTANDBY, 756a760 > 'NO' RL_SNAPSTANDBY, 820a825 > NULL RL_SNAPSTANDBY, 892a898 > NULL RL_SNAPSTANDBY, 901,902c907,910 < AL.STAMP LIST_ORDER1, < -1 LIST_ORDER2, --- > DECODE(DBINC.SNAPSTANDBY, 1, 0, AL.STAMP) > LIST_ORDER1, > DECODE(DBINC.SNAPSTANDBY, 1, AL.STAMP, -1) > LIST_ORDER2, 963a972,973 > DECODE(DBINC.SNAPSTANDBY, 1, 'YES', 'NO') > RL_SNAPSTANDBY, 983a994,1007 > LEFT OUTER JOIN > (SELECT CASE WHEN > (THIS_DBROLE = 'SNAPSHOT STANDBY' AND > DBINC.STATUS IN ('CURRENT', 'PARENT') AND > DBINC.INCARNATION# > DI2.DI2SSBY_PIC) > THEN 1 ELSE NULL END SNAPSTANDBY, > DBINC.RESETLOGS_CHANGE#, > DBINC.RESETLOGS_TIME, > DBINC.STATUS > FROM V$DATABASE_INCARNATION DBINC, > X$KCCDI2 DI2 > ) DBINC > ON AL.RESETLOGS_CHANGE# = DBINC.RESETLOGS_CHANGE# > AND AL.RESETLOGS_TIME = DBINC.RESETLOGS_TIME 1054a1079 > NULL RL_SNAPSTANDBY, 1124a1150 > 'NO' RL_SNAPSTANDBY, 8264c8290,8291 < DC.STAMP STAMP --- > DC.STAMP STAMP, > 0 ORDER_HINT 8274c8301,8302 < AL.STAMP STAMP --- > AL.STAMP STAMP, > 0 ORDER_HINT 8286c8314,8315 < RL.STAMP STAMP --- > RL.STAMP STAMP, > 0 ORDER_HINT 8297c8326,8327 < BP.STAMP STAMP --- > BP.STAMP STAMP, > 0 ORDER_HINT 8312c8342,8343 < DC.STAMP STAMP --- > DC.STAMP STAMP, > 0 ORDER_HINT 8347c8378,8379 < DC.STAMP STAMP --- > DC.STAMP STAMP, > 0 ORDER_HINT 8371c8403,8404 < DC.STAMP STAMP --- > DC.STAMP STAMP, > 0 ORDER_HINT 8403c8436,8437 < AL.STAMP STAMP --- > AL.STAMP STAMP, > 0 ORDER_HINT 8439c8473,8474 < AL.STAMP STAMP --- > AL.STAMP STAMP, > 0 ORDER_HINT 8465c8500,8501 < AL.STAMP STAMP --- > AL.STAMP STAMP, > 0 ORDER_HINT 8485c8521,8522 < AL.STAMP STAMP --- > AL.STAMP STAMP, > 0 ORDER_HINT 8605c8642,8643 < BP.STAMP STAMP --- > BP.STAMP STAMP, > 0 ORDER_HINT 8660c8698,8699 < AL.STAMP STAMP --- > AL.STAMP STAMP, > DBINC.SNAPSTANDBY ORDER_HINT 8680c8719,8729 < V$DATABASE_INCARNATION DBINC --- > (SELECT CASE WHEN > (THIS_DBROLE = 'SNAPSHOT STANDBY' AND > DBINC.STATUS IN ('CURRENT', 'PARENT') AND > DBINC.INCARNATION# > DI2.DI2SSBY_PIC) > THEN 1 ELSE NULL END SNAPSTANDBY, > DBINC.RESETLOGS_CHANGE#, > DBINC.RESETLOGS_TIME, > DBINC.STATUS > FROM V$DATABASE_INCARNATION DBINC, > X$KCCDI2 DI2 > ) DBINC 8690a8740 > DBINC.SNAPSTANDBY = 1 OR 8694c8744 < ORDER BY AL.STAMP; --- > ORDER BY ORDER_HINT, AL.STAMP; 15122c15172,15174 < IF (THIS_CFTYPE = 'STANDBY' OR THIS_CFTYPE = 'FARSYNC') THEN --- > IF (THIS_CFTYPE = 'STANDBY' OR > THIS_DBROLE = 'SNAPSHOT STANDBY' OR > THIS_CFTYPE = 'FARSYNC') THEN 15179a15232 > SETTHIS_DBROLE; 15188a15242 > THIS_DBROLE <> 'SNAPSHOT STANDBY' AND 15807a15862,15865 > THIS_CFTYPE := NULL; > SETTHIS_CFTYPE; > THIS_DBROLE := NULL; > SETTHIS_DBROLE; 17002a17061 > SETTHIS_DBROLE; 17390a17450 > 17710a17771 > NULL RL_SNAPSTANDBY, 17779a17841 > NULL RL_SNAPSTANDBY, 17856a17919 > NULL RL_SNAPSTANDBY, 17921a17985 > 'NO' RL_SNAPSTANDBY, 17985a18050 > NULL RL_SNAPSTANDBY, 18057a18123 > NULL RL_SNAPSTANDBY, 18128a18195 > 'NO' RL_SNAPSTANDBY, 18220a18288 > NULL RL_SNAPSTANDBY, 18290a18359 > 'NO' RL_SNAPSTANDBY, 24509a24579 > END IF; 24511,24534c24581,24601 < < < < < < < < IF (AVAILABLE_FROMSCN_ACT IS NULL OR < (USABLE_INCR.DFNUMBER_OBJ = LOCAL.DFNUMBER_OBJ AND < USABLE_INCR.DFCREATIONSCN_OBJ = LOCAL.DFCREATIONSCN_OBJ AND < LOCAL.TOSCN_ACT < AVAILABLE_FROMSCN_ACT)) THEN < IF (AVAILABLE_FROMSCN_ACT IS NULL) THEN < DEB(DEB_PRINT, 'available_fromSCN_act set to ' || < AVAILABLE_FROMSCN_ACT || ' for file# ' || < LOCAL.DFNUMBER_OBJ || ', creation_scn '|| < LOCAL.DFCREATIONSCN_OBJ); < ELSE < DEB(DEB_PRINT, 'broken chain, available_fromSCN_act set to ' || < AVAILABLE_FROMSCN_ACT || ' for file ' || < LOCAL.DFNUMBER_OBJ || ', creation_scn '|| < LOCAL.DFCREATIONSCN_OBJ); < END IF; < USABLE_INCR := LOCAL; < AVAILABLE_FROMSCN_ACT := LOCAL.FROMSCN_ACT; --- > > > > > > > > IF (AVAILABLE_FROMSCN_ACT IS NULL OR > (USABLE_INCR.DFNUMBER_OBJ = LOCAL.DFNUMBER_OBJ AND > USABLE_INCR.DFCREATIONSCN_OBJ = LOCAL.DFCREATIONSCN_OBJ AND > LOCAL.TOSCN_ACT < AVAILABLE_FROMSCN_ACT)) THEN > IF (AVAILABLE_FROMSCN_ACT IS NULL) THEN > DEB(DEB_PRINT, 'available_fromSCN_act set to ' || > AVAILABLE_FROMSCN_ACT || ' for file# ' || > LOCAL.DFNUMBER_OBJ || ', creation_scn '|| > LOCAL.DFCREATIONSCN_OBJ); > ELSE > DEB(DEB_PRINT, 'broken chain, available_fromSCN_act set to ' || > AVAILABLE_FROMSCN_ACT || ' for file ' || > LOCAL.DFNUMBER_OBJ || ', creation_scn '|| > LOCAL.DFCREATIONSCN_OBJ); 24535a24603,24604 > USABLE_INCR := LOCAL; > AVAILABLE_FROMSCN_ACT := LOCAL.FROMSCN_ACT; 26424c26493,26494 < ELSIF (LISTBACKUPINMKS(LBSTATE.LBDFRECTABUS, LBREC, --- > ELSIF (LBREC.FILE_TYPE <> SPFILE_TXT AND > LISTBACKUPINMKS(LBSTATE.LBDFRECTABUS, LBREC, 26462a26533,26538 > > > IF (RECOVERYDESTFILE AND LBREC.RL_SNAPSTANDBY = 'YES') THEN > IF (DEBUG) THEN > DEB(DEB_IN, 'snapshot standby archivelog'); > END IF; 26467c26543 < IF ((LBREC.RL_NEXT_CHANGE# >= LBSTATE.LBMINGRSP AND --- > ELSIF ((LBREC.RL_NEXT_CHANGE# >= LBSTATE.LBMINGRSP AND 28925c29001 < ,NBLOCKS OUT BINARY_INTEGER --- > ,NBLOCKS OUT NUMBER
14406,14409c14406,14411 < TRANSFER_COLUMN_STATS(OWNER, DBMS_STATS_INTERNAL.DQ(TAB_NAME), EXTN_NAME, < NULL, NULL, NULL, < NULL, NULL, TRUE, TRUE, NULL, FALSE, FALSE, DSC_NON_FXT, TRUE, < 'ALL', FALSE, NULL, TRUE); --- > > > TRANSFER_COLUMN_STATS(DBMS_STATS_INTERNAL.DQ(OWNER), > DBMS_STATS_INTERNAL.DQ(TAB_NAME), DBMS_STATS_INTERNAL.DQ(EXTN_NAME), > NULL, NULL, NULL, NULL, NULL, TRUE, TRUE, NULL, FALSE, FALSE, > DSC_NON_FXT, TRUE, 'ALL', FALSE, NULL, TRUE);
445c445 < END IF; --- > END IF; 496c496 < INCREMENT := INCREMENT + 1; --- > INCREMENT := INCREMENT + 1; 583c583 < END IF; --- > END IF; 2727c2727 < --- > 3310c3310 < HAS_ROLE NUMBER := 0; --- > HAS_ROLE NUMBER := 0; 3433c3433 < --- > 3484c3484 < --- >
687c687 < SCN OCINUMBER, SCN INDICATOR SB2, --- > SCN OCINUMBER, SCN INDICATOR SB2, 689,690c689,690 < POS OCIRAW, POS INDICATOR SB2, < POS MAXLEN SB4, POS LENGTH SB4) --- > POS OCIRAW, POS INDICATOR SB2, > POS MAXLEN SB4, POS LENGTH SB4) 1526c1526 < DBMS_XSTREAM_ADM_UTL.CONVERT_SCN_TO_POS(PROCESSED_LWM_SCN, --- > DBMS_XSTREAM_ADM_UTL.CONVERT_SCN_TO_POS(PROCESSED_LWM_SCN,
792c792 < INCREMENT := INCREMENT + 1; --- > INCREMENT := INCREMENT + 1; 908c908 < END IF; --- > END IF;
77a78 > PRBA NUMBER := RBA; 87c88 < SEQ# = SEQNO AND RBA = RBA AND INDEX# = INDEX_NUM; --- > SEQ# = SEQNO AND RBA = PRBA AND INDEX# = INDEX_NUM; 91c92 < SEQ# = SEQNO AND RBA = RBA AND INDEX# = INDEX_NUM; --- > SEQ# = SEQNO AND RBA = PRBA AND INDEX# = INDEX_NUM;
1438c1438 < ' queue=' || QUEUE_NAME || ' src_db=' || SOURCE_DATABASE || --- > ' queue=' || QUEUE_NAME || ' src_db=' || SOURCE_DATABASE || 2908c2908 < END IF; --- > END IF;
18.0.0.0
2203a2204,2249 > FUNCTION ENQUOTE_PARTS(P_SPEC IN VARCHAR2, CAPITALIZE IN BOOLEAN := TRUE) > RETURN VARCHAR2 IS > L_SPEC DRVUTL.DR_QLID3; > L_PERIOD1 NUMBER; > L_PERIOD2 NUMBER; > BEGIN > IF INSTR(P_SPEC, '"') = 1 THEN > > L_SPEC := P_SPEC; > ELSIF INSTR(P_SPEC, '.') = 0 THEN > > L_SPEC := DBMS_ASSERT.ENQUOTE_NAME(P_SPEC, CAPITALIZE); > ELSE > > L_PERIOD1 := INSTR(P_SPEC, '.'); > L_PERIOD2 := INSTR(P_SPEC, '.', L_PERIOD1 + 1); > > L_SPEC := > DBMS_ASSERT.ENQUOTE_NAME(SUBSTR(P_SPEC, 1, L_PERIOD1 - 1), CAPITALIZE) || '.'; > IF L_PERIOD2 = 0 THEN > L_SPEC := L_SPEC || > DBMS_ASSERT.ENQUOTE_NAME(SUBSTR(P_SPEC, L_PERIOD1 + 1), CAPITALIZE); > ELSE > L_SPEC := L_SPEC || > DBMS_ASSERT.ENQUOTE_NAME(SUBSTR(P_SPEC, L_PERIOD1 + 1, > (L_PERIOD2 - L_PERIOD1 - 1)), CAPITALIZE) || > '.' || > DBMS_ASSERT.ENQUOTE_NAME(SUBSTR(P_SPEC, L_PERIOD2 + 1), CAPITALIZE); > END IF; > END IF; > > RETURN L_SPEC; > END ENQUOTE_PARTS; > > > > > > > > > > > > >
12c12 < bannerVersion CONSTANT VARCHAR2(15) := '18.03.00.00'; --- > bannerVersion CONSTANT VARCHAR2(15) := '18.02.02.00'; 24,26c24,26 < fsn CONSTANT NUMBER := instr('18.03.00.00', '.'); < msn CONSTANT NUMBER := instr('18.03.00.00', '.', fsn + 1); < psn CONSTANT NUMBER := instr('18.03.00.00', '.', msn + 1); --- > fsn CONSTANT NUMBER := instr('18.02.02.00', '.'); > msn CONSTANT NUMBER := instr('18.02.02.00', '.', fsn + 1); > psn CONSTANT NUMBER := instr('18.02.02.00', '.', msn + 1); 29c29 < to_number(substr('18.03.00.00', 1, fsn - 1)); --- > to_number(substr('18.02.02.00', 1, fsn - 1)); 31c31 < to_number(substr('18.03.00.00', fsn + 1, msn - fsn - 1)); --- > to_number(substr('18.02.02.00', fsn + 1, msn - fsn - 1)); 33c33 < to_number(substr('18.03.00.00', msn + 1, psn - msn - 1)); --- > to_number(substr('18.02.02.00', msn + 1, psn - msn - 1)); 35c35 < to_number(substr('18.03.00.00', psn + 1)); --- > to_number(substr('18.02.02.00', psn + 1));
12c12 < bannerVersion CONSTANT VARCHAR2(15) := '18.03.00.00'; --- > bannerVersion CONSTANT VARCHAR2(15) := '18.04.00.00'; 24,26c24,26 < fsn CONSTANT NUMBER := instr('18.03.00.00', '.'); < msn CONSTANT NUMBER := instr('18.03.00.00', '.', fsn + 1); < psn CONSTANT NUMBER := instr('18.03.00.00', '.', msn + 1); --- > fsn CONSTANT NUMBER := instr('18.04.00.00', '.'); > msn CONSTANT NUMBER := instr('18.04.00.00', '.', fsn + 1); > psn CONSTANT NUMBER := instr('18.04.00.00', '.', msn + 1); 29c29 < to_number(substr('18.03.00.00', 1, fsn - 1)); --- > to_number(substr('18.04.00.00', 1, fsn - 1)); 31c31 < to_number(substr('18.03.00.00', fsn + 1, msn - fsn - 1)); --- > to_number(substr('18.04.00.00', fsn + 1, msn - fsn - 1)); 33c33 < to_number(substr('18.03.00.00', msn + 1, psn - msn - 1)); --- > to_number(substr('18.04.00.00', msn + 1, psn - msn - 1)); 35c35 < to_number(substr('18.03.00.00', psn + 1)); --- > to_number(substr('18.04.00.00', psn + 1));
12c12 < bannerVersion CONSTANT VARCHAR2(15) := '18.03.00.00'; --- > bannerVersion CONSTANT VARCHAR2(15) := '18.03.01.00'; 24,26c24,26 < fsn CONSTANT NUMBER := instr('18.03.00.00', '.'); < msn CONSTANT NUMBER := instr('18.03.00.00', '.', fsn + 1); < psn CONSTANT NUMBER := instr('18.03.00.00', '.', msn + 1); --- > fsn CONSTANT NUMBER := instr('18.03.01.00', '.'); > msn CONSTANT NUMBER := instr('18.03.01.00', '.', fsn + 1); > psn CONSTANT NUMBER := instr('18.03.01.00', '.', msn + 1); 29c29 < to_number(substr('18.03.00.00', 1, fsn - 1)); --- > to_number(substr('18.03.01.00', 1, fsn - 1)); 31c31 < to_number(substr('18.03.00.00', fsn + 1, msn - fsn - 1)); --- > to_number(substr('18.03.01.00', fsn + 1, msn - fsn - 1)); 33c33 < to_number(substr('18.03.00.00', msn + 1, psn - msn - 1)); --- > to_number(substr('18.03.01.00', msn + 1, psn - msn - 1)); 35c35 < to_number(substr('18.03.00.00', psn + 1)); --- > to_number(substr('18.03.01.00', psn + 1));
1387c1387,1418 < CUR_SCHEMA IN VARCHAR2); --- > CUR_SCHEMA IN VARCHAR2, > LOCK_NAME OUT DBMS_ID, > LOCK_HANDLE OUT VARCHAR2, > RECIPIENTS_LIST OUT DBMS_UTILITY.LNAME_ARRAY, > NEW_RAISE_EVENTS_NUM OUT PLS_INTEGER, > CANON_JOB_NAME IN OUT DBMS_ID, > CANON_JOB_SUBNAME IN OUT DBMS_ID, > CANON_JOB_OWNER IN OUT DBMS_ID, > CUR_FLAGS OUT NUMBER, > DOES_SUB_EXIST OUT BOOLEAN, > DOES_REG_EXIST OUT BOOLEAN, > REAL_JB_NAME IN VARCHAR2 > ); > > PROCEDURE ADD_JOB_EMAIL_NOTIFICATION_PH3 > ( > RECIPIENTS_LIST IN DBMS_UTILITY.LNAME_ARRAY, > NEW_RAISE_EVENTS_NUM IN PLS_INTEGER, > CANON_JOB_NAME IN DBMS_ID, > CANON_JOB_SUBNAME IN DBMS_ID, > CANON_JOB_OWNER IN DBMS_ID, > INVOKER IN VARCHAR2, > SENDER IN VARCHAR2, > SUBJECT IN VARCHAR2, > BODY IN VARCHAR2, > FILTER_CONDITION IN VARCHAR2, > LOCK_NAME IN DBMS_ID, > LOCK_HANDLE IN VARCHAR2, > CUR_FLAGS IN NUMBER, > RECIPIENTS IN VARCHAR2, > EVENTS IN VARCHAR2 > );
3289c3289 < ,nblocks OUT binary_integer -- number of blocks of datafilecopy --- > ,nblocks OUT number -- number of blocks of datafilecopy
13c13 < '18.3.0.0.0'; --- > '18.2.2.0.0'; 231,237c231,233 < PROCEDURE RU_apply (comp_version IN VARCHAR2 DEFAULT NULL, < build_description IN VARCHAR2 DEFAULT NULL, < build_timestamp IN TIMESTAMP DEFAULT NULL); < < PROCEDURE RU_rollback (comp_version IN VARCHAR2 DEFAULT NULL, < build_description IN VARCHAR2 DEFAULT NULL, < build_timestamp IN TIMESTAMP DEFAULT NULL); --- > PROCEDURE RU_apply (comp_version IN VARCHAR2 DEFAULT NULL); > > PROCEDURE RU_rollback (comp_version IN VARCHAR2 DEFAULT NULL);
13c13 < '18.3.0.0.0'; --- > '18.4.0.0.0';
13c13 < '18.3.0.0.0'; --- > '18.3.1.0.0';
7763a7764 > 7775,7778c7776,7788 < CUR_SCHEMA IN VARCHAR2) IS < CANON_JOB_NAME DBMS_ID; < CANON_JOB_SUBNAME DBMS_ID; < CANON_JOB_OWNER DBMS_ID; --- > CUR_SCHEMA IN VARCHAR2, > LOCK_NAME OUT DBMS_ID, > LOCK_HANDLE OUT VARCHAR2, > RECIPIENTS_LIST OUT DBMS_UTILITY.LNAME_ARRAY, > NEW_RAISE_EVENTS_NUM OUT PLS_INTEGER, > CANON_JOB_NAME IN OUT DBMS_ID, > CANON_JOB_SUBNAME IN OUT DBMS_ID, > CANON_JOB_OWNER IN OUT DBMS_ID, > CUR_FLAGS OUT NUMBER, > DOES_SUB_EXIST OUT BOOLEAN, > DOES_REG_EXIST OUT BOOLEAN, > REAL_JB_NAME IN VARCHAR2 > ) IS 7782d7791 < NEW_RAISE_EVENTS_NUM PLS_INTEGER := 0; 7791d7799 < EVENT_10862 PLS_INTEGER := 0; 7798,7799d7805 < LOCK_NAME DBMS_ID; < LOCK_HANDLE VARCHAR2(128); 7802d7807 < RECIPIENTS_LIST DBMS_UTILITY.LNAME_ARRAY; 7805d7809 < CUR_FLAGS NUMBER; 7807c7811 < REAL_JOB_NAME VARCHAR2(2 * ORA_MAX_NAME_LEN + 5) := JOB_NAME; --- > REAL_JOB_NAME VARCHAR2(2 * ORA_MAX_NAME_LEN + 5) := REAL_JB_NAME; 7817c7821,7822 < SYS.DBMS_ISCHED.TRACE_EMAIL('Entering add_job_email_notification'); --- > SYS.DBMS_ISCHED.TRACE_EMAIL('Entering ' || > 'dbms_isched.add_job_email_notification'); 7819a7825,7836 > IF DO_TRC THEN > SYS.DBMS_ISCHED.TRACE_EMAIL('Current user: ' || > SYS_CONTEXT('USERENV','CURRENT_USER') ); > SYS.DBMS_ISCHED.TRACE_EMAIL('Session user: ' || > SYS_CONTEXT('USERENV','SESSION_USER') ); > SYS.DBMS_ISCHED.TRACE_EMAIL('Current schema: ' || > SYS_CONTEXT('USERENV','CURRENT_SCHEMA') ); > END IF; > > NEW_RAISE_EVENTS_NUM := 0; > CUR_FLAGS := 0; > 7844,7868c7861,7862 < RESOLVE3_NAME(REAL_JOB_NAME, CANON_JOB_NAME, CANON_JOB_SUBNAME, < CANON_JOB_OWNER, CUR_SCHEMA); < < < FULL_JOB_NAME := '"'||CANON_JOB_OWNER||'"."'||CANON_JOB_NAME||'"'; < < < IF INVOKER != CANON_JOB_OWNER AND INVOKER != 'SYS' AND < BITAND(SYS_PRIVS, 2) = 0 < THEN < < BEGIN < SYS.DBMS_ISCHED_UTL.CHECK_OBJECT_PRIVS(CANON_JOB_NAME, CANON_JOB_OWNER, 'JOB', < INVOKER, 'ALTER', TRUE, SYS_PRIVS); < EXCEPTION WHEN OTHERS THEN < < IF SQLCODE = -23306 AND CANON_JOB_SUBNAME IS NULL < AND REAL_JOB_NAME = JOB_NAME THEN < REAL_JOB_NAME := '"'||CUR_SCHEMA||'".' || JOB_NAME; < GOTO TRY_RESOLVE_AGAIN; < ELSE < RAISE; < END IF; < END; < END IF; --- > FULL_JOB_NAME := DBMS_ASSERT.ENQUOTE_NAME(CANON_JOB_OWNER, FALSE) ||'.'|| > DBMS_ASSERT.ENQUOTE_NAME(CANON_JOB_NAME , FALSE); 7892c7886,7890 < REAL_JOB_NAME := '"'||CUR_SCHEMA||'".' || JOB_NAME; --- > REAL_JOB_NAME := DBMS_ASSERT.ENQUOTE_NAME(CUR_SCHEMA, FALSE) || > '.' || JOB_NAME; > > RESOLVE3_NAME(REAL_JOB_NAME, CANON_JOB_NAME, CANON_JOB_SUBNAME, > CANON_JOB_OWNER, CUR_SCHEMA); 7981,7990d7978 < < < < DBMS_SYSTEM.READ_EV(10862, EVENT_10862); < IF EVENT_10862 = 0 THEN < EXECUTE IMMEDIATE < 'ALTER SESSION SET EVENTS ''10862 TRACE NAME CONTEXT FOREVER, LEVEL 1'''; < END IF; < < 7992,7993c7980,7981 < 'select count(*) from sys.dba_QUEUE_SUBSCRIBERS where owner=''SYS'' < and queue_name=''SCHEDULER$_EVENT_QUEUE'' and consumer_name=:lname' --- > 'select count(*) from sys.user_QUEUE_SUBSCRIBERS where > queue_name=''SCHEDULER$_EVENT_QUEUE'' and consumer_name=:lname' 7996,8003c7984,7985 < BEGIN < < DBMS_AQADM.ADD_SUBSCRIBER < (QUEUE_NAME => 'SYS.SCHEDULER$_EVENT_QUEUE', < SUBSCRIBER => SYS.AQ$_AGENT(LOCK_NAME, NULL, NULL)); < EXCEPTION WHEN OTHERS THEN < IF SQLCODE = -24034 THEN NULL; < ELSE --- > DOES_SUB_EXIST := FALSE; > BEGIN 8005,8007c7987,7994 < IF EVENT_10862 = 0 THEN < EXECUTE IMMEDIATE 'ALTER SESSION SET EVENTS ' || < '''10862 TRACE NAME CONTEXT OFF''' ; --- > DBMS_AQADM.ADD_SUBSCRIBER > (QUEUE_NAME => 'SYS.SCHEDULER$_EVENT_QUEUE', > SUBSCRIBER => SYS.AQ$_AGENT(LOCK_NAME, NULL, NULL)); > EXCEPTION WHEN OTHERS THEN > IF SQLCODE = -24034 THEN NULL; > ELSE > LOCK_ERROR := DBMS_LOCK.RELEASE(LOCKHANDLE=>LOCK_HANDLE); > RAISE; 8009,8019c7996,7998 < < LOCK_ERROR := DBMS_LOCK.RELEASE(LOCKHANDLE=>LOCK_HANDLE); < RAISE; < END IF; < END; < END IF; < < < IF EVENT_10862 = 0 THEN < EXECUTE IMMEDIATE 'ALTER SESSION SET EVENTS ' || < '''10862 TRACE NAME CONTEXT OFF''' ; --- > END; > ELSE > DOES_SUB_EXIST := TRUE; 8025,8029d8003 < IF ROW_COUNT = 0 THEN < < SYS.DBMS_AQADM_SYS.ENABLE_DB_ACCESS(LOCK_NAME,INVOKER,TRUE); < END IF; < 8033a8008,8012 > EXCEPTION WHEN OTHERS THEN > LOCK_ERROR := DBMS_LOCK.RELEASE(LOCKHANDLE=>LOCK_HANDLE); > RAISE; > END; > 8035,8042c8014,8020 < < < REGINFO := SYS.AQ$_REG_INFO('SYS.SCHEDULER$_EVENT_QUEUE:"'||LOCK_NAME||'"', < DBMS_AQ.NAMESPACE_AQ, < 'plsql://SYS.SCHEDULER$_JOB_EVENT_HANDLER', < NULL); < REGLIST := SYS.AQ$_REG_INFO_LIST(REGINFO); < DBMS_AQ.REGISTER ( REGLIST, 1 ); --- > DOES_REG_EXIST := FALSE; > ELSE > DOES_REG_EXIST := TRUE; > END IF; > > IF DO_TRC THEN > SYS.DBMS_ISCHED.TRACE_EMAIL('Exiting dbms_isched.add_job_email_notification'); 8045a8024,8078 > > END; > > PROCEDURE ADD_JOB_EMAIL_NOTIFICATION_PH3 > ( > RECIPIENTS_LIST IN DBMS_UTILITY.LNAME_ARRAY, > NEW_RAISE_EVENTS_NUM IN PLS_INTEGER, > CANON_JOB_NAME IN DBMS_ID, > CANON_JOB_SUBNAME IN DBMS_ID, > CANON_JOB_OWNER IN DBMS_ID, > INVOKER IN VARCHAR2, > SENDER IN VARCHAR2, > SUBJECT IN VARCHAR2, > BODY IN VARCHAR2, > FILTER_CONDITION IN VARCHAR2, > LOCK_NAME IN DBMS_ID, > LOCK_HANDLE IN VARCHAR2, > CUR_FLAGS IN NUMBER, > RECIPIENTS IN VARCHAR2, > EVENTS IN VARCHAR2 > ) IS > TYPE EVENT_NAME_LIST IS TABLE OF DBMS_ID; > TYPE EVENT_NUMBER_LIST IS TABLE OF NUMBER; > EVENT_NAMES EVENT_NAME_LIST := EVENT_NAME_LIST('JOB_STARTED', > 'JOB_SUCCEEDED', 'JOB_FAILED', 'JOB_BROKEN', 'JOB_COMPLETED', > 'JOB_STOPPED', 'JOB_SCH_LIM_REACHED', 'JOB_DISABLED', > 'JOB_CHAIN_STALLED','JOB_OVER_MAX_DUR','JOB_RUN_COMPLETED','JOB_ALL_EVENTS'); > EVENT_NUMBERS EVENT_NUMBER_LIST := > EVENT_NUMBER_LIST(1,2,4,8,16,32,64,128,256,512,2+4+32,1024-1); > EVENT_10862 PLS_INTEGER := 0; > LOCK_ERROR PLS_INTEGER; > FULL_JOB_NAME VARCHAR2(3 * ORA_MAX_NAME_LEN + 8); > DO_TRC BOOLEAN := FALSE; > EV_27402 PLS_INTEGER; > BEGIN > > DBMS_SYSTEM.READ_EV(27402, EV_27402); > IF BITAND(EV_27402,128)=128 THEN DO_TRC := TRUE; END IF; > > > IF DO_TRC THEN > SYS.DBMS_ISCHED.TRACE_EMAIL('Entered add_job_email_notification_ph3'); > END IF; > > IF DO_TRC THEN > SYS.DBMS_ISCHED.TRACE_EMAIL('Current user: ' || > SYS_CONTEXT('USERENV','CURRENT_USER') ); > SYS.DBMS_ISCHED.TRACE_EMAIL('Session user: ' || > SYS_CONTEXT('USERENV','SESSION_USER') ); > SYS.DBMS_ISCHED.TRACE_EMAIL('Current schema: ' || > SYS_CONTEXT('USERENV','CURRENT_SCHEMA') ); > END IF; > > BEGIN > 8152a8186,8189 > FULL_JOB_NAME := DBMS_ASSERT.ENQUOTE_NAME(CANON_JOB_OWNER, FALSE) ||'.'|| > DBMS_ASSERT.ENQUOTE_NAME(CANON_JOB_NAME , FALSE); > > 8159c8196,8197 < FULL_JOB_NAME := FULL_JOB_NAME ||'."'||CANON_JOB_SUBNAME||'"'; --- > FULL_JOB_NAME := FULL_JOB_NAME ||'.'|| > DBMS_ASSERT.ENQUOTE_NAME(CANON_JOB_SUBNAME,FALSE); 8165a8204,8208 > > > IF DO_TRC THEN > SYS.DBMS_ISCHED.TRACE_EMAIL('Exiting add_job_email_notification_ph3'); > END IF;
25a26,30 > V_CODE NUMBER; > V_ERRM VARCHAR2(128); > > > 80c85 < RETURN '$Header: rdbms/src/client/tools/qpinv/prvtqopi.sql /st_rdbms_18.0/1 2018/03/05 00:47:50 sspulava Exp $'; --- > RETURN '$Header: rdbms/src/client/tools/qpinv/prvtqopi.sql /st_rdbms_18.0/3 2018/07/12 07:15:49 apfwkr Exp $'; 162a168,173 > T_OP_INST_PATH VARCHAR2(1024) := ''; > T_OP_SCPT_PATH VARCHAR2(1024) := ''; > T_OP_LOG_PATH VARCHAR2(1024) := ''; > T_ROOT VARCHAR2(1024) := ''; > T_ORABASE VARCHAR2(1024) := ''; > OPATCHFILE VARCHAR2(128) := 'opatch'; 185,186c196,197 < DBMS_SYSTEM.KSDWRT(1,'QPI: Event 22171584 set. Skipping sanity check'); < DBMS_SYSTEM.KSDWRT(1,'QPI: Please disable the event in case of any errors and try again'); --- > DBMS_SYSTEM.KSDWRT(3,'QPI: Event 22171584 set. Skipping sanity check'); > DBMS_SYSTEM.KSDWRT(3,'QPI: Please disable the event in case of any errors and try again'); 210a222,229 > SELECT PLATFORM_ID INTO PFID FROM V$DATABASE; > NOT_WIN := IS_NON_WINDOWS (PFID); > > > IF NOT NOT_WIN THEN > OPATCHFILE := 'opatch.bat'; > END IF; > 223a243,309 > > > > > > > > > T_ROOT := ROOT; > T_ORABASE := ORABASE; > T_OP_INST_PATH := OP_INST_PATH; > T_OP_SCPT_PATH := OP_SCPT_PATH; > T_OP_LOG_PATH := OP_LOG_PATH; > > IF NOT_WIN THEN > IF SUBSTR( ROOT,-1,1 ) <> '/' THEN > T_ROOT := ROOT || '/'; > LOG_STATUS('QPI: t_root is ' || T_ROOT); > END IF; > > IF SUBSTR( ORABASE,-1,1 ) <> '/' THEN > T_ORABASE := ORABASE || '/'; > LOG_STATUS('QPI: t_orabase is ' || T_ORABASE); > END IF; > > IF SUBSTR( OP_INST_PATH,-1,1 ) <> '/' THEN > T_OP_INST_PATH := OP_INST_PATH || '/'; > LOG_STATUS('QPI: t_op_inst_path is ' || T_OP_INST_PATH); > END IF; > > IF SUBSTR( OP_SCPT_PATH,-1,1 ) <> '/' THEN > T_OP_SCPT_PATH := OP_SCPT_PATH || '/'; > LOG_STATUS('QPI: t_op_scpt_path is ' || T_OP_SCPT_PATH); > END IF; > > IF SUBSTR( OP_LOG_PATH,-1,1 ) <> '/' THEN > T_OP_LOG_PATH := OP_LOG_PATH || '/'; > LOG_STATUS('QPI: t_op_log_path is ' || T_OP_LOG_PATH); > END IF; > ELSE > IF SUBSTR( ROOT,-1,1 ) <> '\' THEN > T_ROOT := ROOT || '\'; > LOG_STATUS('QPI: t_root is ' || T_ROOT); > END IF; > > IF SUBSTR( ORABASE,-1,1 ) <> '\' THEN > T_ORABASE := ORABASE || '\'; > LOG_STATUS('QPI: t_orabase is ' || T_ORABASE); > END IF; > > IF SUBSTR( OP_INST_PATH,-1,1 ) <> '\' THEN > T_OP_INST_PATH := OP_INST_PATH || '\'; > LOG_STATUS('QPI: t_op_inst_path is ' || T_OP_INST_PATH); > END IF; > > IF SUBSTR( OP_SCPT_PATH,-1,1 ) <> '\' THEN > T_OP_SCPT_PATH := OP_SCPT_PATH || '\'; > LOG_STATUS('QPI: t_op_scpt_path is ' || T_OP_SCPT_PATH); > END IF; > > IF SUBSTR( OP_LOG_PATH,-1,1 ) <> '\' THEN > T_OP_LOG_PATH := OP_LOG_PATH || '\'; > LOG_STATUS('QPI: t_op_log_path is ' || T_OP_LOG_PATH); > END IF; > > END IF; > 243d328 < SELECT PLATFORM_ID INTO PFID FROM V$DATABASE; 258d342 < NOT_WIN := IS_NON_WINDOWS (PFID); 305c389 < UTL_FILE.FGETATTR('OPATCH_INST_DIR', 'opatch', FEXISTS, FILE_LENGTH, BLOCK_SIZE); --- > UTL_FILE.FGETATTR('OPATCH_INST_DIR', OPATCHFILE, FEXISTS, FILE_LENGTH, BLOCK_SIZE); 307c391 < DBMS_SYSTEM.KSDWRT(1,'QPI: opatch file present'); --- > DBMS_SYSTEM.KSDWRT(3,'QPI: opatch file present, ' || OPATCHFILE); 309a394 > DBMS_SYSTEM.KSDWRT(3,'QPI: opatch executable does not exist, ' || OPATCHFILE); 319c404 < DBMS_SYSTEM.KSDWRT(1,'QPI: qopiprep.bat file present'); --- > DBMS_SYSTEM.KSDWRT(3,'QPI: qopiprep.bat file present'); 374d458 < LOG_STATUS ('QPI: GOT lock at :' || SYSTIMESTAMP); 377a462 > LOG_STATUS('QPI: Obtaining lock FAILED, qp_result=' || QP_RESULT || ' at : ' || SYSTIMESTAMP); 378a464,465 > ELSIF QP_RESULT = 0 OR QP_RESULT = 4 THEN > LOG_STATUS('QPI: Obtaining lock SUCCESSFUL, qp_result=' || QP_RESULT || ' at : ' || SYSTIMESTAMP); 401c488,492 < LOG_STATUS ('QPI: Releasing the lock at :' || SYSTIMESTAMP); --- > IF QP_RESULT = 0 THEN > LOG_STATUS('QPI: Releasing lock SUCCESSFUL, qp_result=' || QP_RESULT || ' at : ' || SYSTIMESTAMP); > ELSE > LOG_STATUS('QPI: Releasing lock FAILED, qp_result=' || QP_RESULT || ' at : ' || SYSTIMESTAMP); > END IF; 426,427d516 < V_CODE NUMBER; < V_ERRM VARCHAR2(128); 493,494c582,583 < V_ERRM := SUBSTR(SQLERRM, 1, 64); < LOG_STATUS('Error code ' || V_CODE || ': ' || V_ERRM); --- > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in config_oinv_jobs, Error code ' || V_CODE || ': ' || V_ERRM); 799c888 < DBMS_SYSTEM.KSDWRT(1,'QPI: Cleaning and refreshing metadata..'); --- > DBMS_SYSTEM.KSDWRT(3,'QPI: Cleaning and refreshing metadata..'); 837a927,930 > LOG_STATUS('QPI: Caught error while querying opatch_xml_inv'); > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in REFRESH_OPATCH_DATA, ERROR code ' || V_CODE || ' : ' || V_ERRM); 892a986,992 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in get_opatch_install_info, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 935a1036,1042 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in get_opatch_list, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 986a1094,1100 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in IS_PATCH_INSTALLED, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 1039a1154,1160 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in GET_OPATCH_DATA, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 1099a1221,1227 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in GET_OPATCH_BUGS, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 1121a1250,1253 > QP_RESULT := GET_QOPATCH_LOCK(); > > LOG_STATUS('QPI: Got lock get_opatch_files'); > 1133a1266,1269 > > LOG_STATUS('QPI: Release lock get_opatch_files'); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > 1134a1271,1283 > > EXCEPTION > WHEN UNABLE_TO_LOCK THEN > RAISE_APPLICATION_ERROR(-20016, > 'Unable to get the lock : get_opatch_files : ' || QP_RESULT); > > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in GET_OPATCH_FILES, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 1178a1328,1334 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in GET_OPATCH_COUNT, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 1225a1382,1388 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in GET_OPATCH_PREQS, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 1268a1432,1443 > EXCEPTION > WHEN UNABLE_TO_LOCK THEN > RAISE_APPLICATION_ERROR(-20016, > 'Unable to get the lock : get_opatch_install_info : ' || QP_RESULT); > > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in GET_OPATCH_OLAYS, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 1317a1493,1499 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in PATCH_CONFLICT_DETECTION, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 1370c1552 < OPATCHFILE CONSTANT VARCHAR2(128) := 'opatch'; --- > OPATCHFILE VARCHAR2(128) := 'opatch'; 1406a1589 > OPATCHFILE := 'opatch.bat'; 1453a1637 > LOG_STATUS('QPI: opatch executable exists and is readable, ' || OPATCHFILE); 1455a1640 > LOG_STATUS('QPI: opatch executable does not exist or is not redable, ' || OPATCHFILE); 1514,1515d1698 < V_CODE NUMBER; < V_ERRM VARCHAR2(128); 1590,1591c1773,1774 < V_ERRM := SUBSTR(SQLERRM, 1, 64); < LOG_STATUS('Error code ' || V_CODE || ': ' || V_ERRM); --- > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in add_oinv_job, Error code ' || V_CODE || ': ' || V_ERRM); 1612c1795 < DBMS_SYSTEM.KSDWRT(1,'Node name: ' || PVAL.NODE_NAME || ' Inst:' || PVAL.INST_NAME|| ' Job:' || PVAL.INST_JOB); --- > DBMS_SYSTEM.KSDWRT(3,'Node name: ' || PVAL.NODE_NAME || ' Inst:' || PVAL.INST_NAME|| ' Job:' || PVAL.INST_JOB); 1619c1802 < DBMS_SYSTEM.KSDWRT(1,'Job: ' || PVAR.JOB_NAME || ' State: ' || PVAR.STATE); --- > DBMS_SYSTEM.KSDWRT(3,'Job: ' || PVAR.JOB_NAME || ' State: ' || PVAR.STATE); 1718a1902 > 1900a2085,2088 > WHEN UNABLE_TO_LOCK THEN > RAISE_APPLICATION_ERROR(-20016, > 'Unable to get the lock : get_pending_activity : ' || QP_RESULT); > 1906a2095,2097 > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in get_pending_activity, ERROR code ' || V_CODE || ' : ' || V_ERRM); 2136a2328,2334 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in get_opatch_lsinventory, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 2635a2834,2840 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in opatch_compare, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 2741a2947,2953 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in get_patch_details, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 2784a2997,3003 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in check_patch_installed, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 2856c3075,3078 < --- > > LOG_STATUS('QPI: Release lock opatch_compare_nodes'); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > 2876a3099,3102 > > LOG_STATUS('QPI: Release lock opatch_compare_nodes'); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > 2883,2885d3108 < LOG_STATUS('QPI: Release lock opatch_compare_nodes'); < QP_RESULT:= RELEASE_QOPATCH_LOCK(); < 2890a3114,3120 > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in OPATCH_COMPARE_NODES, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 2917a3148 > 2989c3220 < WHEN UNABLE_TO_LOCK THEN --- > WHEN UNABLE_TO_LOCK THEN 2992,2993c3223,3230 < WHEN OTHERS THEN < RAISE; --- > > WHEN OTHERS THEN > V_CODE := SQLCODE; > V_ERRM := SUBSTR(SQLERRM, 1, 128); > LOG_STATUS('QPI: in CLEAN_METADATA, ERROR code ' || V_CODE || ' : ' || V_ERRM); > QP_RESULT:= RELEASE_QOPATCH_LOCK(); > RAISE; > 2995a3233,3234 > >
122c122 < CATALOGVERSION CONSTANT VARCHAR2(11) := '18.03.00.00'; --- > CATALOGVERSION CONSTANT VARCHAR2(11) := '18.03.01.00';
122c122 < CATALOGVERSION CONSTANT VARCHAR2(11) := '18.03.00.00'; --- > CATALOGVERSION CONSTANT VARCHAR2(11) := '18.02.02.00';
122c122 < CATALOGVERSION CONSTANT VARCHAR2(11) := '18.03.00.00'; --- > CATALOGVERSION CONSTANT VARCHAR2(11) := '18.04.00.00'; 24765a24766 > END IF; 24767,24790c24768,24788 < < < < < < < < IF (AVAILABLE_FROMSCN_ACT IS NULL OR < (USABLE_INCR.DFNUMBER_OBJ = LOCAL.DFNUMBER_OBJ AND < USABLE_INCR.DFCREATIONSCN_OBJ = LOCAL.DFCREATIONSCN_OBJ AND < LOCAL.TOSCN_ACT < AVAILABLE_FROMSCN_ACT)) THEN < IF (AVAILABLE_FROMSCN_ACT IS NULL) THEN < DEB(DEB_PRINT, 'available_fromSCN_act set to ' || < AVAILABLE_FROMSCN_ACT || ' for file# ' || < LOCAL.DFNUMBER_OBJ || ', creation_scn '|| < LOCAL.DFCREATIONSCN_OBJ); < ELSE < DEB(DEB_PRINT, 'broken chain, available_fromSCN_act set to ' || < AVAILABLE_FROMSCN_ACT || ' for file ' || < LOCAL.DFNUMBER_OBJ || ', creation_scn '|| < LOCAL.DFCREATIONSCN_OBJ); < END IF; < USABLE_INCR := LOCAL; < AVAILABLE_FROMSCN_ACT := LOCAL.FROMSCN_ACT; --- > > > > > > > > IF (AVAILABLE_FROMSCN_ACT IS NULL OR > (USABLE_INCR.DFNUMBER_OBJ = LOCAL.DFNUMBER_OBJ AND > USABLE_INCR.DFCREATIONSCN_OBJ = LOCAL.DFCREATIONSCN_OBJ AND > LOCAL.TOSCN_ACT < AVAILABLE_FROMSCN_ACT)) THEN > IF (AVAILABLE_FROMSCN_ACT IS NULL) THEN > DEB(DEB_PRINT, 'available_fromSCN_act set to ' || > AVAILABLE_FROMSCN_ACT || ' for file# ' || > LOCAL.DFNUMBER_OBJ || ', creation_scn '|| > LOCAL.DFCREATIONSCN_OBJ); > ELSE > DEB(DEB_PRINT, 'broken chain, available_fromSCN_act set to ' || > AVAILABLE_FROMSCN_ACT || ' for file ' || > LOCAL.DFNUMBER_OBJ || ', creation_scn '|| > LOCAL.DFCREATIONSCN_OBJ); 24791a24790,24791 > USABLE_INCR := LOCAL; > AVAILABLE_FROMSCN_ACT := LOCAL.FROMSCN_ACT; 27205a27206,27208 > > > IF (DFREC.PDBID <= 1 OR TRANSLATEPDB2NAME(DFREC.PDBID) IS NOT NULL) THEN 27206a27210 > END IF; 29222c29226 < ,NBLOCKS OUT BINARY_INTEGER --- > ,NBLOCKS OUT NUMBER
624,625c624,625 < TO_CHAR(P_DATE, 'MM-DD-YYYY HH24:MI:SS') || P_EDITION || 'FBC238'), < DBMS_CRYPTO.HASH_MD5); --- > TO_CHAR(P_DATE, 'MM-DD-YYYY HH24:MI:SS','nls_calendar=Gregorian') > || P_EDITION || 'FBC238'), DBMS_CRYPTO.HASH_MD5);
4389a4390,4408 > DOES_SUB_EXIST BOOLEAN := FALSE; > DOES_REG_EXIST BOOLEAN := FALSE; > LOCK_NAME DBMS_ID; > LOCK_HANDLE VARCHAR2(128); > LOCK_ERROR PLS_INTEGER; > REGINFO SYS.AQ$_REG_INFO; > REGLIST SYS.AQ$_REG_INFO_LIST; > RECIPIENTS_LIST DBMS_UTILITY.LNAME_ARRAY; > NEW_RAISE_EVENTS_NUM PLS_INTEGER := 0; > CANON_JOB_NAME DBMS_ID; > CANON_JOB_SUBNAME DBMS_ID; > CANON_JOB_OWNER DBMS_ID; > CUR_FLAGS NUMBER; > EV_27402 PLS_INTEGER := 0; > DO_TRC BOOLEAN := FALSE; > CURRENT_USER DBMS_ID := SYS_CONTEXT('USERENV','CURRENT_USER'); > CUR_SCHEMA DBMS_ID := SYS_CONTEXT('USERENV','CURRENT_SCHEMA'); > REAL_JOB_NAME VARCHAR2(2 * ORA_MAX_NAME_LEN + 5) := JOB_NAME; > FULL_JOB_NAME VARCHAR2(3 * ORA_MAX_NAME_LEN + 8); 4392a4412,4429 > SYS.DBMS_SYSTEM.READ_EV(27402, EV_27402); > IF BITAND(EV_27402,128)=128 THEN DO_TRC := TRUE; END IF; > > IF DO_TRC THEN > SYS.DBMS_ISCHED.TRACE_EMAIL('Entered ' || > 'dbms_scheduler.add_job_email_notification'); > END IF; > > IF DO_TRC THEN > SYS.DBMS_ISCHED.TRACE_EMAIL('Current user: ' || > CURRENT_USER ); > SYS.DBMS_ISCHED.TRACE_EMAIL('Session user: ' || > SYS_CONTEXT('USERENV','SESSION_USER') ); > SYS.DBMS_ISCHED.TRACE_EMAIL('Current schema: ' || > CUR_SCHEMA ); > END IF; > > 4424a4462,4497 > > > <<TRY_RESOLVE_AGAIN>> > > > SYS.DBMS_ISCHED.RESOLVE3_NAME(REAL_JOB_NAME, CANON_JOB_NAME, > CANON_JOB_SUBNAME, CANON_JOB_OWNER, CUR_SCHEMA); > > > FULL_JOB_NAME := SYS.DBMS_ASSERT.ENQUOTE_NAME(CANON_JOB_OWNER, FALSE) ||'.'|| > SYS.DBMS_ASSERT.ENQUOTE_NAME(CANON_JOB_NAME , FALSE); > > > IF CURRENT_USER != CANON_JOB_OWNER AND CURRENT_USER != 'SYS' AND > BITAND(SYS_PRIVS, 2) = 0 > THEN > > BEGIN > SYS.DBMS_ISCHED_UTL.CHECK_OBJECT_PRIVS(CANON_JOB_NAME, CANON_JOB_OWNER, > 'JOB', CURRENT_USER, 'ALTER', TRUE, SYS_PRIVS); > EXCEPTION WHEN OTHERS THEN > > IF SQLCODE = -23306 AND CANON_JOB_SUBNAME IS NULL > AND REAL_JOB_NAME = JOB_NAME THEN > REAL_JOB_NAME := SYS.DBMS_ASSERT.ENQUOTE_NAME(CUR_SCHEMA, FALSE) || > '.' || JOB_NAME; > GOTO TRY_RESOLVE_AGAIN; > ELSE > RAISE; > END IF; > END; > END IF; > > > > 4427,4428c4500,4541 < SYS_CONTEXT('USERENV','CURRENT_USER'), SYS_PRIVS, < SYS_CONTEXT('USERENV','CURRENT_SCHEMA')); --- > CURRENT_USER, SYS_PRIVS, > CUR_SCHEMA, > LOCK_NAME, LOCK_HANDLE, RECIPIENTS_LIST, NEW_RAISE_EVENTS_NUM, > CANON_JOB_NAME, CANON_JOB_SUBNAME, CANON_JOB_OWNER, CUR_FLAGS, > DOES_SUB_EXIST, DOES_REG_EXIST, REAL_JOB_NAME); > > > > IF NOT DOES_SUB_EXIST THEN > > SYS.DBMS_AQADM.ENABLE_DB_ACCESS(LOCK_NAME, > SYS.DBMS_ASSERT.ENQUOTE_NAME(CURRENT_USER, FALSE)); > END IF; > > BEGIN > IF NOT DOES_REG_EXIST THEN > > > REGINFO := SYS.AQ$_REG_INFO('SYS.SCHEDULER$_EVENT_QUEUE:"'||LOCK_NAME||'"', > SYS.DBMS_AQ.NAMESPACE_AQ, > 'plsql://SYS.SCHEDULER$_JOB_EVENT_HANDLER', > NULL); > REGLIST := SYS.AQ$_REG_INFO_LIST(REGINFO); > SYS.DBMS_AQ.REGISTER ( REGLIST, 1 ); > END IF; > EXCEPTION WHEN OTHERS THEN > LOCK_ERROR := SYS.DBMS_LOCK.RELEASE(LOCKHANDLE=>LOCK_HANDLE); > RAISE; > END; > > > > SYS.DBMS_ISCHED.ADD_JOB_EMAIL_NOTIFICATION_PH3(RECIPIENTS_LIST, > NEW_RAISE_EVENTS_NUM, CANON_JOB_NAME, CANON_JOB_SUBNAME, > CANON_JOB_OWNER, CURRENT_USER, > SENDER, SUBJECT, BODY, FILTER_CONDITION, LOCK_NAME, LOCK_HANDLE, > CUR_FLAGS, RECIPIENTS, EVENTS); > > IF DO_TRC THEN > SYS.DBMS_ISCHED.TRACE_EMAIL('Exiting' || > 'dbms_scheduler.add_job_email_notification'); > END IF;
15195,15198c15195,15200 < TRANSFER_COLUMN_STATS(OWNER, DBMS_STATS_INTERNAL.DQ(TAB_NAME), EXTN_NAME, < NULL, NULL, NULL, < NULL, NULL, TRUE, TRUE, NULL, FALSE, FALSE, DSC_NON_FXT, TRUE, < 'ALL', FALSE, NULL, TRUE); --- > > > TRANSFER_COLUMN_STATS(DBMS_STATS_INTERNAL.DQ(OWNER), > DBMS_STATS_INTERNAL.DQ(TAB_NAME), DBMS_STATS_INTERNAL.DQ(EXTN_NAME), > NULL, NULL, NULL, NULL, NULL, TRUE, TRUE, NULL, FALSE, FALSE, > DSC_NON_FXT, TRUE, 'ALL', FALSE, NULL, TRUE);
64c64,65 < 'where (PARENT_DBUN not in ' || --- > 'where (DEST_ROLE != ''LOGICAL STANDBY'') ' || > 'and (PARENT_DBUN not in ' ||
32,34c32 < NOTIF_OWNER DBMS_ID := ''; < NOTIF_OWNER_ID PLS_INTEGER; < HAS_SYS_PRVLG VARCHAR2(1) := 'N'; --- > CURRENT_USER DBMS_ID := SYS_CONTEXT('USERENV','CURRENT_USER'); 38,43d35 < < < < < < 49,52c41,46 < SYS.DBMS_ISCHED.TRACE_EMAIL('Current user: '|| < SYS_CONTEXT('USERENV','CURRENT_USER')); < SYS.DBMS_ISCHED.TRACE_EMAIL('Consumer name: '|| < DESCR.CONSUMER_NAME); --- > SYS.DBMS_ISCHED.TRACE_EMAIL('Consumer name: ' || DESCR.CONSUMER_NAME); > SYS.DBMS_ISCHED.TRACE_EMAIL('Current user: ' || CURRENT_USER); > SYS.DBMS_ISCHED.TRACE_EMAIL('Session user: ' || > SYS_CONTEXT('USERENV','SESSION_USER') ); > SYS.DBMS_ISCHED.TRACE_EMAIL('Current schema: ' || > SYS_CONTEXT('USERENV','CURRENT_SCHEMA') ); 55a50,52 > SYS_PRIVS := SYS.DBMS_SCHEDULER.CHECK_SYS_PRIVS(); > > 75,117d71 < < < BEGIN < NOTIF_OWNER_ID := TO_NUMBER(REGEXP_SUBSTR(DESCR.CONSUMER_NAME, '[0-9]+$')); < SELECT NAME INTO NOTIF_OWNER FROM SYS.USER$ < WHERE USER#=NOTIF_OWNER_ID; < IF DO_TRC THEN < SYS.DBMS_ISCHED.TRACE_EMAIL('Notification owner: '|| < NOTIF_OWNER); < END IF; < EXCEPTION WHEN NO_DATA_FOUND THEN < SYS.DBMS_ISCHED.TRACE_EMAIL( < 'No data found: notif_owner_id: ' || NOTIF_OWNER_ID); < WHEN OTHERS THEN RAISE; < END; < < < SELECT DECODE(SIGN(COUNT(UNIQUE UP)),1, 'Y', 'N') < INTO HAS_SYS_PRVLG < FROM ( < SELECT GRANTED_ROLE UP < FROM ( < SELECT NULL GRANTEE, USERNAME GRANTED_ROLE < FROM SYS.DBA_USERS < WHERE USERNAME = NOTIF_OWNER < UNION < SELECT GRANTEE, GRANTED_ROLE < FROM SYS.DBA_ROLE_PRIVS < UNION < SELECT GRANTEE, PRIVILEGE < FROM SYS.DBA_SYS_PRIVS < ) < START WITH GRANTEE IS NULL < CONNECT BY GRANTEE = PRIOR GRANTED_ROLE < ) < WHERE UP IN ('CREATE ANY JOB', < 'MANAGE SCHEDULER', < 'SCHEDULER_ADMIN'); < < IF DO_TRC THEN < SYS.DBMS_ISCHED.TRACE_EMAIL('has_sys_prvlg: '|| < HAS_SYS_PRVLG); < END IF; 124,125d77 < < 127,129c79,81 < IF NOTIF_OWNER != MESSAGE.OBJECT_OWNER AND < NOTIF_OWNER != 'SYS' AND < HAS_SYS_PRVLG != 'Y' --- > IF CURRENT_USER != MESSAGE.OBJECT_OWNER AND > CURRENT_USER != 'SYS' AND > BITAND(SYS_PRIVS,2) = 0 131,133c83,86 < < SYS.DBMS_ISCHED_UTL.CHECK_OBJECT_PRIVS(MESSAGE.OBJECT_NAME , MESSAGE.OBJECT_OWNER, < 'JOB', NOTIF_OWNER, 'ALTER', TRUE, 0); --- > > SYS.DBMS_ISCHED_UTL.CHECK_OBJECT_PRIVS(MESSAGE.OBJECT_NAME, > MESSAGE.OBJECT_OWNER, 'JOB', CURRENT_USER, > 'ALTER', TRUE, SYS_PRIVS); 145,146d97 < < 149c100 < NOTIF_OWNER, EVT_FLAG, SENDER_ARR, BODY_ARR, --- > CURRENT_USER, EVT_FLAG, SENDER_ARR, BODY_ARR, 353a305,308 > > IF DO_TRC THEN > SYS.DBMS_ISCHED.TRACE_EMAIL('Exiting job event handler.'); > END IF;
Useful Links:
- Download Assistant: MOS Note: 2118136.2
- 2018 October CPU: https://www.oracle.com/technetwork/security-advisory/cpuoct2018-4428296.html