Dissecting 180116 BP, PSU, RU and RUR

This post is also available in: Português

Since Oct-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.

So what oracle internal objects were changed in 180116?

VERSION              PATCH      OWNER                          TYPE                                TOTAL
-------------------- ---------- ------------------------------ ------------------------------ ----------
11.2.0.4             PSU & BP   SYS                            PACKAGE                                 1
11.2.0.4             PSU & BP   SYS                            PACKAGE BODY                            2
12.1.0.2             BP         SYS                            PACKAGE BODY                            3
12.1.0.2             PSU & BP   SYS                            PACKAGE BODY                            1
12.2.0.1             JUL2017RUR SYS                            PACKAGE BODY                            2
12.2.0.1             OCT2017RUR SYS                            PACKAGE BODY                            2
12.2.0.1             RU         CTXSYS                         PACKAGE BODY                            1
12.2.0.1             RU         DVSYS                          TYPE                                    6
12.2.0.1             RU         DVSYS                          VIEW                                    2
12.2.0.1             RU         SYS                            PACKAGE                                 1
12.2.0.1             RU         SYS                            PACKAGE BODY                           10
12.2.0.1             RU         SYS                            VIEW                                   10

And created?

VERSION              PATCH      OWNER                          TYPE                                TOTAL
-------------------- ---------- ------------------------------ ------------------------------ ----------
11.2.0.4             OJVM       PUBLIC                         SYNONYM                                21
12.1.0.2             BP         SYS                            PACKAGE BODY                            1
12.1.0.2             OJVM       PUBLIC                         SYNONYM                                21
12.1.0.2             PSU        SYS                            PACKAGE BODY                            1

So which are exactly the objects modified by 180116?

VERSION              PATCH      OWNER                          TYPE                           NAME
-------------------- ---------- ------------------------------ ------------------------------ ------------------------------
11.2.0.4             PSU & BP   SYS                            PACKAGE BODY                   DBMS_BACKUP_RESTORE
11.2.0.4             PSU & BP   SYS                            PACKAGE                        DBMS_BACKUP_RESTORE
11.2.0.4             PSU & BP   SYS                            PACKAGE BODY                   DBMS_LOGREP_EXP
12.1.0.2             BP         SYS                            PACKAGE BODY                   DBMS_LOGREP_EXP
12.1.0.2             BP         SYS                            PACKAGE BODY                   DBMS_OPTIM_BUNDLE
12.1.0.2             BP         SYS                            PACKAGE BODY                   PRVT_ILM
12.1.0.2             PSU & BP   SYS                            PACKAGE BODY                   CDBVIEW
12.2.0.1             JUL2017RUR SYS                            PACKAGE BODY                   CDBVIEW
12.2.0.1             JUL2017RUR SYS                            PACKAGE BODY                   PRVTEMX_CELL
12.2.0.1             OCT2017RUR SYS                            PACKAGE BODY                   CDBVIEW
12.2.0.1             OCT2017RUR SYS                            PACKAGE BODY                   PRVTEMX_CELL
12.2.0.1             RU         CTXSYS                         PACKAGE BODY                   DRVDDL
12.2.0.1             RU         DVSYS                          TYPE                           KU$_DV_REALM_MEMBER_T
12.2.0.1             RU         DVSYS                          TYPE                           KU$_DV_RULE_SET_MEMBER_T
12.2.0.1             RU         DVSYS                          TYPE                           SYS_YOID0000072649$
12.2.0.1             RU         DVSYS                          TYPE                           SYS_YOID0000072661$
12.2.0.1             RU         DVSYS                          TYPE                           SYS_YOID0000072855$
12.2.0.1             RU         DVSYS                          TYPE                           SYS_YOID0000072867$
12.2.0.1             RU         DVSYS                          VIEW                           KU$_DV_REALM_MEMBER_VIEW
12.2.0.1             RU         DVSYS                          VIEW                           KU$_DV_RULE_SET_MEMBER_VIEW
12.2.0.1             RU         SYS                            PACKAGE                        PRVT_COMPRESSION
12.2.0.1             RU         SYS                            PACKAGE BODY                   CDBVIEW
12.2.0.1             RU         SYS                            PACKAGE BODY                   DBMS_APPLY_ADM_INTERNAL
12.2.0.1             RU         SYS                            PACKAGE BODY                   DBMS_AQADM_SYS
12.2.0.1             RU         SYS                            PACKAGE BODY                   DBMS_COMPRESSION
12.2.0.1             RU         SYS                            PACKAGE BODY                   DBMS_LOGREP_EXP
12.2.0.1             RU         SYS                            PACKAGE BODY                   DBMS_OPTIM_BUNDLE
12.2.0.1             RU         SYS                            PACKAGE BODY                   DBMS_PRVTAQIM
12.2.0.1             RU         SYS                            PACKAGE BODY                   DBMS_RCVMAN
12.2.0.1             RU         SYS                            PACKAGE BODY                   PRVTEMX_CELL
12.2.0.1             RU         SYS                            PACKAGE BODY                   PRVT_ILM
12.2.0.1             RU         SYS                            VIEW                           LOGSTDBY_RU_UNSUPPORT_TAB_12_1
12.2.0.1             RU         SYS                            VIEW                           LOGSTDBY_RU_UNSUPPORT_TAB_12_2
12.2.0.1             RU         SYS                            VIEW                           LOGSTDBY_SUPPORT_TAB_12_1
12.2.0.1             RU         SYS                            VIEW                           LOGSTDBY_SUPPORT_TAB_12_2
12.2.0.1             RU         SYS                            VIEW                           LOGSTDBY_UNSUPPORT_TAB_12_1
12.2.0.1             RU         SYS                            VIEW                           LOGSTDBY_UNSUPPORT_TAB_12_2
12.2.0.1             RU         SYS                            VIEW                           OGG_SUPPORT_TAB_11_2
12.2.0.1             RU         SYS                            VIEW                           OGG_SUPPORT_TAB_11_2B
12.2.0.1             RU         SYS                            VIEW                           OGG_SUPPORT_TAB_12_1
12.2.0.1             RU         SYS                            VIEW                           OGG_SUPPORT_TAB_12_2

What changed for each?

P.S: 

<  = Added Lines

>  = Removed Lines

11.2.0.4

SYS.DBMS_BACKUP_RESTORE - PACKAGE BODY (PSU & BP):

1542,1546c1542
<                      ,PLTFRMFR      IN   BINARY_INTEGER
<                      ,ENCRYPT       IN   NUMBER
<                      ,ENC_ALGORITHM IN   NUMBER
<                      ,ALLOWTDE      IN   NUMBER
<                      ,PASSWORD      IN   VARCHAR2);
---
>                      ,PLTFRMFR      IN   BINARY_INTEGER);
1678,1708c1674
<     BEGIN
<         BACKUPBACKUPPIECE(BPNAME, FNAME, HANDLE, COMMENT, MEDIA, CONCUR,
<                           RECID, STAMP, TAG, PARAMS, MEDIA_POOL, REUSE,
<                           CHECK_LOGICAL, COPYNO, DEFFMT, COPY_RECID,
<                           COPY_STAMP, NPIECES, DEST, PLTFRMFR, 0, 0, 0, NULL);
<     END;
< 
<   PROCEDURE BACKUPBACKUPPIECE( BPNAME          IN  VARCHAR2
<                               ,FNAME           IN  VARCHAR2
<                               ,HANDLE          OUT VARCHAR2
<                               ,COMMENT         OUT VARCHAR2
<                               ,MEDIA           OUT VARCHAR2
<                               ,CONCUR          OUT BOOLEAN
<                               ,RECID           OUT NUMBER
<                               ,STAMP           OUT NUMBER
<                               ,TAG             IN  VARCHAR2       DEFAULT NULL
<                               ,PARAMS          IN  VARCHAR2       DEFAULT NULL
<                               ,MEDIA_POOL      IN  BINARY_INTEGER DEFAULT 0
<                               ,REUSE           IN  BOOLEAN        DEFAULT FALSE
<                               ,CHECK_LOGICAL   IN  BOOLEAN
<                               ,COPYNO          IN  BINARY_INTEGER
<                               ,DEFFMT          IN  BINARY_INTEGER
<                               ,COPY_RECID      IN  NUMBER
<                               ,COPY_STAMP      IN  NUMBER
<                               ,NPIECES         IN  BINARY_INTEGER
<                               ,DEST            IN  BINARY_INTEGER
<                               ,PLTFRMFR        IN  BINARY_INTEGER
<                               ,ENCRYPT         IN  NUMBER
<                               ,ENC_ALGORITHM   IN  NUMBER
<                               ,ALLOWTDE        IN  NUMBER
<                               ,PASSWORD        IN  VARCHAR2) IS
---
>  
1718,1719c1684
<                  NPIECES, FALSE, DEST, PLTFRMFR,
<                  ENCRYPT, ENC_ALGORITHM, ALLOWTDE, PASSWORD);
---
>                  NPIECES, FALSE, DEST, PLTFRMFR);
1764,1768c1729
<                 ,PLTFRMFR      => 0
<                 ,ENCRYPT       => 0
<                 ,ENC_ALGORITHM => 0
<                 ,ALLOWTDE      => 0
<                 ,PASSWORD      => NULL);
---
>                 ,PLTFRMFR      => 0);

SYS.DBMS_BACKUP_RESTORE - PACKAGE (PSU & BP):

7493,7523d7492
<   PROCEDURE backupBackupPiece( bpname         IN   varchar2
<                               ,fname          IN   varchar2
<                               ,handle         OUT  varchar2
<                               ,comment        OUT  varchar2
<                               ,media          OUT  varchar2
<                               ,concur         OUT  boolean
<                               ,recid          OUT  number
<                               ,stamp          OUT  number
<                               ,tag            IN   varchar2       default NULL
<                               ,params         IN   varchar2       default NULL
<                               ,media_pool     IN   binary_integer default 0
<                               ,reuse          IN   boolean        default FALSE
<                               ,check_logical  IN   boolean
<                               ,copyno         IN   binary_integer
<                               ,deffmt         IN   binary_integer
<                               ,copy_recid     IN   number
<                               ,copy_stamp     IN   number
<                               ,npieces        IN   binary_integer
<                               ,dest           IN   binary_integer
<                               ,pltfrmfr       IN   binary_integer
<                               ,encrypt        IN   number
<                               ,enc_algorithm  IN   number
<                               ,allowTDE       IN   number
<                               ,password       IN   varchar2);
<   --
<   -- Description and return values can be found with original declaration
<   -- above.  The new arguments are:
<   --   encrypt flag
<   --   algorithm used for encryption
<   --   allow TDE
<   --   password

SYS.DBMS_LOGREP_EXP - PACKAGE BODY (PSU & BP):

2961c2961,2962
< 
---
> 
> 
2962a2964,2968
> SELECT NVL(MAX(CO.SCN), 0) INTO IGNORE_SCN
> FROM ALL_CAPTURE_PREPARED_TABLES CO
> WHERE CO.TABLE_OWNER = INSTANCE_EXTENDED_INFO_EXP.SCHEMA
> AND CO.TABLE_NAME = INSTANCE_EXTENDED_INFO_EXP.NAME;
> 
2964,2965c2970,2974
< 
< IGNORE_SCN := 0;
---
> IF (IGNORE_SCN = 0) THEN
> DBMS_LOGREP_UTIL.DUMP_TRACE(
> 'Warning: ignore_scn is 0 for object '||SCHEMA||'.'||NAME);
> END IF;
>

12.1.0.2

SYS.DBMS_LOGREP_EXP - PACKAGE BODY (BP):

2966a2967
> 
2968a2970,2992
>    
>    
>    
>    
>    
>    
>    BEGIN
>      SELECT /*+  USE_NL_WITH_INDEX(cd I_CDEF2) */  NVL(MAX(CO.SCN), 0)  
>       INTO IGNORE_SCN
>       FROM SYS.DBA_CAPTURE_PREPARED_TABLES CO
>       WHERE CO.TABLE_OWNER = INSTANCE_EXTENDED_INFO_EXP.SCHEMA
>       AND   CO.TABLE_NAME = INSTANCE_EXTENDED_INFO_EXP.NAME;
>   EXCEPTION
>     WHEN DBMS_STREAMS_DECL.TABLE_OR_VIEW_NOT_EXIST THEN
>       SELECT /*+  USE_NL_WITH_INDEX(cd I_CDEF2) */  NVL(MAX(CO.SCN), 0)  
>       INTO IGNORE_SCN
>       FROM SYS.ALL_CAPTURE_PREPARED_TABLES CO
>       WHERE CO.TABLE_OWNER = INSTANCE_EXTENDED_INFO_EXP.SCHEMA
>       AND   CO.TABLE_NAME = INSTANCE_EXTENDED_INFO_EXP.NAME;
>    WHEN OTHERS THEN RAISE;
>    END;
>      
>     
2970,2971c2994,2998
<  
<     IGNORE_SCN := 0;
---
>     IF (IGNORE_SCN = 0) THEN
>       DBMS_LOGREP_UTIL.DUMP_TRACE(
>         'Warning: ignore_scn is 0 for object '||SCHEMA||'.'||NAME);
>     END IF;
>

SYS.DBMS_OPTIM_BUNDLE - PACKAGE BODY (BP):

271a272
>   LOC_CON_ID NUMBER := CON_ID;
280c281,283
<   
---
>   IF CON_ID = 1 THEN
>     LOC_CON_ID := 0;
>   END IF;
287c290
<   OPEN C1(INSTNAME, CON_ID); 
---
>   OPEN C1(INSTNAME, LOC_CON_ID); 
302c305
<   OPEN C1(INSTNAME_LOCAL, CON_ID); 
---
>   OPEN C1(INSTNAME_LOCAL, LOC_CON_ID); 
760a764
>   LOC_CON_ID NUMBER := CON_ID;
765c769,771
<   
---
>   IF CON_ID = 1 THEN
>     LOC_CON_ID := 0;
>   END IF;
769c775
<   SQL_CMD := 'select count(*) from sys.gv$spparameter where NAME =''optimizer_features_enable'' and ISSPECIFIED = ''TRUE'' and con_id = ' || CON_ID;
---
>   SQL_CMD := 'select count(*) from sys.gv$spparameter where NAME =''optimizer_features_enable'' and ISSPECIFIED = ''TRUE'' and con_id = ' || LOC_CON_ID;
781c787
<              ' and SID != ''*'' and ISSPECIFIED = ''TRUE'' and con_id = ' || CON_ID;
---
>              ' and SID != ''*'' and ISSPECIFIED = ''TRUE'' and con_id = ' || LOC_CON_ID;
805c811
<     OPEN CUR_OFE(INSTNAME, CON_ID); 
---
>     OPEN CUR_OFE(INSTNAME, LOC_CON_ID); 
811c817
<        OPEN CUR_OFE('*', CON_ID);  
---
>        OPEN CUR_OFE('*', LOC_CON_ID);  
894,896c900,908
<   
<   
<   OPEN CUR_COUNT(CON_ID);
---
>   IF CON_ID = 1 THEN
>     
>     
>     
>     OPEN CUR_COUNT(0);
>   ELSE
>     
>     OPEN CUR_COUNT(CON_ID);
>   END IF;

SYS.PRVT_ILM - PACKAGE BODY (BP):

214a215
>       V_TRACE_LEVEL NUMBER := ILM_DEBUG_NONE;
216,219c217
< 
<          
<          
<          IF (ILM_DEBUG_LEVEL > ILM_DEBUG_NONE) THEN
---
>          IF(ILM_DEBUG_LEVEL >= V_TRACE_LEVEL) THEN
222c220
<              TRACE(ILM_DEBUG_LEVEL, 'Start rid            End rid');
---
>              TRACE(V_TRACE_LEVEL, 'Start rid            End rid');
224c222
<                TRACE(ILM_DEBUG_LEVEL, P_TAB_RID(I).START_RID
---
>                TRACE(V_TRACE_LEVEL, P_TAB_RID(I).START_RID
228,230c226,228
<            ELSE
<              TRACE(ILM_DEBUG_LEVEL, 'No rid ranges generated');
<            END IF;
---
>           ELSE
>              TRACE(V_TRACE_LEVEL, 'No rid ranges generated');
>           END IF;
234d231
< 
3009,3010d3005
<          
<                                || ' sys.prvt_ilm.setdebug();'

SYS.CDBVIEW - PACKAGE BODY (PSU & BP):

2,4d1
< 
< function isLegalOwnerViewName(owner IN varchar2, oldview IN varchar2,
<                              newview IN varchar2) return boolean;
21,23d17
<   table_not_found      EXCEPTION;
<   PRAGMA               exception_init(table_not_found, -942);
< 
40,43d33
<   if (not isLegalOwnerViewName(owner, oldview_name, newview_name)) then
<     RAISE table_not_found;
<   end if;
< 
94,139d83
<   -- This function is created to prevent SQL injection. We couldn't use
<   -- dbms_assert because catcdbviews.sql is called before dbms_assert
<   -- is created
<   function isLegalOwnerViewName(owner IN varchar2, oldview IN varchar2,
<                              newview IN varchar2) return boolean as
<     cCheck       number;
<     cleanOldview varchar2(128);
<     cleanNewview varchar2(128);
<   begin
< 
<     -- Check if owner already exist
<     execute immediate 'SELECT COUNT(*) FROM USER$ WHERE NAME = :1'
<              into cCheck using upper(owner);
<     if (cCheck = 0) then
<       RETURN FALSE;
<     end if;
< 
<     -- Check if oldview already exist
<     execute immediate 'SELECT COUNT(*) FROM OBJ$ WHERE NAME = :1' ||
<                       ' AND (TYPE# = 4 OR TYPE# = 2)'
<              into cCheck using upper(oldview);
<     if (cCheck = 0) then
<       RETURN FALSE;
<     end if;
< 
<     -- Check for appropriate newview name
<     -- The following is allowed for newview name
<     -- 1. Substitute 'DBA' with 'CDB'
<     -- 2. Substitute 'AWR_PDB' with 'CDB_HIST'
<     -- 3. Substitute 'ATTRIBUTES' with 'ATTRIB'
<     -- 4. Substitute 'DATABASE' with 'CDB'
<     -- 5. Remove 'REDUCED'
<     -- 6. Add 'AWRI$_CDB'
<     cleanOldview := REGEXP_REPLACE(upper(oldview),
<        'DBA|DATABASE|_| |HIST|ATTRIB(UTE)?S?|CDB|AWR_PDB|REDUCED');
<     cleanNewview := REGEXP_REPLACE(upper(newview),
<        'CDB|DATABASE|_| |HIST|ATTRIB(UTE)?S?|AWRI\$');
< 
<     if (cleanOldview = cleanNewview) then
<       RETURN TRUE;
<     end if;
< 
<     RETURN FALSE;
< 
<   end isLegalOwnerViewName;
<

12.2.0.1

SYS.PRVTEMX_CELL - PACKAGE BODY (JUL2017RUR):

6915,6924c6915,6918
<                              sum(
<                                decode(
<                                  e.metric_id, 
<                                  361, e.metric_value - nvl(b.metric_value,0), 
<                                  0)) bytes,
<                              sum(
<                                decode(
<                                  e.metric_id, 
<                                  360, e.metric_value - nvl(b.metric_value,0),
<                                  0)) rq,
---
>                              sum(decode(e.metric_id, 
>                                           361, e.metric_value, 0)) bytes,
>                              sum(decode(e.metric_id, 
>                                           360, e.metric_value, 0)) rq,
6926,6935c6920,6923
<                              sum(
<                                decode(
<                                  e.metric_id, 
<                                  361, e.metric_value - nvl(b.metric_value,0),
<                                  0)) scrub_by,
<                              sum(
<                                decode(
<                                  e.metric_id, 
<                                  360, e.metric_value - nvl(b.metric_value,0), 
<                                  0)) scrub_rq
---
>                              sum(decode(e.metric_id, 
>                                           361, e.metric_value, 0)) scrub_by,
>                              sum(decode(e.metric_id, 
>                                           360, e.metric_value, 0)) scrub_rq
6945c6933
<                          and e.metric_id between 360 and 361
---
>                          and e.metric_id between 360 and 362

CTXSYS.DRVDDL - PACKAGE BODY (RU):

3607d3606
<   STARTDOCID          NUMBER := NULL;
3709,3716d3707
<     
<     
<     IF (IDX.IDX_TYPE = DRIXMD.IDX_TYPE_CONTEXT2 AND
<         IXP.IXP_ID != 0) THEN
<       STARTDOCID := DRIXMD.GETNEXTID(IDX.IDX_ID, IXP.IXP_ID);
<     END IF;
< 
<     
3736c3727
<     DRVDML.MAINTAINKTAB(IDX, IXP, STARTDOCID);
---
>     DRVDML.MAINTAINKTAB(IDX, IXP);

DVSYS.KU$_DV_REALM_MEMBER_T - TYPE (RU):

5d4
<   oidval        raw(16),                                       /* unique id */

DVSYS.KU$_DV_RULE_SET_MEMBER_T - TYPE (RU):

5d4
<   oidval          raw(16),                                     /* unique id */

DVSYS.SYS_YOID0000072649$ - TYPE (RU):

1,2c1,3
< type         "SYS_YOID0000072649$"              as object( "SYS_NC00001$" RAW(16
< ))
---
> type         "SYS_YOID0000072649$"              as object( "SYS_NC00001$" VARCHA
> R2(128 BYTE), "SYS_NC00002$" VARCHAR2(128 BYTE), "SYS_NC00003$" VARCHAR2(128 BYT
> E))

DVSYS.SYS_YOID0000072661$ - TYPE (RU):

1,2c1,2
< type         "SYS_YOID0000072661$"              as object( "SYS_NC00001$" RAW(16
< ))
---
> type         "SYS_YOID0000072661$"              as object( "SYS_NC00001$" VARCHA
> R2(128 BYTE), "SYS_NC00002$" VARCHAR2(128 BYTE))

DVSYS.SYS_YOID0000072855$ - TYPE (RU):

1,2c1,3
< type         "SYS_YOID0000072855$"              as object( "SYS_NC00001$" RAW(16
< ))
---
> type         "SYS_YOID0000072855$"              as object( "SYS_NC00001$" VARCHA
> R2(128 BYTE), "SYS_NC00002$" VARCHAR2(128 BYTE), "SYS_NC00003$" VARCHAR2(128 BYT
> E))

DVSYS.SYS_YOID0000072867$ - TYPE (RU):

1,2c1,2
< type         "SYS_YOID0000072867$"              as object( "SYS_NC00001$" RAW(16
< ))
---
> type         "SYS_YOID0000072867$"              as object( "SYS_NC00001$" VARCHA
> R2(128 BYTE), "SYS_NC00002$" VARCHAR2(128 BYTE))

DVSYS.KU$_DV_REALM_MEMBER_VIEW - VIEW (RU):

1c1
< select '0','0',sys_guid(),
---
> select '0','0',

DVSYS.KU$_DV_RULE_SET_MEMBER_VIEW - VIEW (RU):

1c1
< select '0','0', sys_guid(),
---
> select '0','0',

SYS.PRVT_COMPRESSION - PACKAGE (RU):

3,4d2
< 
< 

SYS.CDBVIEW - PACKAGE BODY (RU & JUL2017RUR & OCT2017RUR):

2,4d1
< 
< function isLegalOwnerViewName(owner IN varchar2, oldview IN varchar2,
<                              newview IN varchar2) return boolean;
25,27d21
<   table_not_found      EXCEPTION;
<   PRAGMA               exception_init(table_not_found, -942);
< 
38,41d31
<   if (not isLegalOwnerViewName(owner, oldview_name, newview_name)) then
<     RAISE table_not_found;
<   end if;
< 
158,203d147
<   -- This function is created to prevent SQL injection. We couldn't use
<   -- dbms_assert because catcdbviews.sql is called before dbms_assert
<   -- is created
<   function isLegalOwnerViewName(owner IN varchar2, oldview IN varchar2,
<                              newview IN varchar2) return boolean as
<     cCheck       number;
<     cleanOldview varchar2(128);
<     cleanNewview varchar2(128);
<   begin
< 
<     -- Check if owner already exist
<     execute immediate 'SELECT COUNT(*) FROM USER$ WHERE NAME = :1'
<              into cCheck using upper(owner);
<     if (cCheck = 0) then
<       RETURN FALSE;
<     end if;
< 
<     -- Check if oldview already exist
<     execute immediate 'SELECT COUNT(*) FROM OBJ$ WHERE NAME = :1' ||
<                       ' AND (TYPE# = 4 OR TYPE# = 2)'
<              into cCheck using upper(oldview);
<     if (cCheck = 0) then
<       RETURN FALSE;
<     end if;
< 
<     -- Check for appropriate newview name
<     -- The following is allowed for newview name
<     -- 1. Substitute 'DBA' with 'CDB'
<     -- 2. Substitute 'AWR_PDB' with 'CDB_HIST'
<     -- 3. Substitute 'ATTRIBUTES' with 'ATTRIB'
<     -- 4. Substitute 'DATABASE' with 'CDB'
<     -- 5. Remove 'REDUCED'
<     -- 6. Add 'AWRI$_CDB'
<     cleanOldview := REGEXP_REPLACE(upper(oldview),
<        'DBA|DATABASE|_| |HIST|ATTRIB(UTE)?S?|CDB|AWR_PDB|REDUCED');
<     cleanNewview := REGEXP_REPLACE(upper(newview),
<        'CDB|DATABASE|_| |HIST|ATTRIB(UTE)?S?|AWRI\$');
< 
<     if (cleanOldview = cleanNewview) then
<       RETURN TRUE;
<     end if;
< 
<     RETURN FALSE;
< 
<   end isLegalOwnerViewName;
< 

SYS.DBMS_APPLY_ADM_INTERNAL - PACKAGE BODY (RU):

2165c2165,2166
<     IF ( METHOD_NUM IN (XSDCH_METHOD_MAXIMUM, XSDCH_METHOD_MINIMUM,
---
>     
>     IF ((METHOD_NUM IN (XSDCH_METHOD_MAXIMUM, XSDCH_METHOD_MINIMUM,
2167,2168c2168,2171
<                         XSDCH_METHOD_MIN_AND_EQUALS, XSDCH_METHOD_DELTA) AND
<          OPERATION_NUM NOT IN (XSDCH_OP_NUM_INSERT, XSDCH_OP_NUM_UPDATE)) THEN
---
>         XSDCH_METHOD_MIN_AND_EQUALS) AND
>          OPERATION_NUM NOT IN (XSDCH_OP_NUM_INSERT, XSDCH_OP_NUM_UPDATE)) OR
>         (METHOD_NUM = XSDCH_METHOD_DELTA AND
>          OPERATION_NUM != XSDCH_OP_NUM_UPDATE)) THEN

SYS.DBMS_AQADM_SYS - PACKAGE BODY (RU):

2922,2933c2922
<       
< 
< 
< 
< 
< 
< 
< 
< 
< 
< 
<       TMP_STR := NLS_UPPER(LTRIM(RTRIM(SORT_TAB(I))), 'nls_sort=binary');
---
>       TMP_STR := NLS_UPPER(LTRIM(RTRIM(SORT_TAB(I))));

SYS.DBMS_COMPRESSION - PACKAGE BODY (RU):

3,14d2
< 
< 
< 
< KDZACMPLVL_MIN                CONSTANT NUMBER := 0;
< KDZACMPLVL_BASIC              CONSTANT NUMBER := 0;
< KDZACMPLVL_UNCMP              CONSTANT NUMBER := 1;
< KDZACMPLVL_ADVANCED           CONSTANT NUMBER := 2;
< KDZACMPLVL_HCCQL              CONSTANT NUMBER := 3;
< KDZACMPLVL_HCCQH              CONSTANT NUMBER := 4;
< KDZACMPLVL_HCCAL              CONSTANT NUMBER := 5;
< KDZACMPLVL_HCCAH              CONSTANT NUMBER := 6;
< 
362,363c350,351
<      
<      IF COMP_LEVEL = KDZACMPLVL_UNCMP THEN 
---
>        
>      IF COMP_LEVEL = 1 THEN 
365c353
<      ELSIF (COMP_LEVEL IN (KDZACMPLVL_BASIC, KDZACMPLVL_ADVANCED)) THEN
---
>      ELSIF COMP_LEVEL = 2 THEN          
422,426c410
<                   IF (COMP_LEVEL = KDZACMPLVL_BASIC) THEN 
<                     FOR_COMPRESSION :=COMP_BASIC; 
<                   ELSIF COMP_LEVEL = KDZACMPLVL_ADVANCED THEN
<                     FOR_COMPRESSION := COMP_ADVANCED;
<                   END IF;   
---
>                   FOR_COMPRESSION :=COMP_BASIC; 
438c422
<      ELSIF COMP_LEVEL = KDZACMPLVL_HCCQL THEN
---
>      ELSIF COMP_LEVEL = 3 THEN
440c424
<      ELSIF COMP_LEVEL = KDZACMPLVL_HCCQH THEN
---
>      ELSIF COMP_LEVEL = 4 THEN
442c426
<      ELSIF COMP_LEVEL = KDZACMPLVL_HCCAL THEN
---
>      ELSIF COMP_LEVEL = 5 THEN
444c428
<      ELSIF COMP_LEVEL = KDZACMPLVL_HCCAH THEN
---
>      ELSIF COMP_LEVEL = 6 THEN

SYS.DBMS_LOGREP_EXP - PACKAGE BODY (RU):

2993a2994,3018
> 
>     
>     
>    
>    
>    
>    
>    
>    
>    BEGIN
>      SELECT /*+  USE_NL_WITH_INDEX(cd I_CDEF2) */  NVL(MAX(CO.SCN), 0)  
>       INTO IGNORE_SCN
>       FROM SYS.DBA_CAPTURE_PREPARED_TABLES CO
>       WHERE CO.TABLE_OWNER = INSTANCE_EXTENDED_INFO_EXP.SCHEMA
>       AND   CO.TABLE_NAME = INSTANCE_EXTENDED_INFO_EXP.NAME;
>   EXCEPTION
>     WHEN DBMS_STREAMS_DECL.TABLE_OR_VIEW_NOT_EXIST THEN
>       SELECT /*+  USE_NL_WITH_INDEX(cd I_CDEF2) */  NVL(MAX(CO.SCN), 0)  
>       INTO IGNORE_SCN
>       FROM SYS.ALL_CAPTURE_PREPARED_TABLES CO
>       WHERE CO.TABLE_OWNER = INSTANCE_EXTENDED_INFO_EXP.SCHEMA
>       AND   CO.TABLE_NAME = INSTANCE_EXTENDED_INFO_EXP.NAME;
>    WHEN OTHERS THEN RAISE;
>    END;
>      
2996,2997c3021,3025
<  
<     IGNORE_SCN := 0;
---
>     IF (IGNORE_SCN = 0) THEN
>       DBMS_LOGREP_UTIL.DUMP_TRACE(
>         'Warning: ignore_scn is 0 for object '||SCHEMA||'.'||NAME);
>     END IF;
> 

SYS.DBMS_OPTIM_BUNDLE - PACKAGE BODY (RU):

279a280
>   LOC_CON_ID NUMBER := CON_ID;
288c289,291
<   
---
>   IF CON_ID = 1 THEN
>     LOC_CON_ID := 0;
>   END IF;
295c298
<   OPEN C1(INSTNAME, CON_ID); 
---
>   OPEN C1(INSTNAME, LOC_CON_ID); 
310c313
<   OPEN C1(INSTNAME_LOCAL, CON_ID); 
---
>   OPEN C1(INSTNAME_LOCAL, LOC_CON_ID); 
769a773
>   LOC_CON_ID NUMBER := CON_ID;
774c778,780
<   
---
>   IF CON_ID = 1 THEN
>     LOC_CON_ID := 0;
>   END IF;
778c784
<   SQL_CMD := 'select count(*) from sys.gv$spparameter where NAME =''optimizer_features_enable'' and ISSPECIFIED = ''TRUE'' and con_id = ' || CON_ID;
---
>   SQL_CMD := 'select count(*) from sys.gv$spparameter where NAME =''optimizer_features_enable'' and ISSPECIFIED = ''TRUE'' and con_id = ' || LOC_CON_ID;
790c796
<              ' and SID != ''*'' and ISSPECIFIED = ''TRUE'' and con_id = ' || CON_ID;
---
>              ' and SID != ''*'' and ISSPECIFIED = ''TRUE'' and con_id = ' || LOC_CON_ID;
814c820
<     OPEN CUR_OFE(INSTNAME, CON_ID); 
---
>     OPEN CUR_OFE(INSTNAME, LOC_CON_ID); 
820c826
<        OPEN CUR_OFE('*', CON_ID);  
---
>        OPEN CUR_OFE('*', LOC_CON_ID);  
903,905c909,917
<   
<   
<   OPEN CUR_COUNT(CON_ID);
---
>   IF CON_ID = 1 THEN
>     
>     
>     
>     OPEN CUR_COUNT(0);
>   ELSE
>     
>     OPEN CUR_COUNT(CON_ID);
>   END IF;

SYS.DBMS_PRVTAQIM - PACKAGE BODY (RU):

1714,1725c1714
<       
< 
< 
< 
< 
< 
< 
< 
< 
< 
< 
<       TMP_STR := NLS_UPPER(LTRIM(RTRIM(SORT_TAB(I))), 'nls_sort=binary');
---
>       TMP_STR := NLS_UPPER(LTRIM(RTRIM(SORT_TAB(I))));

SYS.DBMS_RCVMAN - PACKAGE BODY (RU):

17221,17229c17221,17237
<          SELECT COUNT(*) INTO LOGEXISTS FROM DUAL
<          WHERE EXISTS
<              (SELECT 1 FROM V$ARCHIVED_LOG
<                        WHERE RESETLOGS_TIME = LAST_RESETTIM
<                          AND RESETLOGS_CHANGE# = LAST_RESETNUM
<                          AND ARCHIVED = 'YES' 
<                          AND THREAD# = LAST_TRD
<                          AND SEQUENCE# = LAST_SEQ+1);
<          IF LOGEXISTS > 0 THEN
---
>          IF LOG.SEQ = 1 THEN
>            LOGEXISTS := 0;
>            
>            SELECT COUNT(*) INTO LOGEXISTS FROM DUAL
>            WHERE EXISTS
>                (SELECT 1 FROM V$ARCHIVED_LOG 
>                          WHERE RESETLOGS_TIME = LAST_RESETTIM
>                            AND RESETLOGS_CHANGE# = LAST_RESETNUM
>                            AND THREAD# = LAST_TRD
>                            AND SEQUENCE# = LAST_SEQ+1);
>            IF LOGEXISTS > 0
>            THEN
>              
>              POSSIBLE_GAP := LAST_SCN;
>              POSSIBLE_GAP_RLGSCN := LAST_RESETNUM;
>            END IF;
>          ELSE

SYS.PRVTEMX_CELL - PACKAGE BODY (RU & OCT2017RUR):

7102,7111c7102,7105
<                              sum(
<                                decode(
<                                  e.metric_id, 
<                                  361, e.metric_value - nvl(b.metric_value,0), 
<                                  0)) bytes,
<                              sum(
<                                decode(
<                                  e.metric_id, 
<                                  360, e.metric_value - nvl(b.metric_value,0),
<                                  0)) rq,
---
>                              sum(decode(e.metric_id, 
>                                           361, e.metric_value, 0)) bytes,
>                              sum(decode(e.metric_id, 
>                                           360, e.metric_value, 0)) rq,
7113,7122c7107,7110
<                              sum(
<                                decode(
<                                  e.metric_id, 
<                                  361, e.metric_value - nvl(b.metric_value,0),
<                                  0)) scrub_by,
<                              sum(
<                                decode(
<                                  e.metric_id, 
<                                  360, e.metric_value - nvl(b.metric_value,0), 
<                                  0)) scrub_rq
---
>                              sum(decode(e.metric_id, 
>                                           361, e.metric_value, 0)) scrub_by,
>                              sum(decode(e.metric_id, 
>                                           360, e.metric_value, 0)) scrub_rq
7132c7120
<                          and e.metric_id between 360 and 361
---
>                          and e.metric_id between 360 and 362

SYS.PRVT_ILM - PACKAGE BODY (RU):

229a230
>  V_TRACE_LEVEL NUMBER := ILM_DEBUG_NONE;
231,233c232
<   
<   
<   IF(ILM_DEBUG_LEVEL > ILM_DEBUG_NONE) THEN
---
>   IF(ILM_DEBUG_LEVEL >= V_TRACE_LEVEL) THEN
236c235
<        TRACE(ILM_DEBUG_LEVEL, 'Start rid            End rid');
---
>        TRACE(V_TRACE_LEVEL, 'Start rid            End rid');
239c238
<          TRACE(ILM_DEBUG_LEVEL, P_TAB_RID(I).START_RID
---
>          TRACE(V_TRACE_LEVEL, P_TAB_RID(I).START_RID
241a241
>         
243c243
<        TRACE(ILM_DEBUG_LEVEL, 'No rid ranges generated');
---
>        TRACE(V_TRACE_LEVEL, 'No rid ranges generated');
244a245
>    
3703,3704d3703
<          
<                                || ' sys.prvt_ilm.setdebug();'

SYS.LOGSTDBY_RU_UNSUPPORT_TAB_12_1 - VIEW (RU):

92c92
<                    where sk.action in (-5, -11)
---
>                    where sk.action=-5
184c184,185
<      where t.obj# = c2.obj#
---
>      where bitand(c2.property, 32) = 32                          /* Hidden */
>        and t.obj# = c2.obj#
212c213
<                    where sk.action in (-5, -11)
---
>                    where sk.action=-5
269c270
<                    where sk.action in (-5, -11)
---
>                    where sk.action=-5

SYS.LOGSTDBY_RU_UNSUPPORT_TAB_12_2 - VIEW (RU):

80,92c80,81
< , 4) = 4) or (c1.type# = 111 and bitand(c1.property, 8) = 8) or (c1.type# in (58
< , 121, 123) and
<      (exists
<       (select 1 from obj$ o3, coltype$ ct3, user$ u3
<        where u3.user# = o3.owner#
<          and c1.obj# = ct3.obj#
<          and c1.intcol# = ct3.intcol#
<          and ct3.toid = o3.oid$
<          and exists (select 1 from system.logstdby$skip_support sk
<                       where sk.action=-11
<                         and sk.name = u3.name   /* type owner */
<                         and sk.name2 = o3.name  /* type name  */))))))))))  /* T
< able has a Temporal Validity column */
---
> , 4) = 4) or (c1.type# = 111 and bitand(c1.property, 8) = 8)))))))  /* Table has
>  a Temporal Validity column */
170c159,160
<            where t.obj# = c2.obj#
---
>            where bitand(c2.property, 32) = 32                      /* Hidden */
>              and t.obj# = c2.obj#
184,195c174,176
<                  (c2.type# = 111 and bitand(c2.property, 8) = 8) or (c2.type# in
<  (58, 121, 123) and
<      (exists
<       (select 1 from obj$ o3, coltype$ ct3, user$ u3
<        where u3.user# = o3.owner#
<          and c2.obj# = ct3.obj#
<          and c2.intcol# = ct3.intcol#
<          and ct3.toid = o3.oid$
<          and exists (select 1 from system.logstdby$skip_support sk
<                       where sk.action=-11
<                         and sk.name = u3.name   /* type owner */
<                         and sk.name2 = o3.name  /* type name  */)))))))) or
---
>                  (c2.type# = 111 and bitand(c2.property, 8) = 8)
> /* REF */
>        )))) or

SYS.LOGSTDBY_SUPPORT_TAB_12_1 - VIEW (RU):

85c85
<                    where sk.action in (-5, -11)
---
>                    where sk.action=-5
195c195,196
<      where t.obj# = c2.obj#
---
>      where bitand(c2.property, 32) = 32                          /* Hidden */
>        and t.obj# = c2.obj#
223c224
<                    where sk.action in (-5, -11)
---
>                    where sk.action=-5
285c286
<                    where sk.action in (-5, -11)
---
>                    where sk.action=-5

SYS.LOGSTDBY_SUPPORT_TAB_12_2 - VIEW (RU):

87,97c87
<              = 'FALSE')) or (c1.type# in (58, 121, 123) and
<      (exists
<       (select 1 from obj$ o3, coltype$ ct3, user$ u3
<        where u3.user# = o3.owner#
<          and c1.obj# = ct3.obj#
<          and c1.intcol# = ct3.intcol#
<          and ct3.toid = o3.oid$
<          and exists (select 1 from system.logstdby$skip_support sk
<                       where sk.action=-11
<                         and sk.name = u3.name   /* type owner */
<                         and sk.name2 = o3.name  /* type name  */))))))))))
---
>              = 'FALSE'))))))))
201c191,192
<            where t.obj# = c2.obj#
---
>            where bitand(c2.property, 32) = 32                      /* Hidden */
>              and t.obj# = c2.obj#
227,237c218,219
<              = 'FALSE')) or (c2.type# in (58, 121, 123) and
<      (exists
<       (select 1 from obj$ o3, coltype$ ct3, user$ u3
<        where u3.user# = o3.owner#
<          and c2.obj# = ct3.obj#
<          and c2.intcol# = ct3.intcol#
<          and ct3.toid = o3.oid$
<          and exists (select 1 from system.logstdby$skip_support sk
<                       where sk.action=-11
<                         and sk.name = u3.name   /* type owner */
<                         and sk.name2 = o3.name  /* type name  */)))))))) or
---
>              = 'FALSE'))                /* REF */
>        )))) or

SYS.LOGSTDBY_UNSUPPORT_TAB_12_1 - VIEW (RU):

92c92
<                    where sk.action in (-5, -11)
---
>                    where sk.action=-5
187c187,188
<      where t.obj# = c2.obj#
---
>      where bitand(c2.property, 32) = 32                          /* Hidden */
>        and t.obj# = c2.obj#
215c216
<                    where sk.action in (-5, -11)
---
>                    where sk.action=-5
272c273
<                    where sk.action in (-5, -11)
---
>                    where sk.action=-5

SYS.LOGSTDBY_UNSUPPORT_TAB_12_2 - VIEW (RU):

96,107c96,97
<              = 'FALSE')) or (c1.type# in (58, 121, 123) and
<      (exists
<       (select 1 from obj$ o3, coltype$ ct3, user$ u3
<        where u3.user# = o3.owner#
<          and c1.obj# = ct3.obj#
<          and c1.intcol# = ct3.intcol#
<          and ct3.toid = o3.oid$
<          and exists (select 1 from system.logstdby$skip_support sk
<                       where sk.action=-11
<                         and sk.name = u3.name   /* type owner */
<                         and sk.name2 = o3.name  /* type name  */))))))))))  /* 0
< x00020000 table is used as an AQ queue table */
---
>              = 'FALSE'))))))))  /* 0x00020000 table is used as an AQ queue table
>  */
197c187,188
<            where t.obj# = c2.obj#
---
>            where bitand(c2.property, 32) = 32                      /* Hidden */
>              and t.obj# = c2.obj#
223,233c214,215
<              = 'FALSE')) or (c2.type# in (58, 121, 123) and
<      (exists
<       (select 1 from obj$ o3, coltype$ ct3, user$ u3
<        where u3.user# = o3.owner#
<          and c2.obj# = ct3.obj#
<          and c2.intcol# = ct3.intcol#
<          and ct3.toid = o3.oid$
<          and exists (select 1 from system.logstdby$skip_support sk
<                       where sk.action=-11
<                         and sk.name = u3.name   /* type owner */
<                         and sk.name2 = o3.name  /* type name  */)))))))) or
---
>              = 'FALSE'))                /* REF */
>        )))) or

SYS.OGG_SUPPORT_TAB_11_2 - VIEW (RU):

40,57d39
<              /* ADT typed table with BFILE attribute */
<              and ((bitand(t.property, 1) = 1 and
<                    c.type# = 114 /* BFILE */ and
<                    exists(select 1
<                           from sys.col$ c1
<                           where c1.obj#=t.obj# and
<                                 c1.name = 'SYS_NC_ROWINFO$' and
<                                 c1.type# = 121))
<              /* Relational table with ADT column having BFILE attribute */
<              or (bitand(t.property, 1) = 0 and
<                  c.type# = 114 /* BFILE */ and
<                  bitand(c.property, 32) = 32 /* hidden */ and
<                  exists (select 1
<                          from sys.col$ c1
<                          where c1.obj#=t.obj# and
<                                c1.col# = c.col# and
<                                bitand(c1.property, 32) = 0 /* not hidden */ and
<                                c1.type# = 121))
59c41
<              or ((c.type# in (8,24,58,112,113,114,115,121,123)
---
>              and ((c.type# in (8,24,58,112,113,114,115,121,123)
61,80c43,61
<                and (bitand(t.property, 1) = 0        /* not a typed table or */
<                  and 0 = (select count(*) from sys.col$ c2
<                  where t.obj# = c2.obj#
<                  and bitand(c2.property, 32)  != 32            /* Not hidden */
<                  and bitand(c2.property, 8)   != 8            /* Not virtual */
<                  and bitand(c2.property, 128) != 128    /* not stored in lob */
<                  and (c2.type# in ( 1,                           /* VARCHAR2 */
<                                     2,                             /* NUMBER */
<                                     12,                              /* DATE */
<                                     23,                               /* RAW */
<                                     96,                              /* CHAR */
<                                     100,                     /* BINARY FLOAT */
<                                     101,                    /* BINARY DOUBLE */
<                                     180,                   /* TIMESTAMP (..) */
<                                     181,     /* TIMESTAMP(..) WITH TIME ZONE */
<                                     182,       /* INTERVAL YEAR(..) TO MONTH */
<                                     183,   /* INTERVAL DAY(..) TO SECOND(..) */
<                                     208,                           /* UROWID */
<                                     231)      /* TIMESTAMP(..) WITH LOCAL TZ */
<                   ))))))
---
>              and (bitand(t.property, 1) = 0          /* not a typed table or */
>              and 0 = (select count(*) from sys.col$ c2
>                where t.obj# = c2.obj#
>                and bitand(c2.property, 32)  != 32              /* Not hidden */
>                and bitand(c2.property, 8)   != 8              /* Not virtual */
>                and bitand(c2.property, 128) != 128      /* not stored in lob */
>                and (c2.type# in ( 1,                             /* VARCHAR2 */
>                                   2,                               /* NUMBER */
>                                   12,                                /* DATE */
>                                   23,                                 /* RAW */
>                                   96,                                /* CHAR */
>                                   100,                       /* BINARY FLOAT */
>                                   101,                      /* BINARY DOUBLE */
>                                   180,                     /* TIMESTAMP (..) */
>                                   181,       /* TIMESTAMP(..) WITH TIME ZONE */
>                                   182,         /* INTERVAL YEAR(..) TO MONTH */
>                                   183,     /* INTERVAL DAY(..) TO SECOND(..) */
>                                   231) /* TIMESTAMP(..) WITH LOCAL TIME ZONE */
>                 )))))
128d108
<                                   208,                             /* UROWID */

SYS.OGG_SUPPORT_TAB_11_2B - VIEW (RU):

41,58d40
<              /* ADT typed table with BFILE attribute */
<              and ((bitand(t.property, 1) = 1 and
<                    c.type# = 114 /* BFILE */ and
<                    exists(select 1
<                           from sys.col$ c1
<                           where c1.obj#=t.obj# and
<                                 c1.name = 'SYS_NC_ROWINFO$' and
<                                 c1.type# = 121))
<              /* Relational table with ADT column having BFILE attribute */
<              or (bitand(t.property, 1) = 0 and
<                  c.type# = 114 /* BFILE */ and
<                  bitand(c.property, 32) = 32 /* hidden */ and
<                  exists (select 1
<                          from sys.col$ c1
<                          where c1.obj#=t.obj# and
<                                c1.col# = c.col# and
<                                bitand(c1.property, 32) = 0 /* not hidden */ and
<                                c1.type# = 121))
60c42
<              or ((c.type# in (8,24,58,112,113,114,115,121,123)
---
>              and ((c.type# in (8,24,58,112,113,114,115,121,123)
62,81c44,62
<                and (bitand(t.property, 1) = 0        /* not a typed table or */
<                and 0 = (select count(*) from sys.col$ c2
<                  where t.obj# = c2.obj#
<                  and bitand(c2.property, 32)  != 32            /* Not hidden */
<                  and bitand(c2.property, 8)   != 8            /* Not virtual */
<                  and bitand(c2.property, 128) != 128    /* not stored in lob */
<                  and (c2.type# in ( 1,                           /* VARCHAR2 */
<                                     2,                             /* NUMBER */
<                                     12,                              /* DATE */
<                                     23,                               /* RAW */
<                                     96,                              /* CHAR */
<                                     100,                     /* BINARY FLOAT */
<                                     101,                    /* BINARY DOUBLE */
<                                     180,                   /* TIMESTAMP (..) */
<                                     181,     /* TIMESTAMP(..) WITH TIME ZONE */
<                                     182,       /* INTERVAL YEAR(..) TO MONTH */
<                                     183,   /* INTERVAL DAY(..) TO SECOND(..) */
<                                     208,                           /* UROWID */
<                                     231)      /* TIMESTAMP(..) WITH LOCAL TZ */
<                   ))))))
---
>              and (bitand(t.property, 1) = 0          /* not a typed table or */
>              and 0 = (select count(*) from sys.col$ c2
>                where t.obj# = c2.obj#
>                and bitand(c2.property, 32)  != 32              /* Not hidden */
>                and bitand(c2.property, 8)   != 8              /* Not virtual */
>                and bitand(c2.property, 128) != 128      /* not stored in lob */
>                and (c2.type# in ( 1,                             /* VARCHAR2 */
>                                   2,                               /* NUMBER */
>                                   12,                                /* DATE */
>                                   23,                                 /* RAW */
>                                   96,                                /* CHAR */
>                                   100,                       /* BINARY FLOAT */
>                                   101,                      /* BINARY DOUBLE */
>                                   180,                     /* TIMESTAMP (..) */
>                                   181,       /* TIMESTAMP(..) WITH TIME ZONE */
>                                   182,         /* INTERVAL YEAR(..) TO MONTH */
>                                   183,     /* INTERVAL DAY(..) TO SECOND(..) */
>                                   231) /* TIMESTAMP(..) WITH LOCAL TIME ZONE */
>                 )))))
124d104
<                                   208,                             /* UROWID */

SYS.OGG_SUPPORT_TAB_12_1 - VIEW (RU):

66,96d65
<              /* ADT typed table with BFILE attribute */
<              or (bitand(t.property, 1) = 1 and
<                  c.type# = 114 /* BFILE */ and
<                  exists(select 1
<                         from sys.col$ c1
<                         where c1.obj# = t.obj# and
<                               c1.name = 'SYS_NC_ROWINFO$' and
<                               c1.type# = 121))
<              /* Relational table with ADT column having BFILE attribute */
<              or (bitand(t.property, 1) = 0 and
<                  c.type# = 114 /* BFILE */ and
<                  bitand(c.property, 32)=32 /* hidden */ and
<                  exists (select 1
<                          from sys.col$ c1
<                          where c1.obj# = t.obj# and
<                                c1.col# = c.col# and
<                                bitand(c1.property, 32) = 0 /* not hidden */ and
<                                c1.type# = 121))
<              /* Any table (relational or typed) that has an unsupported */
<              /* built-in ADT */
<              or (c.type# in (58, 121, 123) and
<  (exists
<   (select 1 from obj$ o3, coltype$ ct3, user$ u3
<     where u3.user# = o3.owner#
<       and c.obj# = ct3.obj#
<       and c.intcol# = ct3.intcol#
<       and ct3.toid = o3.oid$
<       and exists (select 1 from system.logstdby$skip_support sk
<                    where sk.action in (-11)
<                      and sk.name = u3.name   /* type owner */
<                      and sk.name2 = o3.name  /* type name  */))))
117d85
<                                   208,                             /* UROWID */
162c130
<                    where sk.action in (-5, -11)
---
>                    where sk.action=-5
201d168
<                                   208,                             /* UROWID */
223c190,191
<      where t.obj# = c2.obj#
---
>      where bitand(c2.property, 32) = 32                          /* Hidden */
>        and t.obj# = c2.obj#
251c219
<                    where sk.action in (-5, -11)
---
>                    where sk.action=-5
289c257
<                    where sk.action in (-5, -11)
---
>                    where sk.action=-5

SYS.OGG_SUPPORT_TAB_12_2 - VIEW (RU):

67,97d66
<              /* ADT typed table with BFILE attribute */
<              or (bitand(t.property, 1) = 1 and
<                  c.type# = 114 /* BFILE */ and
<                  exists(select 1
<                         from sys.col$ c1
<                         where c1.obj#=t.obj# and
<                               c1.name = 'SYS_NC_ROWINFO$' and
<                               c1.type# = 121))
<              /* Relational table with ADT column having BFILE attribute */
<              or (bitand(t.property, 1) = 0 and
<                  c.type# = 114 /* BFILE */ and
<                  bitand(c.property, 32) = 32 /* hidden */ and
<                  exists (select 1
<                          from sys.col$ c1
<                          where c1.obj#=t.obj# and
<                                c1.col# = c.col# and
<                                bitand(c1.property, 32) = 0 /* not hidden */ and
<                                c1.type# = 121))
<              /* Any table (relational or typed) that has an unsupported */
<              /* built-in ADT */
<              or (c.type# in (58, 121, 123) and
<      (exists
<       (select 1 from obj$ o3, coltype$ ct3, user$ u3
<        where u3.user# = o3.owner#
<          and c.obj# = ct3.obj#
<          and c.intcol# = ct3.intcol#
<          and ct3.toid = o3.oid$
<          and exists (select 1 from system.logstdby$skip_support sk
<                       where sk.action=-11
<                         and sk.name = u3.name   /* type owner */
<                         and sk.name2 = o3.name  /* type name  */))))
118d86
<                                   208,                             /* UROWID */
177d144
<                                   208,                             /* UROWID */
195c162,163
<            where t.obj# = c2.obj#
---
>            where bitand(c2.property, 32) = 32                      /* Hidden */
>              and t.obj# = c2.obj#
209c177,179
<                  (c2.type# = 111 and bitand(c2.property, 8) = 8))))) or
---
>                  (c2.type# = 111 and bitand(c2.property, 8) = 8)
> /* REF */
>        )))) or

Useful Links:

 

Have you enjoyed? Please leave a comment or give a 👍!

2 comments

    • JayaKishore Udayagiri on May 6, 2018 at 10:32
    • Reply

    Hi RJ,

    Could you please post the SQL statement to find which objects were modified and created after Patch

    Thanks
    JK

    1. Hi JK,
      It's not a SQL. I calculate the checksum of objects before and after the patch and compare them.
      Take a look in the official oracle doc for DBMS_CRYPTO and research how to calculate hashes using it. This is the first step!
      Regards,
      RJ

Leave a Reply

Your email address will not be published.