{"id":4731,"date":"2020-08-27T10:22:00","date_gmt":"2020-08-27T13:22:00","guid":{"rendered":"https:\/\/www.dbarj.com.br\/2020\/08\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\/"},"modified":"2020-08-27T10:22:00","modified_gmt":"2020-08-27T13:22:00","slug":"oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes","status":"publish","type":"post","link":"https:\/\/www.dbarj.com.br\/pt-br\/2020\/08\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\/","title":{"rendered":"Oracle July 2020 Critical Patch Advisory &#8211; PL\/SQL detailed changes"},"content":{"rendered":"<p><strong>Oracle July 2020 Critical Patch Advisory changed objects performed by each database patch.<\/strong><\/p>\n<p>For more details and the catalog, check the main post: <a href=\"https:\/\/www.dbarj.com.br\/pt-br\/2020\/08\/dissecting-200714-bp-psu-ru-and-rur\/\" target=\"_blank\" rel=\"noopener noreferrer\">Dissecting 200714 BP, PSU, RU and RUR<\/a><\/p>\n<h2><strong>What exactly changed for each?<br \/>\n<span style=\"font-size: 18pt; color: #800000;\">(click to see detailed line changes)<\/span><\/strong><\/h2>\n<ul>\n<li>11.2.0.4\n<ul>\n<li><a href=\"#SYS.DBMS_RCVMAN.PACKAGE BODY.11.2.0.4_BP\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY 11g (BP)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_RCVMAN.PACKAGE BODY.11.2.0.4_PSU\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY 11g (PSU)<\/a><\/li>\n<\/ul>\n<\/li>\n<li>12.1.0.2\n<ul>\n<li><a href=\"#SYS.DBMS_RCVMAN.PACKAGE.12.1.0.2_PSU\">SYS.DBMS_RCVMAN &#8211; PACKAGE 12cR1 (PSU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_STATS.PACKAGE.12.1.0.2_PSU\">SYS.DBMS_STATS &#8211; PACKAGE 12cR1 (PSU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_STATS.PACKAGE.12.1.0.2_BP\">SYS.DBMS_STATS &#8211; PACKAGE 12cR1 (BP)<\/a><\/li>\n<li><a href=\"#SYS.CDBVIEW.PACKAGE BODY.12.1.0.2_BP\">SYS.CDBVIEW &#8211; PACKAGE BODY 12cR1 (BP)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_RCVMAN.PACKAGE BODY.12.1.0.2_BP\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY 12cR1 (BP)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_RCVMAN.PACKAGE BODY.12.1.0.2_PSU\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY 12cR1 (PSU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_STATS.PACKAGE BODY.12.1.0.2_PSU\">SYS.DBMS_STATS &#8211; PACKAGE BODY 12cR1 (PSU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_STATS.PACKAGE BODY.12.1.0.2_BP\">SYS.DBMS_STATS &#8211; PACKAGE BODY 12cR1 (BP)<\/a><\/li>\n<li><a href=\"#SYS.SCHEDULER$_JOB_EVENT_HANDLER.PROCEDURE.12.1.0.2_BP\">SYS.SCHEDULER$_JOB_EVENT_HANDLER &#8211; PROCEDURE 12cR1 (BP)<\/a><\/li>\n<li><a href=\"#SYS.GV_$BACKUP_DATAFILE.VIEW.12.1.0.2_PSU\">SYS.GV_$BACKUP_DATAFILE &#8211; VIEW 12cR1 (PSU)<\/a><\/li>\n<li><a href=\"#SYS.GV_$BACKUP_PIECE.VIEW.12.1.0.2_PSU\">SYS.GV_$BACKUP_PIECE &#8211; VIEW 12cR1 (PSU)<\/a><\/li>\n<li><a href=\"#SYS.GV_$BACKUP_SET.VIEW.12.1.0.2_PSU\">SYS.GV_$BACKUP_SET &#8211; VIEW 12cR1 (PSU)<\/a><\/li>\n<li><a href=\"#SYS.GV_$BACKUP_SPFILE.VIEW.12.1.0.2_PSU\">SYS.GV_$BACKUP_SPFILE &#8211; VIEW 12cR1 (PSU)<\/a><\/li>\n<li><a href=\"#SYS.GV_$DATAFILE_COPY.VIEW.12.1.0.2_PSU\">SYS.GV_$DATAFILE_COPY &#8211; VIEW 12cR1 (PSU)<\/a><\/li>\n<li><a href=\"#SYS.GV_$PROXY_DATAFILE.VIEW.12.1.0.2_PSU\">SYS.GV_$PROXY_DATAFILE &#8211; VIEW 12cR1 (PSU)<\/a><\/li>\n<li><a href=\"#SYS.V_$BACKUP_DATAFILE.VIEW.12.1.0.2_PSU\">SYS.V_$BACKUP_DATAFILE &#8211; VIEW 12cR1 (PSU)<\/a><\/li>\n<li><a href=\"#SYS.V_$BACKUP_PIECE.VIEW.12.1.0.2_PSU\">SYS.V_$BACKUP_PIECE &#8211; VIEW 12cR1 (PSU)<\/a><\/li>\n<li><a href=\"#SYS.V_$BACKUP_SET.VIEW.12.1.0.2_PSU\">SYS.V_$BACKUP_SET &#8211; VIEW 12cR1 (PSU)<\/a><\/li>\n<li><a href=\"#SYS.V_$BACKUP_SPFILE.VIEW.12.1.0.2_PSU\">SYS.V_$BACKUP_SPFILE &#8211; VIEW 12cR1 (PSU)<\/a><\/li>\n<li><a href=\"#SYS.V_$DATAFILE_COPY.VIEW.12.1.0.2_PSU\">SYS.V_$DATAFILE_COPY &#8211; VIEW 12cR1 (PSU)<\/a><\/li>\n<li><a href=\"#SYS.V_$PROXY_DATAFILE.VIEW.12.1.0.2_PSU\">SYS.V_$PROXY_DATAFILE &#8211; VIEW 12cR1 (PSU)<\/a><\/li>\n<\/ul>\n<\/li>\n<li>12.2.0.1\n<ul>\n<li><a href=\"#DVSYS.DBMS_MACADM.PACKAGE BODY.12.2.0.1_RU\">DVSYS.DBMS_MACADM &#8211; PACKAGE BODY 12cR2 (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_RCVMAN.PACKAGE BODY.12.2.0.1_APR2020RUR\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY 12cR2 (JAN2020RUR &amp; APR2020RUR)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_RCVMAN.PACKAGE BODY.12.2.0.1_RU\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY 12cR2 (RU)<\/a><\/li>\n<\/ul>\n<\/li>\n<li>18.0.0.0\n<ul>\n<li><a href=\"#DVSYS.DBMS_MACADM.PACKAGE BODY.18.0.0.0_RU\">DVSYS.DBMS_MACADM &#8211; PACKAGE BODY 18c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_JOIN.FUNCTION.18.0.0.0_RU\">MDSYS.SDO_JOIN &#8211; FUNCTION 18c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_BACKUP_RESTORE.PACKAGE.18.0.0.0_18.10RUR\">SYS.DBMS_BACKUP_RESTORE &#8211; PACKAGE 18c (18.10RUR)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_BACKUP_RESTORE.PACKAGE.18.0.0.0_18.9RUR\">SYS.DBMS_BACKUP_RESTORE &#8211; PACKAGE 18c (18.9RUR)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_BACKUP_RESTORE.PACKAGE.18.0.0.0_RU\">SYS.DBMS_BACKUP_RESTORE &#8211; PACKAGE 18c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_REGISTRY.PACKAGE.18.0.0.0_18.9RUR\">SYS.DBMS_REGISTRY &#8211; PACKAGE 18c (18.9RUR)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_REGISTRY.PACKAGE.18.0.0.0_18.10RUR\">SYS.DBMS_REGISTRY &#8211; PACKAGE 18c (18.10RUR)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_REGISTRY.PACKAGE.18.0.0.0_RU\">SYS.DBMS_REGISTRY &#8211; PACKAGE 18c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_REPORT.PACKAGE.18.0.0.0_RU\">SYS.DBMS_REPORT &#8211; PACKAGE 18c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_SQLTUNE_UTIL2.PACKAGE.18.0.0.0_RU\">SYS.DBMS_SQLTUNE_UTIL2 &#8211; PACKAGE 18c (RU)<\/a><\/li>\n<li><a href=\"#SYS.PRVT_AWR_VIEWER.PACKAGE.18.0.0.0_RU\">SYS.PRVT_AWR_VIEWER &#8211; PACKAGE 18c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_RCVMAN.PACKAGE BODY.18.0.0.0_18.9RUR\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY 18c (18.9RUR)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_RCVMAN.PACKAGE BODY.18.0.0.0_RU\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY 18c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_RCVMAN.PACKAGE BODY.18.0.0.0_18.10RUR\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY 18c (18.10RUR)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_REPORT.PACKAGE BODY.18.0.0.0_RU\">SYS.DBMS_REPORT &#8211; PACKAGE BODY 18c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_SQLTUNE.PACKAGE BODY.18.0.0.0_RU\">SYS.DBMS_SQLTUNE &#8211; PACKAGE BODY 18c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_SQLTUNE_UTIL2.PACKAGE BODY.18.0.0.0_RU\">SYS.DBMS_SQLTUNE_UTIL2 &#8211; PACKAGE BODY 18c (RU)<\/a><\/li>\n<li><a href=\"#SYS.PRVTEMX_PERF.PACKAGE BODY.18.0.0.0_RU\">SYS.PRVTEMX_PERF &#8211; PACKAGE BODY 18c (RU)<\/a><\/li>\n<li><a href=\"#SYS.PRVTEMX_RSRCMGR.PACKAGE BODY.18.0.0.0_RU\">SYS.PRVTEMX_RSRCMGR &#8211; PACKAGE BODY 18c (RU)<\/a><\/li>\n<li><a href=\"#SYS.PRVT_AWR_VIEWER.PACKAGE BODY.18.0.0.0_RU\">SYS.PRVT_AWR_VIEWER &#8211; PACKAGE BODY 18c (RU)<\/a><\/li>\n<li><a href=\"#SYS.PRVT_AWRV_METADATA.TYPE BODY.18.0.0.0_RU\">SYS.PRVT_AWRV_METADATA &#8211; TYPE BODY 18c (RU)<\/a><\/li>\n<li><a href=\"#SYS.WRI$_REPT_AWRV.TYPE BODY.18.0.0.0_RU\">SYS.WRI$_REPT_AWRV &#8211; TYPE BODY 18c (RU)<\/a><\/li>\n<\/ul>\n<\/li>\n<li>19.0.0.0\n<ul>\n<li><a href=\"#CTXSYS.DRVDDL.PACKAGE BODY.19.0.0.0_RU\">CTXSYS.DRVDDL &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#DVSYS.DBMS_MACADM.PACKAGE BODY.19.0.0.0_RU\">DVSYS.DBMS_MACADM &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_JOIN.FUNCTION.19.0.0.0_RU\">MDSYS.SDO_JOIN &#8211; FUNCTION 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.MDPRVT_IDX.PACKAGE.19.0.0.0_RU\">MDSYS.MDPRVT_IDX &#8211; PACKAGE 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.PRVT_IDX.PACKAGE.19.0.0.0_RU\">MDSYS.PRVT_IDX &#8211; PACKAGE 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_IDX.PACKAGE.19.0.0.0_RU\">MDSYS.SDO_IDX &#8211; PACKAGE 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_UTIL.PACKAGE.19.0.0.0_RU\">MDSYS.SDO_UTIL &#8211; PACKAGE 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.MDPRVT_GMD.PACKAGE BODY.19.0.0.0_RU\">MDSYS.MDPRVT_GMD &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.MDPRVT_IDX.PACKAGE BODY.19.0.0.0_RU\">MDSYS.MDPRVT_IDX &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.PRVT_PC.PACKAGE BODY.19.0.0.0_RU\">MDSYS.PRVT_PC &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.PRVT_SAM.PACKAGE BODY.19.0.0.0_RU\">MDSYS.PRVT_SAM &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDOTNPC.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDOTNPC &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_3GL.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_3GL &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_CS.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_CS &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_GEOM.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_GEOM &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_GEOR.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_GEOR &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_GEOR_AGGR.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_GEOR_AGGR &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_IDX.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_IDX &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_META.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_META &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_MIGRATE.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_MIGRATE &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_PC_PKG.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_PC_PKG &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_RDF_INTERNAL.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_RDF_INTERNAL &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_SAM.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_SAM &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_TIN_PKG.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_TIN_PKG &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_TPIDX.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_TPIDX &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_TRKR.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_TRKR &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_TUNE.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_TUNE &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_UTIL.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_UTIL &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_GEOM_TRIG_INS1.TRIGGER.19.0.0.0_RU\">MDSYS.SDO_GEOM_TRIG_INS1 &#8211; TRIGGER 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_GEOM_TRIG_UPD1.TRIGGER.19.0.0.0_RU\">MDSYS.SDO_GEOM_TRIG_UPD1 &#8211; TRIGGER 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SAMCLUST_IMP_T.TYPE BODY.19.0.0.0_RU\">MDSYS.SAMCLUST_IMP_T &#8211; TYPE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SDO_INDEX_METHOD_10I.TYPE BODY.19.0.0.0_RU\">MDSYS.SDO_INDEX_METHOD_10I &#8211; TYPE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.SPARQL_SERVICE_IMPL_T.TYPE BODY.19.0.0.0_RU\">MDSYS.SPARQL_SERVICE_IMPL_T &#8211; TYPE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.ALL_SDO_GEOM_METADATA.VIEW.19.0.0.0_RU\">MDSYS.ALL_SDO_GEOM_METADATA &#8211; VIEW 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.ALL_SDO_INDEX_METADATA.VIEW.19.0.0.0_RU\">MDSYS.ALL_SDO_INDEX_METADATA &#8211; VIEW 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.MY_SDO_INDEX_METADATA.VIEW.19.0.0.0_RU\">MDSYS.MY_SDO_INDEX_METADATA &#8211; VIEW 19c (RU)<\/a><\/li>\n<li><a href=\"#MDSYS.USER_SDO_INDEX_METADATA.VIEW.19.0.0.0_RU\">MDSYS.USER_SDO_INDEX_METADATA &#8211; VIEW 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DG$GETFLATDG.FUNCTION.19.0.0.0_RU\">SYS.DG$GETFLATDG &#8211; FUNCTION 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DG$HASDGINDEX.FUNCTION.19.0.0.0_RU\">SYS.DG$HASDGINDEX &#8211; FUNCTION 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_ASH.PACKAGE.19.0.0.0_RU\">SYS.DBMS_ASH &#8211; PACKAGE 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_BACKUP_RESTORE.PACKAGE.19.0.0.0_19.7RUR\">SYS.DBMS_BACKUP_RESTORE &#8211; PACKAGE 19c (19.7RUR)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_BACKUP_RESTORE.PACKAGE.19.0.0.0_19.6RUR\">SYS.DBMS_BACKUP_RESTORE &#8211; PACKAGE 19c (19.6RUR)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_BACKUP_RESTORE.PACKAGE.19.0.0.0_RU\">SYS.DBMS_BACKUP_RESTORE &#8211; PACKAGE 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_HADOOP_INTERNAL.PACKAGE.19.0.0.0_RU\">SYS.DBMS_HADOOP_INTERNAL &#8211; PACKAGE 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_REGISTRY.PACKAGE.19.0.0.0_19.6RUR\">SYS.DBMS_REGISTRY &#8211; PACKAGE 19c (19.6RUR)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_REGISTRY.PACKAGE.19.0.0.0_RU\">SYS.DBMS_REGISTRY &#8211; PACKAGE 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_REGISTRY.PACKAGE.19.0.0.0_19.7RUR\">SYS.DBMS_REGISTRY &#8211; PACKAGE 19c (19.7RUR)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_SQLTUNE_UTIL2.PACKAGE.19.0.0.0_RU\">SYS.DBMS_SQLTUNE_UTIL2 &#8211; PACKAGE 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.PRVT_ASH_OMX.PACKAGE.19.0.0.0_RU\">SYS.PRVT_ASH_OMX &#8211; PACKAGE 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.PRVT_AWR_VIEWER.PACKAGE.19.0.0.0_RU\">SYS.PRVT_AWR_VIEWER &#8211; PACKAGE 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.PRVT_DBMS_INMEMORY_ADMIN.PACKAGE.19.0.0.0_RU\">SYS.PRVT_DBMS_INMEMORY_ADMIN &#8211; PACKAGE 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_ASH.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_ASH &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_AUTO_INDEX.PACKAGE BODY.19.0.0.0_19.6RUR\">SYS.DBMS_AUTO_INDEX &#8211; PACKAGE BODY 19c (RU &amp; 19.7RUR &amp; 19.6RUR)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_AUTO_INDEX_INTERNAL.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_AUTO_INDEX_INTERNAL &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_DBFS_CONTENT.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_DBFS_CONTENT &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_HADOOP.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_HADOOP &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_HADOOP_INTERNAL.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_HADOOP_INTERNAL &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_ISCHED.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_ISCHED &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_ISYNCREF.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_ISYNCREF &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_LDAP.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_LDAP &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_PERF.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_PERF &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_RCVMAN.PACKAGE BODY.19.0.0.0_19.6RUR\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY 19c (19.6RUR)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_RCVMAN.PACKAGE BODY.19.0.0.0_19.7RUR\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY 19c (19.7RUR)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_RCVMAN.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_SQLTUNE.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_SQLTUNE &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_SQLTUNE_UTIL2.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_SQLTUNE_UTIL2 &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.PRVTEMX_PERF.PACKAGE BODY.19.0.0.0_RU\">SYS.PRVTEMX_PERF &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.PRVT_ASH_OMX.PACKAGE BODY.19.0.0.0_RU\">SYS.PRVT_ASH_OMX &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.PRVT_AWR_VIEWER.PACKAGE BODY.19.0.0.0_RU\">SYS.PRVT_AWR_VIEWER &#8211; PACKAGE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBMS_FEATURE_IMC.PROCEDURE.19.0.0.0_RU\">SYS.DBMS_FEATURE_IMC &#8211; PROCEDURE 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.PRVT_AWRV_METADATA.TYPE BODY.19.0.0.0_RU\">SYS.PRVT_AWRV_METADATA &#8211; TYPE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.WRI$_REPT_ASH_OMX.TYPE BODY.19.0.0.0_RU\">SYS.WRI$_REPT_ASH_OMX &#8211; TYPE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.WRI$_REPT_AWRV.TYPE BODY.19.0.0.0_RU\">SYS.WRI$_REPT_AWRV &#8211; TYPE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.WRI$_REPT_PERF.TYPE BODY.19.0.0.0_RU\">SYS.WRI$_REPT_PERF &#8211; TYPE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.WRI$_REPT_SESSION.TYPE BODY.19.0.0.0_RU\">SYS.WRI$_REPT_SESSION &#8211; TYPE BODY 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.DBA_WORKLOAD_CAPTURES.VIEW.19.0.0.0_RU\">SYS.DBA_WORKLOAD_CAPTURES &#8211; VIEW 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.INT$DBA_JSON_DATAGUIDES.VIEW.19.0.0.0_RU\">SYS.INT$DBA_JSON_DATAGUIDES &#8211; VIEW 19c (RU)<\/a><\/li>\n<li><a href=\"#SYS.INT$DBA_JSON_DG_COLS.VIEW.19.0.0.0_RU\">SYS.INT$DBA_JSON_DG_COLS &#8211; VIEW 19c (RU)<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Changed Objects<\/h2>\n<p><span style=\"font-size: 12pt;\"><strong>P.S:<br \/>\n<\/strong><\/span><span style=\"font-size: 12pt;\"><strong>&gt; = Added Lines<br \/>\n&lt; = Removed Lines<\/strong><\/span><\/p>\n<h3><strong>11.2.0.4<\/strong><\/h3>\n<div id=\"SYS.DBMS_RCVMAN.PACKAGE BODY.11.2.0.4_PSU\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY (PSU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">6265,6278d6264\r\n&lt; WITH\r\n&lt; MY_DBINC AS\r\n&lt;    (SELECT RESETLOGS_TIME, \r\n&lt;            RESETLOGS_CHANGE#,\r\n&lt;            PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&lt;     FROM V$DATABASE_INCARNATION             \r\n&lt;     START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&lt;           AND  RESETLOGS_TIME    = THIS_RESET_TIME  \r\n&lt;     CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&lt;     UNION ALL\r\n&lt;     SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&lt;            THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&lt;            NULL             NEXT_RESETLOGS_CHANGE#\r\n&lt;     FROM DUAL)\r\n6318c6304,6316\r\n&lt;            FROM V$DATAFILE_COPY CDF, MY_DBINC\r\n---\r\n&gt;            FROM V$DATAFILE_COPY CDF, \r\n&gt;             (SELECT RESETLOGS_TIME,\r\n&gt;               RESETLOGS_CHANGE#,\r\n&gt;              PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&gt;              FROM V$DATABASE_INCARNATION\r\n&gt;              START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&gt;               AND  RESETLOGS_TIME    = THIS_RESET_TIME\r\n&gt;               CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&gt;               UNION ALL\r\n&gt;               SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&gt;                THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&gt;                 NULL             NEXT_RESETLOGS_CHANGE#\r\n&gt;                FROM DUAL) MY_DBINC\r\n6464c6462,6474\r\n&lt;             FROM V$DATAFILE_COPY CDF, MY_DBINC\r\n---\r\n&gt;             FROM V$DATAFILE_COPY CDF, \r\n&gt;             (SELECT RESETLOGS_TIME,\r\n&gt;               RESETLOGS_CHANGE#,\r\n&gt;              PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&gt;              FROM V$DATABASE_INCARNATION\r\n&gt;              START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&gt;               AND  RESETLOGS_TIME    = THIS_RESET_TIME\r\n&gt;               CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&gt;               UNION ALL\r\n&gt;               SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&gt;                THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&gt;                 NULL             NEXT_RESETLOGS_CHANGE#\r\n&gt;                FROM DUAL) MY_DBINC\r\n<\/pre>\n<div id=\"SYS.DBMS_RCVMAN.PACKAGE BODY.11.2.0.4_BP\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY (BP):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">6265,6278d6264\r\n&lt; WITH\r\n&lt; MY_DBINC AS\r\n&lt;    (SELECT RESETLOGS_TIME, \r\n&lt;            RESETLOGS_CHANGE#,\r\n&lt;            PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&lt;     FROM V$DATABASE_INCARNATION             \r\n&lt;     START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&lt;           AND  RESETLOGS_TIME    = THIS_RESET_TIME  \r\n&lt;     CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&lt;     UNION ALL\r\n&lt;     SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&lt;            THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&lt;            NULL             NEXT_RESETLOGS_CHANGE#\r\n&lt;     FROM DUAL)\r\n6318c6304,6316\r\n&lt;            FROM V$DATAFILE_COPY CDF, MY_DBINC\r\n---\r\n&gt;            FROM V$DATAFILE_COPY CDF, \r\n&gt;             (SELECT RESETLOGS_TIME,\r\n&gt;               RESETLOGS_CHANGE#,\r\n&gt;              PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&gt;              FROM V$DATABASE_INCARNATION\r\n&gt;              START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&gt;               AND  RESETLOGS_TIME    = THIS_RESET_TIME\r\n&gt;               CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&gt;               UNION ALL\r\n&gt;               SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&gt;                THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&gt;                 NULL             NEXT_RESETLOGS_CHANGE#\r\n&gt;                FROM DUAL) MY_DBINC\r\n6464c6462,6474\r\n&lt;             FROM V$DATAFILE_COPY CDF, MY_DBINC\r\n---\r\n&gt;             FROM V$DATAFILE_COPY CDF, \r\n&gt;             (SELECT RESETLOGS_TIME,\r\n&gt;               RESETLOGS_CHANGE#,\r\n&gt;              PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&gt;              FROM V$DATABASE_INCARNATION\r\n&gt;              START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&gt;               AND  RESETLOGS_TIME    = THIS_RESET_TIME\r\n&gt;               CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&gt;               UNION ALL\r\n&gt;               SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&gt;                THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&gt;                 NULL             NEXT_RESETLOGS_CHANGE#\r\n&gt;                FROM DUAL) MY_DBINC\r\n<\/pre>\n<h3><strong>12.1.0.2<\/strong><\/h3>\n<div id=\"SYS.DBMS_RCVMAN.PACKAGE.12.1.0.2_PSU\">SYS.DBMS_RCVMAN &#8211; PACKAGE (PSU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1173a1174,1175\r\n&gt; PROCEDURE setGuid(guid IN varchar2 DEFAULT NULL);\r\n&gt; \r\n1981a1984,1988\r\n&gt; PROCEDURE translateProxyCopyGuid(\r\n&gt;    guid         IN varchar2\r\n&gt;   ,device_type  IN varchar2\r\n&gt;   ,statusMask   IN binary_integer);\r\n&gt; \r\n2067a2075,2078\r\n&gt; \r\n&gt; PROCEDURE translateBackupPieceGuid(\r\n&gt;    guid         IN varchar2\r\n&gt;   ,statusMask   IN binary_integer);\r\n<\/pre>\n<div id=\"SYS.DBMS_STATS.PACKAGE.12.1.0.2_BP\">SYS.DBMS_STATS &#8211; PACKAGE (BP):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">2567,2568c2567,2569\r\n&lt; --              ownname or statid in the stattab; (2) statistics are locked; (3)\r\n&lt; --              objects in the stattab no longer exist in the current database\r\n---\r\n&gt; --              ownname or statid in the stattab; (2) statistics are locked;\r\n&gt; --              (3) objects in the stattab no longer exist in the current\r\n&gt; --              database\r\n2800,2803c2801,2804\r\n&lt; --         from partition level statistics. It will aggregate all statistics except number of\r\n&lt; --         distinct values for columns and number of distinct keys of indexes.\r\n&lt; --         The existing histograms of the columns at the table level\r\n&lt; --         are also aggregated.The global statistics are  gathered\r\n---\r\n&gt; --         from partition level statistics. It will aggregate all statistics\r\n&gt; --         except number of distinct values for columns and number of distinct\r\n&gt; --         keys of indexes.  The existing histograms of the columns at the\r\n&gt; --         table level are also aggregated.  The global statistics are gathered\r\n2810,2814c2811,2816\r\n&lt; --         This option is useful when you collect statistics for a new partition added\r\n&lt; --         into a range partitioned table (for example, a table  partitioned by month).\r\n&lt; --         The new data in the partition makes the global statistics stale (especially\r\n&lt; --         the min\/max values of the partitioning column). This stale global statistics\r\n&lt; --         may cause suboptimal plans.  In this scenario, users can collect statistics\r\n---\r\n&gt; --         This option is useful when you collect statistics for a new\r\n&gt; --         partition added into a range partitioned table (for example, a table\r\n&gt; --         partitioned by month).  The new data in the partition makes the\r\n&gt; --         global statistics stale (especially the min\/max values of the\r\n&gt; --         partitioning column). This stale global statistics may cause\r\n&gt; --         suboptimal plans.  In this scenario, users can collect statistics\r\n2816,2823c2818,2826\r\n&lt; --         option so that the global statistics will reflect the newly added range.\r\n&lt; --         This option will take less time than 'GLOBAL AND PARTITION' option since the\r\n&lt; --         global statistics are aggregated from underlying partition level statistics.\r\n&lt; --         Note that, if you are using APPROX_GLOBAL AND PARTITION,\r\n&lt; --         you still  need to collect global statistics (with granularity = 'GLOBAL' option)\r\n&lt; --         when there is substantial amount of change at the table level.\r\n&lt; --         For example you added 10% more data to the table.  This is needed to get the\r\n&lt; --         correct number of distinct values\/keys statistic at table level.\r\n---\r\n&gt; --         option so that the global statistics will reflect the newly added\r\n&gt; --         range.  This option will take less time than 'GLOBAL AND PARTITION'\r\n&gt; --         option since the global statistics are aggregated from underlying\r\n&gt; --         partition level statistics.  Note that, if you are using\r\n&gt; --         APPROX_GLOBAL AND PARTITION, you still  need to collect global\r\n&gt; --         statistics (with granularity = 'GLOBAL' option) when there is\r\n&gt; --         substantial amount of change at the table level.  For example you\r\n&gt; --         added 10% more data to the table.  This is needed to get the correct\r\n&gt; --         number of distinct values\/keys statistic at table level.\r\n3018,3021c3021,3024\r\n&lt; --   obj_filter_list - a list of object filters. When provided, gather_schema_stats\r\n&lt; --     will only gather statistics on the objects which satisfy at least one\r\n&lt; --     object filter in the list as needed. Please refer to obj_filter_list\r\n&lt; --     in  gather_database_stats.\r\n---\r\n&gt; --   obj_filter_list - a list of object filters. When provided,\r\n&gt; --     gather_schema_stats will only gather statistics on the objects which\r\n&gt; --     satisfy at least one object filter in the list as needed. Please refer\r\n&gt; --     to obj_filter_list in gather_database_stats.\r\n3188,3201c3191,3204\r\n&lt; --   obj_filter_list - a list of object filters. When provided, gather_database_\r\n&lt; --     stats will only gather statistics on the objects which satisfy at least\r\n&lt; --     one of the object filters as needed.\r\n&lt; --\r\n&lt; --     In one single object filter, we can specify the constraints on the object\r\n&lt; --     attributes. The attribute values specified in the object filter are case-\r\n&lt; --     insensitive unless double-quoted. Wildcard is allowed in the attribute values.\r\n&lt; --     Suppose non-null values s1, s2, ... are specified for attributes a1, a2, ... in\r\n&lt; --     one object filter. An object o is said to satisfy this object filter if\r\n&lt; --     (o.a1 like s1) and (o.a2 like s2) and ... is true.\r\n&lt; --     The following example specifies that any table with a \"SALES\" prefix in the\r\n&lt; --     SH schema and any table in the SYS schema, if stale, will be gathered.\r\n&lt; --     Note that the statistics for the partitions of the tables also will be\r\n&lt; --     gathered if they are stale.\r\n---\r\n&gt; --   obj_filter_list - a list of object filters. When provided,\r\n&gt; --     gather_database_stats will only gather statistics on the objects which\r\n&gt; --     satisfy at least one of the object filters as needed.\r\n&gt; --\r\n&gt; --     In one single object filter, we can specify the constraints on the\r\n&gt; --     object attributes. The attribute values specified in the object filter\r\n&gt; --     are case-insensitive unless double-quoted. Wildcard is allowed in the\r\n&gt; --     attribute values.  Suppose non-null values s1, s2, ... are specified for\r\n&gt; --     attributes a1, a2, ... in one object filter. An object o is said to\r\n&gt; --     satisfy this object filter if (o.a1 like s1) and (o.a2 like s2) and ...\r\n&gt; --     is true.  The following example specifies that any table with a \"SALES\"\r\n&gt; --     prefix in the SH schema and any table in the SYS schema, if stale, will\r\n&gt; --     be gathered.  Note that the statistics for the partitions of the tables\r\n&gt; --     also will be gathered if they are stale.\r\n3770,3773c3773,3776\r\n&lt; --   obj_filter_list - a list of object filters. When provided, gather_dictionary_\r\n&lt; --     stats will only gather statistics on the objects which satisfy at least\r\n&lt; --     one of the object filters as needed. Please refer to obj_filter_list in\r\n&lt; --     gather_database_stats\r\n---\r\n&gt; --   obj_filter_list - a list of object filters. When provided,\r\n&gt; --     gather_dictionary_stats will only gather statistics on the objects which\r\n&gt; --     satisfy at least one of the object filters as needed. Please refer to\r\n&gt; --     obj_filter_list in gather_database_stats\r\n4443,4448c4446,4452\r\n&lt; -- This function creates a column stats entry in the system for a user specified\r\n&lt; -- column group or an expression in a table. Statistics for this extension will\r\n&lt; -- be gathered when user or auto statistics gathering job gathers statistics for\r\n&lt; -- the table. We call statistics for such an extension, \"extended statistics\".\r\n&lt; -- This function returns the name of this newly created entry for the extension.\r\n&lt; -- If the extension already exists then this function  throws an error.\r\n---\r\n&gt; -- This function creates a column stats entry in the system for a user\r\n&gt; -- specified column group or an expression in a table. Statistics for this\r\n&gt; -- extension will be gathered when user or auto statistics gathering job\r\n&gt; -- gathers statistics for the table. We call statistics for such an extension,\r\n&gt; -- \"extended statistics\".  This function returns the name of this newly created\r\n&gt; -- entry for the extension.  If the extension already exists then this function\r\n&gt; -- throws an error.\r\n4641,4648c4645,4652\r\n&lt; -- This procedure deletes the recorded column (group) usage information\r\n&lt; -- from dictionary. Column (group) usage information is used by gather\r\n&lt; -- procedures to automatically determine the columns that require histograms.\r\n&lt; -- Also this information is used by create_extended_stats to create extensions\r\n&lt; -- for the group of columns seen in the workload. So resetting column usage\r\n&lt; -- will affect these functionalities. This procedure should be used only in very\r\n&lt; -- rare cases where you need to start from scratch and need to seed\r\n&lt; -- column usage all over again.\r\n---\r\n&gt; -- This procedure deletes the recorded column (group) usage information from\r\n&gt; -- dictionary. Column (group) usage information is used by gather procedures to\r\n&gt; -- automatically determine the columns that require histograms.  Also this\r\n&gt; -- information is used by create_extended_stats to create extensions for the\r\n&gt; -- group of columns seen in the workload. So resetting column usage will affect\r\n&gt; -- these functionalities. This procedure should be used only in very rare cases\r\n&gt; -- where you need to start from scratch and need to seed column usage all over\r\n&gt; -- again.\r\n4665,4668c4669,4672\r\n&lt; --     ownname         - owner name. If null it reports column usage information\r\n&lt; --                       for tables in all schemas in the database.\r\n&lt; --     tabname         - table name. If null, it reports column usage information\r\n&lt; --                       for all tables of ownname.\r\n---\r\n&gt; --     ownname         - owner name. If null it reports column usage\r\n&gt; --                       information for tables in all schemas in the database.\r\n&gt; --     tabname         - table name. If null, it reports column usage\r\n&gt; --                       information for all tables of ownname.\r\n4691c4695\r\n&lt; --...............................................................................\r\n---\r\n&gt; --.............................................................................\r\n4693c4697\r\n&lt; --###############################################################################\r\n---\r\n&gt; --#############################################################################\r\n4704c4708\r\n&lt; --###############################################################################\r\n---\r\n&gt; --#############################################################################\r\n5009a5014,5025\r\n&gt; \r\n&gt;   -- For internal use\r\n&gt;   --\r\n&gt;   -- Quickly estimate number of rows in the table for auto sampling\r\n&gt;   --\r\n&gt;   function get_row_count_estimate(\r\n&gt;         ownname varchar2,                 -- table owner to select from\r\n&gt;         tabname varchar2,                 -- table name to select from\r\n&gt;         partname varchar2,                -- table partition name\r\n&gt;         nblks integer,\r\n&gt;         degree integer\r\n&gt;         ) return number;\r\n<\/pre>\n<div id=\"SYS.DBMS_STATS.PACKAGE.12.1.0.2_PSU\">SYS.DBMS_STATS &#8211; PACKAGE (PSU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">2559,2560c2559,2561\r\n&lt; --              ownname or statid in the stattab; (2) statistics are locked; (3)\r\n&lt; --              objects in the stattab no longer exist in the current database\r\n---\r\n&gt; --              ownname or statid in the stattab; (2) statistics are locked;\r\n&gt; --              (3) objects in the stattab no longer exist in the current\r\n&gt; --              database\r\n2792,2795c2793,2796\r\n&lt; --         from partition level statistics. It will aggregate all statistics except number of\r\n&lt; --         distinct values for columns and number of distinct keys of indexes.\r\n&lt; --         The existing histograms of the columns at the table level\r\n&lt; --         are also aggregated.The global statistics are  gathered\r\n---\r\n&gt; --         from partition level statistics. It will aggregate all statistics\r\n&gt; --         except number of distinct values for columns and number of distinct\r\n&gt; --         keys of indexes.  The existing histograms of the columns at the\r\n&gt; --         table level are also aggregated.  The global statistics are gathered\r\n2802,2806c2803,2808\r\n&lt; --         This option is useful when you collect statistics for a new partition added\r\n&lt; --         into a range partitioned table (for example, a table  partitioned by month).\r\n&lt; --         The new data in the partition makes the global statistics stale (especially\r\n&lt; --         the min\/max values of the partitioning column). This stale global statistics\r\n&lt; --         may cause suboptimal plans.  In this scenario, users can collect statistics\r\n---\r\n&gt; --         This option is useful when you collect statistics for a new\r\n&gt; --         partition added into a range partitioned table (for example, a table\r\n&gt; --         partitioned by month).  The new data in the partition makes the\r\n&gt; --         global statistics stale (especially the min\/max values of the\r\n&gt; --         partitioning column). This stale global statistics may cause\r\n&gt; --         suboptimal plans.  In this scenario, users can collect statistics\r\n2808,2815c2810,2818\r\n&lt; --         option so that the global statistics will reflect the newly added range.\r\n&lt; --         This option will take less time than 'GLOBAL AND PARTITION' option since the\r\n&lt; --         global statistics are aggregated from underlying partition level statistics.\r\n&lt; --         Note that, if you are using APPROX_GLOBAL AND PARTITION,\r\n&lt; --         you still  need to collect global statistics (with granularity = 'GLOBAL' option)\r\n&lt; --         when there is substantial amount of change at the table level.\r\n&lt; --         For example you added 10% more data to the table.  This is needed to get the\r\n&lt; --         correct number of distinct values\/keys statistic at table level.\r\n---\r\n&gt; --         option so that the global statistics will reflect the newly added\r\n&gt; --         range.  This option will take less time than 'GLOBAL AND PARTITION'\r\n&gt; --         option since the global statistics are aggregated from underlying\r\n&gt; --         partition level statistics.  Note that, if you are using\r\n&gt; --         APPROX_GLOBAL AND PARTITION, you still  need to collect global\r\n&gt; --         statistics (with granularity = 'GLOBAL' option) when there is\r\n&gt; --         substantial amount of change at the table level.  For example you\r\n&gt; --         added 10% more data to the table.  This is needed to get the correct\r\n&gt; --         number of distinct values\/keys statistic at table level.\r\n3010,3013c3013,3016\r\n&lt; --   obj_filter_list - a list of object filters. When provided, gather_schema_stats\r\n&lt; --     will only gather statistics on the objects which satisfy at least one\r\n&lt; --     object filter in the list as needed. Please refer to obj_filter_list\r\n&lt; --     in  gather_database_stats.\r\n---\r\n&gt; --   obj_filter_list - a list of object filters. When provided,\r\n&gt; --     gather_schema_stats will only gather statistics on the objects which\r\n&gt; --     satisfy at least one object filter in the list as needed. Please refer\r\n&gt; --     to obj_filter_list in gather_database_stats.\r\n3180,3193c3183,3196\r\n&lt; --   obj_filter_list - a list of object filters. When provided, gather_database_\r\n&lt; --     stats will only gather statistics on the objects which satisfy at least\r\n&lt; --     one of the object filters as needed.\r\n&lt; --\r\n&lt; --     In one single object filter, we can specify the constraints on the object\r\n&lt; --     attributes. The attribute values specified in the object filter are case-\r\n&lt; --     insensitive unless double-quoted. Wildcard is allowed in the attribute values.\r\n&lt; --     Suppose non-null values s1, s2, ... are specified for attributes a1, a2, ... in\r\n&lt; --     one object filter. An object o is said to satisfy this object filter if\r\n&lt; --     (o.a1 like s1) and (o.a2 like s2) and ... is true.\r\n&lt; --     The following example specifies that any table with a \"SALES\" prefix in the\r\n&lt; --     SH schema and any table in the SYS schema, if stale, will be gathered.\r\n&lt; --     Note that the statistics for the partitions of the tables also will be\r\n&lt; --     gathered if they are stale.\r\n---\r\n&gt; --   obj_filter_list - a list of object filters. When provided,\r\n&gt; --     gather_database_stats will only gather statistics on the objects which\r\n&gt; --     satisfy at least one of the object filters as needed.\r\n&gt; --\r\n&gt; --     In one single object filter, we can specify the constraints on the\r\n&gt; --     object attributes. The attribute values specified in the object filter\r\n&gt; --     are case-insensitive unless double-quoted. Wildcard is allowed in the\r\n&gt; --     attribute values.  Suppose non-null values s1, s2, ... are specified for\r\n&gt; --     attributes a1, a2, ... in one object filter. An object o is said to\r\n&gt; --     satisfy this object filter if (o.a1 like s1) and (o.a2 like s2) and ...\r\n&gt; --     is true.  The following example specifies that any table with a \"SALES\"\r\n&gt; --     prefix in the SH schema and any table in the SYS schema, if stale, will\r\n&gt; --     be gathered.  Note that the statistics for the partitions of the tables\r\n&gt; --     also will be gathered if they are stale.\r\n3762,3765c3765,3768\r\n&lt; --   obj_filter_list - a list of object filters. When provided, gather_dictionary_\r\n&lt; --     stats will only gather statistics on the objects which satisfy at least\r\n&lt; --     one of the object filters as needed. Please refer to obj_filter_list in\r\n&lt; --     gather_database_stats\r\n---\r\n&gt; --   obj_filter_list - a list of object filters. When provided,\r\n&gt; --     gather_dictionary_stats will only gather statistics on the objects which\r\n&gt; --     satisfy at least one of the object filters as needed. Please refer to\r\n&gt; --     obj_filter_list in gather_database_stats\r\n4435,4440c4438,4444\r\n&lt; -- This function creates a column stats entry in the system for a user specified\r\n&lt; -- column group or an expression in a table. Statistics for this extension will\r\n&lt; -- be gathered when user or auto statistics gathering job gathers statistics for\r\n&lt; -- the table. We call statistics for such an extension, \"extended statistics\".\r\n&lt; -- This function returns the name of this newly created entry for the extension.\r\n&lt; -- If the extension already exists then this function  throws an error.\r\n---\r\n&gt; -- This function creates a column stats entry in the system for a user\r\n&gt; -- specified column group or an expression in a table. Statistics for this\r\n&gt; -- extension will be gathered when user or auto statistics gathering job\r\n&gt; -- gathers statistics for the table. We call statistics for such an extension,\r\n&gt; -- \"extended statistics\".  This function returns the name of this newly created\r\n&gt; -- entry for the extension.  If the extension already exists then this function\r\n&gt; -- throws an error.\r\n4633,4640c4637,4644\r\n&lt; -- This procedure deletes the recorded column (group) usage information\r\n&lt; -- from dictionary. Column (group) usage information is used by gather\r\n&lt; -- procedures to automatically determine the columns that require histograms.\r\n&lt; -- Also this information is used by create_extended_stats to create extensions\r\n&lt; -- for the group of columns seen in the workload. So resetting column usage\r\n&lt; -- will affect these functionalities. This procedure should be used only in very\r\n&lt; -- rare cases where you need to start from scratch and need to seed\r\n&lt; -- column usage all over again.\r\n---\r\n&gt; -- This procedure deletes the recorded column (group) usage information from\r\n&gt; -- dictionary. Column (group) usage information is used by gather procedures to\r\n&gt; -- automatically determine the columns that require histograms.  Also this\r\n&gt; -- information is used by create_extended_stats to create extensions for the\r\n&gt; -- group of columns seen in the workload. So resetting column usage will affect\r\n&gt; -- these functionalities. This procedure should be used only in very rare cases\r\n&gt; -- where you need to start from scratch and need to seed column usage all over\r\n&gt; -- again.\r\n4657,4660c4661,4664\r\n&lt; --     ownname         - owner name. If null it reports column usage information\r\n&lt; --                       for tables in all schemas in the database.\r\n&lt; --     tabname         - table name. If null, it reports column usage information\r\n&lt; --                       for all tables of ownname.\r\n---\r\n&gt; --     ownname         - owner name. If null it reports column usage\r\n&gt; --                       information for tables in all schemas in the database.\r\n&gt; --     tabname         - table name. If null, it reports column usage\r\n&gt; --                       information for all tables of ownname.\r\n4683c4687\r\n&lt; --...............................................................................\r\n---\r\n&gt; --.............................................................................\r\n4685c4689\r\n&lt; --###############################################################################\r\n---\r\n&gt; --#############################################################################\r\n4696c4700\r\n&lt; --###############################################################################\r\n---\r\n&gt; --#############################################################################\r\n5001a5006,5017\r\n&gt; \r\n&gt;   -- For internal use\r\n&gt;   --\r\n&gt;   -- Quickly estimate number of rows in the table for auto sampling\r\n&gt;   --\r\n&gt;   function get_row_count_estimate(\r\n&gt;         ownname varchar2,                 -- table owner to select from\r\n&gt;         tabname varchar2,                 -- table name to select from\r\n&gt;         partname varchar2,                -- table partition name\r\n&gt;         nblks integer,\r\n&gt;         degree integer\r\n&gt;         ) return number;\r\n<\/pre>\n<div id=\"SYS.CDBVIEW.PACKAGE BODY.12.1.0.2_BP\">SYS.CDBVIEW &#8211; PACKAGE BODY (BP):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">119a120\r\n&gt;     ownerId      number;\r\n125,129c126,132\r\n&lt;     execute immediate 'SELECT COUNT(*) FROM USER$ WHERE NAME = :1'\r\n&lt;              into cCheck using upper(owner);\r\n&lt;     if (cCheck = 0) then\r\n&lt;       RETURN FALSE;\r\n&lt;     end if;\r\n---\r\n&gt;     -- USER$ contains both users and roles, exclude roles from the check\r\n&gt;     begin\r\n&gt;       execute immediate 'SELECT USER# FROM USER$ WHERE TYPE# = 1 AND NAME = :1'\r\n&gt;                into ownerId using upper(owner);\r\n&gt;     exception\r\n&gt;       when no_data_found then return false;\r\n&gt;     end;\r\n131,137c134,146\r\n&lt;     -- Check if oldview already exist\r\n&lt;     execute immediate 'SELECT COUNT(*) FROM OBJ$ WHERE NAME = :1' ||\r\n&lt;                       ' AND (TYPE# = 4 OR TYPE# = 2)'\r\n&lt;              into cCheck using upper(oldview);\r\n&lt;     if (cCheck = 0) then\r\n&lt;       RETURN FALSE;\r\n&lt;     end if;\r\n---\r\n&gt;     -- Check if oldview already exist, qualify with owner# to avoid ORA-1422\r\n&gt;     -- error,if two dictionary view with the same name exists across different\r\n&gt;     -- schemas like DBA_DV_STATUS which exists in both SYS and DVSYS schemas.\r\n&gt;     -- Bug 29339155: Check for remoteowner being null to avoid ORA-1422 error\r\n&gt;     -- if there were remote PL\/SQL objects depending on oldview.\r\n&gt;     begin\r\n&gt;       execute immediate 'SELECT 1 FROM OBJ$ WHERE NAME = :1' ||\r\n&gt;                         ' AND TYPE# in (2, 4) and owner# = :2' ||\r\n&gt;                         ' AND REMOTEOWNER is null'\r\n&gt;                into cCheck using upper(oldview), ownerId;\r\n&gt;     exception\r\n&gt;       when no_data_found then return false;\r\n&gt;     end;\r\n<\/pre>\n<div id=\"SYS.DBMS_RCVMAN.PACKAGE BODY.12.1.0.2_BP\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY (BP):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">7446,7459d7445\r\n&lt; WITH\r\n&lt; MY_DBINC AS\r\n&lt;    (SELECT RESETLOGS_TIME, \r\n&lt;            RESETLOGS_CHANGE#,\r\n&lt;            PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&lt;     FROM V$DATABASE_INCARNATION             \r\n&lt;     START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&lt;           AND  RESETLOGS_TIME    = THIS_RESET_TIME  \r\n&lt;     CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&lt;     UNION ALL\r\n&lt;     SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&lt;            THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&lt;            NULL             NEXT_RESETLOGS_CHANGE#\r\n&lt;     FROM DUAL)\r\n7499c7485,7497\r\n&lt;            FROM V$DATAFILE_COPY CDF, MY_DBINC\r\n---\r\n&gt;            FROM V$DATAFILE_COPY CDF, \r\n&gt;             (SELECT RESETLOGS_TIME,\r\n&gt;               RESETLOGS_CHANGE#,\r\n&gt;              PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&gt;              FROM V$DATABASE_INCARNATION\r\n&gt;              START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&gt;               AND  RESETLOGS_TIME    = THIS_RESET_TIME\r\n&gt;               CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&gt;               UNION ALL\r\n&gt;               SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&gt;                THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&gt;                 NULL             NEXT_RESETLOGS_CHANGE#\r\n&gt;                FROM DUAL) MY_DBINC\r\n7654c7652,7664\r\n&lt;             FROM V$DATAFILE_COPY CDF, MY_DBINC\r\n---\r\n&gt;             FROM V$DATAFILE_COPY CDF, \r\n&gt;             (SELECT RESETLOGS_TIME,\r\n&gt;               RESETLOGS_CHANGE#,\r\n&gt;              PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&gt;              FROM V$DATABASE_INCARNATION\r\n&gt;              START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&gt;               AND  RESETLOGS_TIME    = THIS_RESET_TIME\r\n&gt;               CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&gt;               UNION ALL\r\n&gt;               SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&gt;                THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&gt;                 NULL             NEXT_RESETLOGS_CHANGE#\r\n&gt;                FROM DUAL) MY_DBINC\r\n<\/pre>\n<div id=\"SYS.DBMS_RCVMAN.PACKAGE BODY.12.1.0.2_PSU\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY (PSU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">422a423,424\r\n&gt; GUIDQUALIFIER VARCHAR2(32);\r\n&gt; \r\n1204a1207\r\n&gt;      AND (GUIDQUALIFIER IS NULL OR GUID = GUIDQUALIFIER)\r\n1312a1316\r\n&gt;      AND (GUIDQUALIFIER IS NULL OR GUID = GUIDQUALIFIER)\r\n1420a1425\r\n&gt;      AND (GUIDQUALIFIER IS NULL OR BS.GUID = GUIDQUALIFIER)\r\n1532a1538\r\n&gt;       AND (GUIDQUALIFIER IS NULL OR BS.GUID = GUIDQUALIFIER)\r\n1643a1650\r\n&gt;       AND (GUIDQUALIFIER IS NULL OR BS.GUID = GUIDQUALIFIER)\r\n2029a2037\r\n&gt;      AND (GUIDQUALIFIER IS NULL OR DC.GUID = GUIDQUALIFIER)\r\n2166a2175\r\n&gt;      AND (GUIDQUALIFIER IS NULL OR GUID = GUIDQUALIFIER)\r\n2294a2304\r\n&gt;      AND (GUIDQUALIFIER IS NULL OR BS.GUID = GUIDQUALIFIER)\r\n2574c2584,2586\r\n&lt;   ,STATUSMASK           IN     BINARY_INTEGER)\r\n---\r\n&gt;   ,STATUSMASK           IN     BINARY_INTEGER\r\n&gt;   ,PDBKEY               IN     NUMBER         DEFAULT NULL\r\n&gt;   ,GUID                 IN     VARCHAR2       DEFAULT NULL)\r\n2668a2681,2682\r\n&gt;       AND (FINDPROXYCOPY.GUID IS NULL OR\r\n&gt;            FINDPROXYCOPY.GUID = GUID)\r\n2757a2772\r\n&gt;       AND (FINDPROXYCOPY.GUID IS NULL)\r\n3773c3788,3790\r\n&lt;   ,STATUSMASK   IN     BINARY_INTEGER)\r\n---\r\n&gt;   ,STATUSMASK   IN     BINARY_INTEGER\r\n&gt;   ,PDBKEY       IN     NUMBER   DEFAULT NULL\r\n&gt;   ,GUID         IN     VARCHAR2 DEFAULT NULL)\r\n3812a3830,3831\r\n&gt;       AND (FINDBACKUPPIECE_C.GUID IS NULL OR\r\n&gt;            FINDBACKUPPIECE_C.GUID = BS.GUID)\r\n4804c4823,4825\r\n&lt;      FROM X$KCCDC DC, V$CONTAINERS PDB\r\n---\r\n&gt;      FROM X$KCCDC DC\r\n&gt;      LEFT OUTER JOIN V$CONTAINERS PDB\r\n&gt;        ON DC.CON_ID = PDB.CON_ID\r\n4807d4827\r\n&lt;       AND DC.CON_ID = PDB.CON_ID\r\n4847c4867,4869\r\n&lt;      FROM X$KCCBF BF, V$CONTAINERS PDB\r\n---\r\n&gt;      FROM X$KCCBF BF\r\n&gt;      LEFT OUTER JOIN V$CONTAINERS PDB\r\n&gt;        ON BF.CON_ID = PDB.CON_ID\r\n4850d4871\r\n&lt;       AND BF.CON_ID = PDB.CON_ID\r\n4890c4911,4913\r\n&lt;      FROM X$KCCPD PD, V$CONTAINERS PDB\r\n---\r\n&gt;      FROM X$KCCPD PD\r\n&gt;      LEFT OUTER JOIN V$CONTAINERS PDB\r\n&gt;        ON PD.CON_ID = PDB.CON_ID\r\n4893d4915\r\n&lt;       AND PD.CON_ID = PDB.CON_ID\r\n5011c5033,5035\r\n&lt;      FROM X$KCCDC DC, V$CONTAINERS PDB\r\n---\r\n&gt;      FROM X$KCCDC DC\r\n&gt;      LEFT OUTER JOIN V$CONTAINERS PDB\r\n&gt;        ON DC.CON_ID = PDB.CON_ID\r\n5014,5015c5038\r\n&lt;       AND DC.CON_ID  = PDB.CON_ID\r\n&lt;       AND PDB.CON_ID = TRANSLATEALLDFOFPDBID_C.PDBID\r\n---\r\n&gt;       AND DC.CON_ID = TRANSLATEALLDFOFPDBID_C.PDBID\r\n5055c5078,5080\r\n&lt;      FROM X$KCCBF BF, V$CONTAINERS PDB\r\n---\r\n&gt;      FROM X$KCCBF BF\r\n&gt;      LEFT OUTER JOIN V$CONTAINERS PDB\r\n&gt;        ON BF.CON_ID = PDB.CON_ID\r\n5058,5059c5083\r\n&lt;       AND BF.CON_ID  = PDB.CON_ID\r\n&lt;       AND PDB.CON_ID = TRANSLATEALLDFOFPDBID_C.PDBID\r\n---\r\n&gt;       AND BF.CON_ID = TRANSLATEALLDFOFPDBID_C.PDBID\r\n5099c5123,5125\r\n&lt;      FROM X$KCCPD PD, V$CONTAINERS PDB\r\n---\r\n&gt;      FROM X$KCCPD PD\r\n&gt;      LEFT OUTER JOIN V$CONTAINERS PDB\r\n&gt;        ON PD.CON_ID = PDB.CON_ID\r\n5102,5103c5128\r\n&lt;       AND PD.CON_ID  = PDB.CON_ID\r\n&lt;       AND PDB.CON_ID = TRANSLATEALLDFOFPDBID_C.PDBID\r\n---\r\n&gt;       AND PD.CON_ID = TRANSLATEALLDFOFPDBID_C.PDBID\r\n5220c5245,5247\r\n&lt;      FROM X$KCCDC DC, V$CONTAINERS PDB\r\n---\r\n&gt;      FROM X$KCCDC DC\r\n&gt;      LEFT OUTER JOIN V$CONTAINERS PDB\r\n&gt;        ON DC.CON_ID = PDB.CON_ID\r\n5223,5224c5250\r\n&lt;       AND DC.CON_ID = PDB.CON_ID\r\n&lt;       AND ISTRANSLATEDPDBID(PDB.CON_ID) = TRUE#\r\n---\r\n&gt;       AND ISTRANSLATEDPDBID(DC.CON_ID) = TRUE#\r\n5264c5290,5292\r\n&lt;      FROM X$KCCBF BF, V$CONTAINERS PDB\r\n---\r\n&gt;      FROM X$KCCBF BF\r\n&gt;      LEFT OUTER JOIN V$CONTAINERS PDB\r\n&gt;        ON BF.CON_ID = PDB.CON_ID\r\n5267,5268c5295\r\n&lt;       AND BF.CON_ID = PDB.CON_ID\r\n&lt;       AND ISTRANSLATEDPDBID(PDB.CON_ID) = TRUE#\r\n---\r\n&gt;       AND ISTRANSLATEDPDBID(BF.CON_ID) = TRUE#\r\n5308c5335,5337\r\n&lt;      FROM X$KCCPD PD, V$CONTAINERS PDB\r\n---\r\n&gt;      FROM X$KCCPD PD\r\n&gt;      LEFT OUTER JOIN V$CONTAINERS PDB\r\n&gt;        ON PD.CON_ID = PDB.CON_ID\r\n5311,5312c5340\r\n&lt;       AND PD.CON_ID = PDB.CON_ID\r\n&lt;       AND ISTRANSLATEDPDBID(PDB.CON_ID) = TRUE#\r\n---\r\n&gt;       AND ISTRANSLATEDPDBID(PD.CON_ID) = TRUE#\r\n7368,7381d7395\r\n&lt; WITH\r\n&lt; MY_DBINC AS\r\n&lt;    (SELECT RESETLOGS_TIME, \r\n&lt;            RESETLOGS_CHANGE#,\r\n&lt;            PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&lt;     FROM V$DATABASE_INCARNATION             \r\n&lt;     START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&lt;           AND  RESETLOGS_TIME    = THIS_RESET_TIME  \r\n&lt;     CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&lt;     UNION ALL\r\n&lt;     SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&lt;            THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&lt;            NULL             NEXT_RESETLOGS_CHANGE#\r\n&lt;     FROM DUAL)\r\n7421c7435,7447\r\n&lt;            FROM V$DATAFILE_COPY CDF, MY_DBINC\r\n---\r\n&gt;            FROM V$DATAFILE_COPY CDF, \r\n&gt;             (SELECT RESETLOGS_TIME,\r\n&gt;               RESETLOGS_CHANGE#,\r\n&gt;              PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&gt;              FROM V$DATABASE_INCARNATION\r\n&gt;              START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&gt;               AND  RESETLOGS_TIME    = THIS_RESET_TIME\r\n&gt;               CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&gt;               UNION ALL\r\n&gt;               SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&gt;                THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&gt;                 NULL             NEXT_RESETLOGS_CHANGE#\r\n&gt;                FROM DUAL) MY_DBINC\r\n7576c7602,7614\r\n&lt;             FROM V$DATAFILE_COPY CDF, MY_DBINC\r\n---\r\n&gt;             FROM V$DATAFILE_COPY CDF, \r\n&gt;             (SELECT RESETLOGS_TIME,\r\n&gt;               RESETLOGS_CHANGE#,\r\n&gt;              PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&gt;              FROM V$DATABASE_INCARNATION\r\n&gt;              START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&gt;               AND  RESETLOGS_TIME    = THIS_RESET_TIME\r\n&gt;               CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&gt;               UNION ALL\r\n&gt;               SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&gt;                THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&gt;                 NULL             NEXT_RESETLOGS_CHANGE#\r\n&gt;                FROM DUAL) MY_DBINC\r\n13409c13447,13449\r\n&lt;   ,STARTBSKEY   IN     NUMBER          DEFAULT NULL)\r\n---\r\n&gt;   ,STARTBSKEY   IN     NUMBER          DEFAULT NULL\r\n&gt;   ,PDBKEY       IN     NUMBER          DEFAULT NULL\r\n&gt;   ,GUID         IN     VARCHAR2        DEFAULT NULL)\r\n13445c13485,13487\r\n&lt;                                 STATUSMASK  =&gt; STATUSMASK);\r\n---\r\n&gt;                                 STATUSMASK  =&gt; STATUSMASK,\r\n&gt;                                 PDBKEY      =&gt; PDBKEY,\r\n&gt;                                 GUID        =&gt; GUID);\r\n15531a15574\r\n&gt;    SETGUID(NULL);\r\n21842a21886,21909\r\n&gt; PROCEDURE TRANSLATEPROXYCOPYGUID(\r\n&gt;    GUID        IN VARCHAR2\r\n&gt;   ,DEVICE_TYPE IN VARCHAR2\r\n&gt;   ,STATUSMASK  IN BINARY_INTEGER)\r\n&gt; IS\r\n&gt;    PDBKEY NUMBER := NULL;\r\n&gt; BEGIN\r\n&gt;    DEB(DEB_ENTER, 'translateProxyCopyGuid');\r\n&gt;    VALIDATESTATE(GETPROXYCOPYCURSOR);\r\n&gt;    DEB(DEB_OPEN, 'findProxyCopy');\r\n&gt; \r\n&gt; \r\n&gt;    OPEN FINDPROXYCOPY(PDBKEY         =&gt; PDBKEY,\r\n&gt;                       GUID           =&gt; GUID,\r\n&gt;                       DEVICETYPE     =&gt; DEVICE_TYPE,\r\n&gt;                       STATUSMASK     =&gt; NVL(STATUSMASK, 0));\r\n&gt;    GETPROXYCOPYCURSOR       := 'findProxyCopy';\r\n&gt;    GETPROXYCOPYNOROWS.ERROR := -20310;\r\n&gt;    GETPROXYCOPYNOROWS.MSG   := 'no matching proxy copy found';\r\n&gt;    GETPROXYCOPYBYHANDLE     := FALSE;\r\n&gt;    DEB(DEB_EXIT);\r\n&gt; END TRANSLATEPROXYCOPYGUID;\r\n&gt; \r\n&gt; \r\n22209a22277,22293\r\n&gt; \r\n&gt; PROCEDURE TRANSLATEBACKUPPIECEGUID(\r\n&gt;    GUID        IN VARCHAR2\r\n&gt;   ,STATUSMASK  IN BINARY_INTEGER)\r\n&gt; IS\r\n&gt;    PDBKEY  NUMBER := NULL;\r\n&gt; BEGIN\r\n&gt;    DEB(DEB_ENTER, 'translateBackupPieceGuid');\r\n&gt; \r\n&gt; \r\n&gt;    FINDBACKUPPIECE(PDBKEY      =&gt; PDBKEY,\r\n&gt;                    GUID        =&gt; GUID,\r\n&gt;                    STATUSMASK  =&gt; NVL(STATUSMASK, 0));\r\n&gt;    DEB(DEB_EXIT);\r\n&gt; END TRANSLATEBACKUPPIECEGUID;\r\n&gt; \r\n&gt; \r\n22941a23026,23034\r\n&gt;    \r\n&gt;    IF (GUIDQUALIFIER IS NOT NULL) THEN\r\n&gt;       IF (FINDARCHIVEDLOGCOPY%ISOPEN) THEN\r\n&gt;          CLOSE FINDARCHIVEDLOGCOPY;\r\n&gt;       END IF;\r\n&gt;       DEB(DEB_EXIT, 'guid not valid for archivelog');\r\n&gt;       RAISE NO_DATA_FOUND;\r\n&gt;    END IF;\r\n&gt; \r\n23345a23439,23448\r\n&gt; \r\n&gt;    \r\n&gt;    IF (GUIDQUALIFIER IS NOT NULL) THEN\r\n&gt;       IF (FINDARCLOGBACKUP%ISOPEN) THEN\r\n&gt;          CLOSE FINDARCLOGBACKUP;\r\n&gt;       END IF;\r\n&gt;       DEB(DEB_EXIT, 'guid not valid for archivelog');\r\n&gt;       RAISE NO_DATA_FOUND;\r\n&gt;    END IF;\r\n&gt; \r\n23731a23835,23843\r\n&gt;    \r\n&gt;    IF (GUIDQUALIFIER IS NOT NULL) THEN\r\n&gt;       IF (FINDARCLOGBACKUP%ISOPEN) THEN\r\n&gt;          CLOSE FINDARCLOGBACKUP;\r\n&gt;       END IF;\r\n&gt;       DEB(DEB_EXIT, 'guid not valid for archivelog');\r\n&gt;       RAISE NO_DATA_FOUND;\r\n&gt;    END IF;\r\n&gt; \r\n28605a28718,28725\r\n&gt; \r\n&gt; \r\n&gt; PROCEDURE SETGUID(\r\n&gt;    GUID IN VARCHAR2 DEFAULT NULL)\r\n&gt; IS\r\n&gt; BEGIN\r\n&gt;    GUIDQUALIFIER := GUID;\r\n&gt; END SETGUID;\r\n<\/pre>\n<div id=\"SYS.DBMS_STATS.PACKAGE BODY.12.1.0.2_BP\">SYS.DBMS_STATS &#8211; PACKAGE BODY (BP):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1222,1232c1222,1232\r\n&lt;     SUCCEEDED   INTEGER := 0,          \r\n&lt;     FAILED      INTEGER := 0,          \r\n&lt;     STOPPED     INTEGER := 0,          \r\n&lt;     STARTED     INTEGER := 0,          \r\n&lt;     SCHEDULED   INTEGER := 0,          \r\n&lt;                                        \r\n&lt;                                        \r\n&lt;     LASTJOB   VARCHAR(30),             \r\n&lt;     LASTEVENT SCHEDULER$_EVENT_INFO,   \r\n&lt;     SOFAR_PART  INTEGER := 0,          \r\n&lt;     SOFAR_SUBPART INTEGER := 0         \r\n---\r\n&gt;     SUCCEEDED   INTEGER := 0,         \r\n&gt;     FAILED      INTEGER := 0,         \r\n&gt;     STOPPED     INTEGER := 0,         \r\n&gt;     STARTED     INTEGER := 0,         \r\n&gt;     SCHEDULED   INTEGER := 0,         \r\n&gt;                                       \r\n&gt;                                       \r\n&gt;     LASTJOB   VARCHAR(30),            \r\n&gt;     LASTEVENT SCHEDULER$_EVENT_INFO,  \r\n&gt;     SOFAR_PART  INTEGER := 0,         \r\n&gt;     SOFAR_SUBPART INTEGER := 0        \r\n1235a1236\r\n&gt;   \r\n1259c1260,1261\r\n&lt;     TOP_LEVEL BOOLEAN, \r\n---\r\n&gt;     TOP_LEVEL BOOLEAN,                          \r\n&gt;                                                 \r\n1789a1792\r\n&gt;   \r\n2249c2252,2254\r\n&lt;   FUNCTION CHECK_GRANULARITY(GRANULARITY VARCHAR2, GRANCHK VARCHAR2) RETURN BOOLEAN;\r\n---\r\n&gt;   FUNCTION CHECK_GRANULARITY(GRANULARITY VARCHAR2, \r\n&gt;                              GRANCHK VARCHAR2) RETURN BOOLEAN;\r\n&gt;   \r\n2253a2259\r\n&gt; \r\n2255,2258c2261,2266\r\n&lt;                           JSTATS IN OUT NOCOPY JOBSTATSREC, \r\n&lt;                           JOBSTAB IN OUT NOCOPY VARCHARTAB, ANAME VARCHAR2, LOPSTR VARCHAR2,\r\n&lt;                           EXCEPTIONPOLICY BINARY_INTEGER DEFAULT DSC_ABSORB,\r\n&lt;                           RETURNPOLICY BINARY_INTEGER DEFAULT DSC_WAIT_FOR_ALL);\r\n---\r\n&gt;                                          JSTATS IN OUT NOCOPY JOBSTATSREC, \r\n&gt;                                          JOBSTAB IN OUT NOCOPY VARCHARTAB,\r\n&gt;                                          ANAME VARCHAR2, LOPSTR VARCHAR2,\r\n&gt;                              EXCEPTIONPOLICY BINARY_INTEGER DEFAULT DSC_ABSORB,\r\n&gt;                                          RETURNPOLICY BINARY_INTEGER \r\n&gt;                                             DEFAULT DSC_WAIT_FOR_ALL);\r\n3304c3312,3314\r\n&lt;           TSTATS(I).TAB  || ' . ' || TSTATS(I).PART || ' . ' || TSTATS(I).SPART);\r\n---\r\n&gt;                                        TSTATS(I).TAB  || ' . ' || \r\n&gt;                                        TSTATS(I).PART || ' . ' || \r\n&gt;                                        TSTATS(I).SPART);\r\n3315c3325,3327\r\n&lt;           ISTATS(I).IND  || ' . ' || ISTATS(I).PART || ' . ' || ISTATS(I).SPART);\r\n---\r\n&gt;                                        ISTATS(I).IND  || ' . ' || \r\n&gt;                                        ISTATS(I).PART || ' . ' || \r\n&gt;                                        ISTATS(I).SPART);\r\n3929c3941,3942\r\n&lt;       RAISE_APPLICATION_ERROR(-20001, 'DBMS_STATS: str2bool: invalid boolean value.');\r\n---\r\n&gt;       RAISE_APPLICATION_ERROR(-20001, \r\n&gt;                               'DBMS_STATS: str2bool: invalid boolean value.');\r\n4281c4294,4295\r\n&lt;     IF(TO_NUMBER(DBMS_STATS_INTERNAL.GET_PARAMETER_VAL('job_queue_processes')) &lt; 4) THEN      \r\n---\r\n&gt;     IF(TO_NUMBER(DBMS_STATS_INTERNAL.GET_PARAMETER_VAL('job_queue_processes'))\r\n&gt;        &lt; 4) THEN      \r\n5433c5447,5448\r\n&lt;          JOB_CLASS_NAME           =&gt; DSC_STATS_COLLECTION_JOB_CLASS || '_' || SUFFIX,       \r\n---\r\n&gt;          JOB_CLASS_NAME           =&gt; DSC_STATS_COLLECTION_JOB_CLASS || '_' || \r\n&gt;                                      SUFFIX,       \r\n5577c5592,5593\r\n&lt;       TRACE_ERROR('exception in monitoring_man_drop_agent: ' || ': ' || SQLERRM );\r\n---\r\n&gt;       TRACE_ERROR('exception in monitoring_man_drop_agent: ' || ': ' ||\r\n&gt;                   SQLERRM );\r\n5602a5619\r\n&gt;     \r\n5625,5627c5642,5645\r\n&lt;         TRACE_ERROR('exception in monitoring_man_subscribe_agent: ' || SQLERRM);\r\n&lt;         RAISE_APPLICATION_ERROR(-20001, 'monitoring_man_subscribe_agent: ' || ANAME || \r\n&lt;                                           ': ' || SQLERRM );       \r\n---\r\n&gt;         TRACE_ERROR('exception in monitoring_man_subscribe_agent: ' || \r\n&gt;                     SQLERRM);\r\n&gt;         RAISE_APPLICATION_ERROR(-20001, 'monitoring_man_subscribe_agent: ' || \r\n&gt;                                         ANAME || ': ' || SQLERRM );       \r\n5653c5671,5672\r\n&lt;   PROCEDURE JOB_MAN_PERFORM_CLEANUPS(FORCE BOOLEAN, DROP_JOB BOOLEAN, SUFFIX VARCHAR2, \r\n---\r\n&gt;   PROCEDURE JOB_MAN_PERFORM_CLEANUPS(FORCE BOOLEAN, DROP_JOB BOOLEAN, \r\n&gt;                                      SUFFIX VARCHAR2, \r\n5662,5663c5681,5683\r\n&lt;     TRACE_TABLE('Perform Cleanups... ' ||  DSC_STATS_COLLECTION_JOB_CLASS || '_' || SUFFIX\r\n&lt;                 || ' force: ' || BOOL2STR(FORCE) || ' drop_job: ' || BOOL2STR(DROP_JOB));  \r\n---\r\n&gt;     TRACE_TABLE('Perform Cleanups... ' ||  DSC_STATS_COLLECTION_JOB_CLASS || \r\n&gt;                 '_' || SUFFIX || ' force: ' || BOOL2STR(FORCE) || \r\n&gt;                 ' drop_job: ' || BOOL2STR(DROP_JOB));  \r\n5679c5699,5700\r\n&lt;             JOB_NAME         =&gt; 'SYS.' || DSC_STATS_COLLECTION_JOB_CLASS || '_' || SUFFIX,\r\n---\r\n&gt;             JOB_NAME         =&gt; 'SYS.' || DSC_STATS_COLLECTION_JOB_CLASS || \r\n&gt;                                 '_' || SUFFIX,\r\n5699c5720,5721\r\n&lt;                JOB_CLASS_NAME   =&gt; 'SYS.' || DSC_STATS_COLLECTION_JOB_CLASS || '_' || SUFFIX);\r\n---\r\n&gt;                JOB_CLASS_NAME   =&gt; 'SYS.' || DSC_STATS_COLLECTION_JOB_CLASS || \r\n&gt;                                    '_' || SUFFIX);\r\n5702a5725\r\n&gt;                                                     \r\n5763c5786,5787\r\n&lt;       TRACE_ERROR('exception in monitoring_man_process_event: ' || ': ' || SQLERRM);\r\n---\r\n&gt;       TRACE_ERROR('exception in monitoring_man_process_event: ' || ': ' || \r\n&gt;                   SQLERRM);\r\n5780c5804,5805\r\n&lt;   PROCEDURE GET_JOB_STATS(JOBSTAB IN OUT NOCOPY VARCHARTAB, JSTATS IN OUT NOCOPY JOBSTATSREC) \r\n---\r\n&gt;   PROCEDURE GET_JOB_STATS(JOBSTAB IN OUT NOCOPY VARCHARTAB, \r\n&gt;                           JSTATS IN OUT NOCOPY JOBSTATSREC) \r\n5815a5841\r\n&gt;   \r\n5873a5900,5904\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n5876c5907,5908\r\n&lt;                           JOBSTAB IN OUT NOCOPY VARCHARTAB, ANAME VARCHAR2, LOPSTR VARCHAR2,\r\n---\r\n&gt;                           JOBSTAB IN OUT NOCOPY VARCHARTAB, ANAME VARCHAR2, \r\n&gt;                           LOPSTR VARCHAR2,\r\n5878c5910\r\n&lt;                           RETURNPOLICY BINARY_INTEGER DEFAULT DSC_WAIT_FOR_ALL) \r\n---\r\n&gt;                           RETURNPOLICY BINARY_INTEGER DEFAULT DSC_WAIT_FOR_ALL)\r\n5898,5899c5930,5932\r\n&lt;     TRACE_TABLE(ANAME || ': waiting for jobs in wait_for_jobs...* ' \r\n&lt;                 || TO_CHAR(JOBSTAB.COUNT - (JSTATS.SUCCEEDED + JSTATS.FAILED + JSTATS.STOPPED)));      \r\n---\r\n&gt;     TRACE_TABLE(ANAME || ': waiting for jobs in wait_for_jobs...* ' || \r\n&gt;                 TO_CHAR(JOBSTAB.COUNT - \r\n&gt;                         (JSTATS.SUCCEEDED + JSTATS.FAILED + JSTATS.STOPPED)));\r\n5910c5943,5944\r\n&lt;       DEQUEUE_OPTIONS.DEQ_CONDITION := 'tab.user_data.object_name like ''' || JOB_NAME_PREFIX || '%'''; \r\n---\r\n&gt;       DEQUEUE_OPTIONS.DEQ_CONDITION := 'tab.user_data.object_name like ''' || \r\n&gt;                                        JOB_NAME_PREFIX || '%'''; \r\n5913c5947,5948\r\n&lt;     WHILE (JSTATS.SUCCEEDED + JSTATS.FAILED + JSTATS.STOPPED) &lt; JOBSTAB.COUNT LOOP\r\n---\r\n&gt;     WHILE (JSTATS.SUCCEEDED + JSTATS.FAILED + JSTATS.STOPPED) &lt; \r\n&gt;           JOBSTAB.COUNT LOOP\r\n5921a5957\r\n&gt;       \r\n5922a5959\r\n&gt;         \r\n5928a5966\r\n&gt;         \r\n5957c5995,5996\r\n&lt;       TRACE_TABLE('  &gt;&gt; process event: ' || MESSAGE.OBJECT_NAME || ' &gt; ' || MESSAGE.EVENT_TYPE || \r\n---\r\n&gt;       TRACE_TABLE('  &gt;&gt; process event: ' || MESSAGE.OBJECT_NAME || ' &gt; ' || \r\n&gt;                   MESSAGE.EVENT_TYPE || \r\n5966c6005,6006\r\n&lt;         TRACE_TABLE(' *** Failure Event: ' || MESSAGE.ERROR_CODE || ': ' || MESSAGE.ERROR_MSG);\r\n---\r\n&gt;         TRACE_TABLE(' *** Failure Event: ' || MESSAGE.ERROR_CODE || ': ' || \r\n&gt;                     MESSAGE.ERROR_MSG);\r\n5969c6009,6010\r\n&lt;           RAISE_APPLICATION_ERROR(-20000, 'insufficient privileges to analyze an object.');\r\n---\r\n&gt;           RAISE_APPLICATION_ERROR(-20000, \r\n&gt;                               'insufficient privileges to analyze an object.');\r\n6004c6045,6046\r\n&lt;         DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS(PROGRESSREC.RINDEX, PROGRESSREC.SLNO,\r\n---\r\n&gt;         DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS(PROGRESSREC.RINDEX, \r\n&gt;                                                   PROGRESSREC.SLNO,\r\n6026c6068,6070\r\n&lt;       TRACE_ERROR(JOB_NAME_PREFIX ||': exception in monitoring_man_wait_for_jobs: ' || ': ' || SQLERRM );      \r\n---\r\n&gt;       TRACE_ERROR(JOB_NAME_PREFIX ||\r\n&gt;                   ': exception in monitoring_man_wait_for_jobs: ' || ': ' || \r\n&gt;                   SQLERRM );      \r\n6398a6443,6462\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n6488,6493c6552,6559\r\n&lt;        TRACE_ERROR('Exception while creating job ' || JOBNAME || ' for table(s) ' ||\r\n&lt;                    COMMENTS || ' at ' || SYSTIMESTAMP ||                    \r\n&lt;                    ' jobsTab.count: ' || TO_CHAR(JOBSTAB.COUNT) || ': ' || SQLERRM );  \r\n&lt;        RAISE_APPLICATION_ERROR(-20001, 'Exception while creating job ' || JOBNAME || ' for table(s) ' ||\r\n&lt;                    COMMENTS || ' at ' || SYSTIMESTAMP ||                    \r\n&lt;                    ' jobsTab.count: ' || TO_CHAR(JOBSTAB.COUNT) || ': ' || SQLERRM);\r\n---\r\n&gt;        TRACE_ERROR('Exception while creating job ' || JOBNAME || \r\n&gt;                    ' for table(s) ' || COMMENTS || ' at ' || SYSTIMESTAMP ||\r\n&gt;                    ' jobsTab.count: ' || TO_CHAR(JOBSTAB.COUNT) || ': ' || \r\n&gt;                    SQLERRM );  \r\n&gt;        RAISE_APPLICATION_ERROR(-20001, 'Exception while creating job ' || \r\n&gt;                                JOBNAME || ' for table(s) ' || COMMENTS || \r\n&gt;                                ' at ' || SYSTIMESTAMP || ' jobsTab.count: ' ||\r\n&gt;                                TO_CHAR(JOBSTAB.COUNT) || ': ' || SQLERRM);\r\n6513a6580,6581\r\n&gt;   \r\n&gt;   \r\n7671c7739,7743\r\n&lt;   PROCEDURE URGENT_CLEANUP(JOBSTAB IN OUT NOCOPY VARCHARTAB, JOB_CLASS_SUFFIX VARCHAR2,\r\n---\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   PROCEDURE URGENT_CLEANUP(JOBSTAB IN OUT NOCOPY VARCHARTAB, \r\n&gt;                            JOB_CLASS_SUFFIX VARCHAR2,\r\n7678c7750,7751\r\n&lt;     CLASS_SUFFIX DBMS_QUOTED_ID := DBMS_ASSERT_SIMPLE_SQL_NAME(JOB_CLASS_SUFFIX);\r\n---\r\n&gt;     CLASS_SUFFIX DBMS_QUOTED_ID := \r\n&gt;                                  DBMS_ASSERT_SIMPLE_SQL_NAME(JOB_CLASS_SUFFIX);\r\n7696c7769,7770\r\n&lt;                        select owner ||'.' || job_name name from dba_scheduler_jobs  \r\n---\r\n&gt;                        select owner ||'.' || job_name name \r\n&gt;                        from dba_scheduler_jobs  \r\n7699c7773,7774\r\n&lt;                        select job_class_name name from dba_scheduler_job_classes  \r\n---\r\n&gt;                        select job_class_name name \r\n&gt;                        from dba_scheduler_job_classes  \r\n7722c7797,7798\r\n&lt;                        dbms_scheduler.stop_job(job_name=&gt;rec.name, force=&gt;true);\r\n---\r\n&gt;                        dbms_scheduler.stop_job(job_name=&gt;rec.name, \r\n&gt;                                                force=&gt;true);\r\n7739c7815,7816\r\n&lt;                        dbms_scheduler.drop_job(job_name=&gt;rec.name, force=&gt;true);\r\n---\r\n&gt;                        dbms_scheduler.drop_job(job_name=&gt;rec.name, \r\n&gt;                                                force=&gt;true);\r\n7749c7826,7827\r\n&lt;                      dbms_scheduler.drop_job_class(job_class_name=&gt;rec.name, force=&gt;true);\r\n---\r\n&gt;                      dbms_scheduler.drop_job_class(job_class_name=&gt;rec.name, \r\n&gt;                                                    force=&gt;true);\r\n7758,7760c7836,7841\r\n&lt;                      subscriber := sys.aq$_agent (rec.name, 'sys.scheduler$_event_queue', null);\r\n&lt;                      dbms_aqadm.remove_subscriber('sys.scheduler$_event_queue', subscriber);   \r\n&lt;                      dbms_aqadm.drop_aq_agent (rec.name);                          \r\n---\r\n&gt;                      subscriber := sys.aq$_agent (rec.name, \r\n&gt;                                                   'sys.scheduler$_event_queue',\r\n&gt;                                                   null);\r\n&gt;                      dbms_aqadm.remove_subscriber('sys.scheduler$_event_queue',\r\n&gt;                                                   subscriber);   \r\n&gt;                      dbms_aqadm.drop_aq_agent (rec.name);\r\n7786c7867,7868\r\n&lt;    TRACE_TABLE('Created Cleanup Job ' || LOC_JOB_NAME ||  ' at ' || SYSTIMESTAMP);  \r\n---\r\n&gt;    TRACE_TABLE('Created Cleanup Job ' || LOC_JOB_NAME ||  ' at ' || \r\n&gt;                SYSTIMESTAMP);  \r\n7848a7931\r\n&gt;     \r\n7850c7933\r\n&lt;       RES := MONITORING_MAN_SUBSCRIBE_AGENT(JOB_NAME_PREFIX, USERNAMEU);                \r\n---\r\n&gt;       RES := MONITORING_MAN_SUBSCRIBE_AGENT(JOB_NAME_PREFIX, USERNAMEU);\r\n7856c7939,7940\r\n&lt;         TRACE_ERROR('Silent exception in init_conc: agent subscription has failed');\r\n---\r\n&gt;         TRACE_ERROR(\r\n&gt;                'Silent exception in init_conc: agent subscription has failed');\r\n7910a7995,7997\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n7953c8040\r\n&lt;         PROP := DBMS_STATS_INTERNAL.GET_TAB_PROPERTY(OWNER, TABNAME);                     \r\n---\r\n&gt;         PROP := DBMS_STATS_INTERNAL.GET_TAB_PROPERTY(OWNER, TABNAME);\r\n7962c8049,8050\r\n&lt;            NOT (BITAND(PROP, 4194304) = 4194304 OR BITAND(PROP, 8388608) = 8388608)           \r\n---\r\n&gt;            NOT (BITAND(PROP, 4194304) = 4194304 OR BITAND(PROP, 8388608) = \r\n&gt;                 8388608)           \r\n7992c8080,8081\r\n&lt;             LOC_JOB_NAME_PREFIX := DBMS_SCHEDULER.GENERATE_JOB_NAME(DSC_JOB_PREF || 'T');\r\n---\r\n&gt;             LOC_JOB_NAME_PREFIX := DBMS_SCHEDULER.GENERATE_JOB_NAME(\r\n&gt;                                                           DSC_JOB_PREF || 'T');\r\n7998c8087\r\n&lt;             IF(IS_NULL(BATCHING_JOB_PREFIX) AND IS_NULL(JOB_NAME_PREFIX)) THEN              \r\n---\r\n&gt;             IF(IS_NULL(BATCHING_JOB_PREFIX) AND IS_NULL(JOB_NAME_PREFIX)) THEN\r\n8001c8090,8091\r\n&lt;                 TRACE_TABLE('Disabling concurrency as initializations have failed');\r\n---\r\n&gt;                 TRACE_TABLE(\r\n&gt;                        'Disabling concurrency as initializations have failed');\r\n8009,8010c8099,8101\r\n&lt;               JOB_MAN_PERFORM_CLEANUPS(TRUE, FALSE, BATCHING_JOB_PREFIX, CONCTX.JOBSTAB, \r\n&lt;                                        TRUE, TRUE);  \r\n---\r\n&gt;               \r\n&gt;               JOB_MAN_PERFORM_CLEANUPS(TRUE, FALSE, BATCHING_JOB_PREFIX, \r\n&gt;                                        CONCTX.JOBSTAB, TRUE, TRUE);  \r\n8132c8223,8224\r\n&lt;       (OWNER VARCHAR2, OBJNAMEU IN OUT NOCOPY VARCHAR2, OBJTYPE BINARY_INTEGER) IS\r\n---\r\n&gt;      (OWNER VARCHAR2, OBJNAMEU IN OUT NOCOPY VARCHAR2, OBJTYPE BINARY_INTEGER)\r\n&gt;   IS\r\n8774c8866\r\n&lt;       DBMS_STATS_INTERNAL.PART_TYPES(OWNNAME, OBJNAME, OBJTYPE, PTYPE, SPTYPE);   \r\n---\r\n&gt;       DBMS_STATS_INTERNAL.PART_TYPES(OWNNAME, OBJNAME, OBJTYPE, PTYPE, SPTYPE);\r\n8823a8916,8917\r\n&gt;   \r\n&gt;   \r\n9149c9243,9244\r\n&lt;         STATS_CHECK_PRIVILEGES(OWNER, TREC.OBJ_NAME, DSC_KGLNTABL, FALSE, NULL);\r\n---\r\n&gt;         STATS_CHECK_PRIVILEGES(OWNER, TREC.OBJ_NAME, DSC_KGLNTABL, FALSE, \r\n&gt;                                NULL);\r\n9316c9411\r\n&lt;                   DBMS_ASSERT.SIMPLE_SQL_NAME(DBMS_STATS_INTERNAL.DQ(COL.PCNAME));\r\n---\r\n&gt;                DBMS_ASSERT.SIMPLE_SQL_NAME(DBMS_STATS_INTERNAL.DQ(COL.PCNAME));\r\n9579,9580c9674,9675\r\n&lt;     CONVERT_FROM_RAW_ICD(DSC_DTYIBFLOAT, RAWVAL, CVAL, DVAL, NVAL, NCVAL, RWVAL,\r\n&lt;                          RESVAL, BDVAL);\r\n---\r\n&gt;     CONVERT_FROM_RAW_ICD(DSC_DTYIBFLOAT, RAWVAL, CVAL, DVAL, NVAL, NCVAL, \r\n&gt;                          RWVAL, RESVAL, BDVAL);\r\n9595,9596c9690,9691\r\n&lt;     CONVERT_FROM_RAW_ICD(DSC_DTYIBDOUBLE, RAWVAL, CVAL, DVAL, NVAL, NCVAL, RWVAL,\r\n&lt;                          BFVAL, RESVAL);\r\n---\r\n&gt;     CONVERT_FROM_RAW_ICD(DSC_DTYIBDOUBLE, RAWVAL, CVAL, DVAL, NVAL, NCVAL, \r\n&gt;                          RWVAL, BFVAL, RESVAL);\r\n9830,9831c9925,9926\r\n&lt;       RAISE_APPLICATION_ERROR(-20000, 'Unsupported data type ' || TYP_CODE || ' ' ||\r\n&lt;                                TBL_NAME || ' ' || COL_NAME);\r\n---\r\n&gt;       RAISE_APPLICATION_ERROR(-20000, 'Unsupported data type ' || TYP_CODE || \r\n&gt;                                       ' ' || TBL_NAME || ' ' || COL_NAME);\r\n10320c10415,10416\r\n&lt;       FOR REC IN DBMS_STATS_INTERNAL.PART_NAME_QRY(TBL_OWNER,TBL_NAME,PART_NAME)\r\n---\r\n&gt;       FOR REC IN DBMS_STATS_INTERNAL.PART_NAME_QRY(TBL_OWNER,TBL_NAME,\r\n&gt;                                                    PART_NAME)\r\n10577c10673,10674\r\n&lt;       RAISE_APPLICATION_ERROR(-20000, 'Cannot store user statistics in external statistics table');\r\n---\r\n&gt;       RAISE_APPLICATION_ERROR(-20000, \r\n&gt;                   'Cannot store user statistics in external statistics table');\r\n10679c10776,10777\r\n&lt;       RAISE_APPLICATION_ERROR(-20000, 'Cannot get user statistics from external statistics table');\r\n---\r\n&gt;       RAISE_APPLICATION_ERROR(-20000, \r\n&gt;                   'Cannot get user statistics from external statistics table');\r\n10804c10902,10903\r\n&lt;       RAISE_APPLICATION_ERROR(-20000, 'Cannot store user statistics in external statistics table');\r\n---\r\n&gt;       RAISE_APPLICATION_ERROR(-20000, \r\n&gt;                   'Cannot store user statistics in external statistics table');\r\n10872c10971,10972\r\n&lt;       RAISE_APPLICATION_ERROR(-20000, 'Cannot get user statistics from external statistics table');\r\n---\r\n&gt;       RAISE_APPLICATION_ERROR(-20000, \r\n&gt;                   'Cannot get user statistics from external statistics table');\r\n11457,11458c11557,11558\r\n&lt;               RAISE_APPLICATION_ERROR(-20000, 'Could not find anything wrong '||\r\n&lt;                 'with statistics table ' || STATOWNU || '.' || STATTABU ||\r\n---\r\n&gt;               RAISE_APPLICATION_ERROR(-20000, 'Could not find anything '||\r\n&gt;                'wrong with statistics table ' || STATOWNU || '.' || STATTABU ||\r\n13335c13435,13436\r\n&lt;         INT_ASSERT(FALSE,'show_extended_stats_name_aux', 'invalid extn_type', FALSE, 0);\r\n---\r\n&gt;         INT_ASSERT(FALSE,'show_extended_stats_name_aux', 'invalid extn_type', \r\n&gt;                    FALSE, 0);\r\n13361c13462,13463\r\n&lt;         RAISE_APPLICATION_ERROR(-20001, 'Error when processing extension - ' || \r\n---\r\n&gt;         RAISE_APPLICATION_ERROR(-20001, \r\n&gt;                                 'Error when processing extension - ' || \r\n13392c13494\r\n&lt;             BITAND (DBMS_STATS_INTERNAL.TRACE_LEVEL, DSC_COL_TRC) = DSC_COL_TRC;\r\n---\r\n&gt;            BITAND (DBMS_STATS_INTERNAL.TRACE_LEVEL, DSC_COL_TRC) = DSC_COL_TRC;\r\n13404c13506,13507\r\n&lt;       DBMS_STATS_INTERNAL.DUMP_TRACE('Trying to create extension ' || SAFE_EXTN);\r\n---\r\n&gt;       DBMS_STATS_INTERNAL.DUMP_TRACE('Trying to create extension ' || \r\n&gt;                                      SAFE_EXTN);\r\n13552c13655\r\n&lt;                                  'not supported for an index organized table ');\r\n---\r\n&gt;                                 'not supported for an index organized table ');\r\n13567c13670,13671\r\n&lt;           RAISE_APPLICATION_ERROR(-20001, 'Error when processing extension - ' || \r\n---\r\n&gt;           RAISE_APPLICATION_ERROR(-20001, \r\n&gt;                                   'Error when processing extension - ' || \r\n13628c13732\r\n&lt;             BITAND (DBMS_STATS_INTERNAL.TRACE_LEVEL, DSC_COL_TRC) = DSC_COL_TRC;\r\n---\r\n&gt;            BITAND (DBMS_STATS_INTERNAL.TRACE_LEVEL, DSC_COL_TRC) = DSC_COL_TRC;\r\n13673a13778\r\n&gt;       \r\n13710a13816\r\n&gt;   \r\n13872c13978,13979\r\n&lt;                       LASTTABNAME,LASTCOLNAME,LASTPARTNAME,LASTSUBPARTNAME,OWNER;\r\n---\r\n&gt;                       LASTTABNAME,LASTCOLNAME,LASTPARTNAME,LASTSUBPARTNAME,\r\n&gt;                       OWNER;\r\n14162c14269,14270\r\n&lt;         OPEN SYS.DBMS_STATS_INTERNAL.GET_TPART_NAME(OWNER, TABNAMEU, PARTNAMEU);\r\n---\r\n&gt;         OPEN SYS.DBMS_STATS_INTERNAL.GET_TPART_NAME(OWNER, TABNAMEU, \r\n&gt;                                                     PARTNAMEU);\r\n14275c14383\r\n&lt;              'Invalid or inconsistent input values in the histogram endpoints');\r\n---\r\n&gt;             'Invalid or inconsistent input values in the histogram endpoints');\r\n14558c14666,14667\r\n&lt;           IF ((ISTATS(I).ALBLK IS NULL) AND (ISTATS(I).NLBLKS IS NOT NULL)) THEN\r\n---\r\n&gt;           IF ((ISTATS(I).ALBLK IS NULL) AND \r\n&gt;               (ISTATS(I).NLBLKS IS NOT NULL)) THEN\r\n14713c14822,14823\r\n&lt;         OPEN SYS.DBMS_STATS_INTERNAL.GET_IPART_NAME(OWNER, INDNAMEU, PARTNAMEU);\r\n---\r\n&gt;         OPEN SYS.DBMS_STATS_INTERNAL.GET_IPART_NAME(OWNER, INDNAMEU, \r\n&gt;                                                     PARTNAMEU);\r\n15477c15587,15588\r\n&lt;         OPEN SYS.DBMS_STATS_INTERNAL.GET_TPART_NAME(OWNER, TABNAMEU, PARTNAMEU);\r\n---\r\n&gt;         OPEN SYS.DBMS_STATS_INTERNAL.GET_TPART_NAME(OWNER, TABNAMEU, \r\n&gt;                                                     PARTNAMEU);\r\n16127c16238,16239\r\n&lt;         OBJ_TRANSFERRED IN OUT BOOLEAN, \r\n---\r\n&gt;         OBJ_TRANSFERRED IN OUT BOOLEAN,               \r\n&gt;                                                       \r\n16320c16432,16433\r\n&lt;         OBJ_TRANSFERRED IN OUT BOOLEAN, \r\n---\r\n&gt;         OBJ_TRANSFERRED IN OUT BOOLEAN,               \r\n&gt;                                                       \r\n16473c16586,16587\r\n&lt;       IF ((DELETEST = FALSE) AND (FROMTABU IS NULL) AND TOTABU IS NOT NULL) THEN\r\n---\r\n&gt;       IF ((DELETEST = FALSE) AND (FROMTABU IS NULL) AND \r\n&gt;           TOTABU IS NOT NULL) THEN\r\n16573c16687,16688\r\n&lt;             TOBJN := DBMS_STATS_INTERNAL.GET_OBJNUM(TSTATS(I).OWN, TSTATS(I).TAB, \r\n---\r\n&gt;             TOBJN := DBMS_STATS_INTERNAL.GET_OBJNUM(TSTATS(I).OWN, \r\n&gt;                                                     TSTATS(I).TAB, \r\n17003,17004c17118,17119\r\n&lt;         STATOWN, 'Schema', NO_INVALIDATE, FALSE, STATTYPE, FORCE, OBJ_TRANSFERRED,\r\n&lt;         FALSE, STAT_CATEGORY);\r\n---\r\n&gt;         STATOWN, 'Schema', NO_INVALIDATE, FALSE, STATTYPE, FORCE, \r\n&gt;         OBJ_TRANSFERRED, FALSE, STAT_CATEGORY);\r\n17018,17019c17133,17134\r\n&lt;       STATOWN, 'Database', NO_INVALIDATE, FALSE, STATTYPE, FORCE, OBJ_TRANSFERRED,\r\n&lt;       TRUE, STAT_CATEGORY);\r\n---\r\n&gt;       STATOWN, 'Database', NO_INVALIDATE, FALSE, STATTYPE, FORCE, \r\n&gt;       OBJ_TRANSFERRED, TRUE, STAT_CATEGORY);\r\n17295c17410,17411\r\n&lt;         RAISE_APPLICATION_ERROR (-20001, 'Invalid or inconsistent input values');\r\n---\r\n&gt;         RAISE_APPLICATION_ERROR (-20001, \r\n&gt;                                  'Invalid or inconsistent input values');\r\n17971,17972c18087,18088\r\n&lt;       TXT := 'select statid,type,version,flags,c1,c2,c3,c4,n1,n2,n3,n4,n5,n6,' ||\r\n&lt;           'n7,n8,n9,d1,r1,r2 from ' || DBMS_STATS_INTERNAL.DQ(OWNER) ||\r\n---\r\n&gt;       TXT := 'select statid,type,version,flags,c1,c2,c3,c4,n1,n2,n3,n4,n5,' ||\r\n&gt;           'n6,n7,n8,n9,d1,r1,r2 from ' || DBMS_STATS_INTERNAL.DQ(OWNER) ||\r\n19138a19255\r\n&gt;                                      \r\n19140c19257,19258\r\n&lt;     LOCAL_BKTNUM INTEGER;     \r\n---\r\n&gt;                                      \r\n&gt;     LOCAL_BKTNUM INTEGER; \r\n19551a19670\r\n&gt;                 \r\n19553c19672,19673\r\n&lt;                     BITAND(CLIST(CIND).HGATH, DSC_CREC_EP+DSC_CREC_RP) = 0) THEN\r\n---\r\n&gt;                     BITAND(CLIST(CIND).HGATH, DSC_CREC_EP+DSC_CREC_RP) = \r\n&gt;                     0) THEN\r\n19759,19760c19879,19880\r\n&lt;          'invalid column name or duplicate columns\/column groups\/expressions' ||\r\n&lt;          ' in method_opt');\r\n---\r\n&gt;         'invalid column name or duplicate columns\/column groups\/expressions' ||\r\n&gt;         ' in method_opt');\r\n19859c19979\r\n&lt;             BITAND (DBMS_STATS_INTERNAL.TRACE_LEVEL, DSC_COL_TRC) = DSC_COL_TRC;\r\n---\r\n&gt;            BITAND (DBMS_STATS_INTERNAL.TRACE_LEVEL, DSC_COL_TRC) = DSC_COL_TRC;\r\n20632a20753\r\n&gt;   \r\n22361a22483,22566\r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt;   FUNCTION GET_ROW_COUNT_ESTIMATE (\r\n&gt;         OWNNAME VARCHAR2,                 \r\n&gt;         TABNAME VARCHAR2,                 \r\n&gt;         PARTNAME VARCHAR2,                \r\n&gt;         NBLKS INTEGER,\r\n&gt;         DEGREE INTEGER\r\n&gt;         ) RETURN NUMBER IS\r\n&gt;     ROW_COUNT    NUMBER;\r\n&gt;     OWNER        VARCHAR2(30);\r\n&gt;     TABNAMEU     VARCHAR2(30);\r\n&gt;     PARTNAMEU    VARCHAR2(30);\r\n&gt;     FOBJN        NUMBER;\r\n&gt;     PNAME        VARCHAR2(30);\r\n&gt;     SPNAME       VARCHAR2(30);\r\n&gt;     SEED         INTEGER;\r\n&gt;     NO_ITERATION BOOLEAN;\r\n&gt;     PARTTYPE     NUMBER;\r\n&gt;   BEGIN\r\n&gt;     FILL_IN_SCHEMA(OWNNAME, OWNER);\r\n&gt;     UPCASE(TABNAME, TABNAMEU);\r\n&gt;     UPCASE(PARTNAME, PARTNAMEU);\r\n&gt;     STATS_CHECK_PRIVILEGES(OWNER, TABNAMEU, DSC_KGLNTABL, FALSE, NULL);\r\n&gt; \r\n&gt;     IF (PARTNAMEU IS NOT NULL) THEN\r\n&gt;       \r\n&gt;       VALIDATE_PART(OWNER, TABNAMEU, PARTNAMEU, DSC_KGLTTABL, NULL);\r\n&gt; \r\n&gt;       \r\n&gt;       FOBJN := DBMS_STATS_INTERNAL.GET_OBJNUM(OWNER, TABNAMEU, PARTNAMEU, NULL,\r\n&gt;                                               'TABLE');\r\n&gt; \r\n&gt;       \r\n&gt;       IF (PARTTYPE = 5 ) THEN\r\n&gt;         SPNAME := PARTNAMEU;\r\n&gt;       ELSE\r\n&gt;         PNAME := PARTNAMEU;\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     GET_EVENT_LEVEL(DSC_SAMPLE_SEED_EVENT, SEED);\r\n&gt; \r\n&gt;     IF (DBMS_STATS_INTERNAL.GET_FXT_TYP(OWNER, TABNAME) = DSC_NON_FXT) THEN\r\n&gt;       NO_ITERATION := FALSE;\r\n&gt;     ELSE\r\n&gt;       NO_ITERATION := TRUE;\r\n&gt;     END IF;    \r\n&gt; \r\n&gt;     QUICK_ESTIMATE_ROWCNT(OWNER,\r\n&gt;                           TABNAMEU,\r\n&gt;                           PNAME,\r\n&gt;                           SPNAME,\r\n&gt;                           FOBJN,\r\n&gt;                           ROW_COUNT,\r\n&gt;                           SEED,\r\n&gt;                           NBLKS,\r\n&gt;                           DEGREE,\r\n&gt;                           NO_ITERATION);\r\n&gt;     RETURN ROW_COUNT;\r\n&gt;   END GET_ROW_COUNT_ESTIMATE;\r\n&gt; \r\n&gt; \r\n22457c22662\r\n&lt;         CLIST IN OUT NOCOPY CTAB,                     \r\n---\r\n&gt;         CLIST IN OUT NOCOPY CTAB,       \r\n22627c22832\r\n&lt;         CLIST IN OUT NOCOPY CTAB,              \r\n---\r\n&gt;         CLIST IN OUT NOCOPY CTAB,       \r\n23640a23846\r\n&gt;             \r\n23930a24137\r\n&gt;                                         \r\n24435,24437c24642,24644\r\n&lt;                   TRACE_INDEX('ndk of index ' || INDNAME || ' on ' || PART.PNAME\r\n&lt;                     || ' set to ' || CSTATS(1).DIST || ' (ndv of ' || COLUMN_NAME\r\n&lt;                     || ')');\r\n---\r\n&gt;                   TRACE_INDEX('ndk of index ' || INDNAME || ' on ' || \r\n&gt;                               PART.PNAME || ' set to ' || CSTATS(1).DIST ||\r\n&gt;                               ' (ndv of ' || COLUMN_NAME || ')');\r\n24439,24441c24646,24648\r\n&lt;                   TRACE_INDEX('ndk of index ' || INDNAME || ' on ' || SPART.SPNAME\r\n&lt;                     || ' set to ' || CSTATS(1).DIST || ' (ndv of ' || COLUMN_NAME\r\n&lt;                     || ')');\r\n---\r\n&gt;                   TRACE_INDEX('ndk of index ' || INDNAME || ' on ' || \r\n&gt;                               SPART.SPNAME || ' set to ' || CSTATS(1).DIST ||\r\n&gt;                               ' (ndv of ' || COLUMN_NAME || ')');\r\n24460c24667,24668\r\n&lt;       IF (COLLECT_NDK AND TSTATS_UPTODATE AND SAMPLE_PCT &lt; DSC_SAMPLE_MAXPCT AND\r\n---\r\n&gt;       IF (COLLECT_NDK AND TSTATS_UPTODATE AND \r\n&gt;           SAMPLE_PCT &lt; DSC_SAMPLE_MAXPCT AND\r\n25464c25672,25673\r\n&lt;             RESTORE_INDEX_STATS_AUX(DBMS_STATS_INTERNAL.DQ(LOPINFO(SOFAR).NAME2),\r\n---\r\n&gt;             RESTORE_INDEX_STATS_AUX(DBMS_STATS_INTERNAL.DQ(\r\n&gt;                                                          LOPINFO(SOFAR).NAME2),\r\n25593c25802,25803\r\n&lt;       DBMS_STATS_INTERNAL.GET_PREFS('ESTIMATE_PERCENT', PVALU, NULL, NULL, IDX.TOBJN);\r\n---\r\n&gt;       DBMS_STATS_INTERNAL.GET_PREFS('ESTIMATE_PERCENT', PVALU, NULL, NULL, \r\n&gt;                                     IDX.TOBJN);\r\n25598c25808,25809\r\n&lt;       DBMS_STATS_INTERNAL.GET_PREFS('GRANULARITY', LOC_GRANULARITY, NULL, NULL, IDX.TOBJN);\r\n---\r\n&gt;       DBMS_STATS_INTERNAL.GET_PREFS('GRANULARITY', LOC_GRANULARITY, NULL, \r\n&gt;                                     NULL, IDX.TOBJN);\r\n25602c25813,25814\r\n&lt;       DBMS_STATS_INTERNAL.GET_PREFS('GRANULARITY', LOC_GIDXGRAN, NULL, NULL, IDX.TOBJN);\r\n---\r\n&gt;       DBMS_STATS_INTERNAL.GET_PREFS('GRANULARITY', LOC_GIDXGRAN, NULL, NULL, \r\n&gt;                                     IDX.TOBJN);\r\n25794c26006,26007\r\n&lt;                       (BITAND(DBMS_SQLDIAG.GET_FIX_CONTROL(8917507), 2) = 2) AND\r\n---\r\n&gt;                       (BITAND(DBMS_SQLDIAG.GET_FIX_CONTROL(8917507), 2) = \r\n&gt;                        2) AND\r\n25819,25820c26032,26035\r\n&lt;           TRACE_INDEX('last: ' || TO_CHAR(SPART.LAST_ANALYZED, 'MM-DD-YYYY HH24:MI:SS') || \r\n&lt;                       ' start_time: ' || TO_CHAR(START_TIME, 'MM-DD-YYYY HH24:MI:SS'));\r\n---\r\n&gt;           TRACE_INDEX('last: ' || TO_CHAR(SPART.LAST_ANALYZED, \r\n&gt;                                           'MM-DD-YYYY HH24:MI:SS') || \r\n&gt;                       ' start_time: ' || TO_CHAR(START_TIME, \r\n&gt;                                                  'MM-DD-YYYY HH24:MI:SS'));\r\n26522c26737,26738\r\n&lt;         IF ((BITAND(CLIST(LOOPVAR).GATHER,DSC_CREC_MINMAX) = DSC_CREC_MINMAX) AND\r\n---\r\n&gt;         IF ((BITAND(CLIST(LOOPVAR).GATHER,DSC_CREC_MINMAX) = \r\n&gt;              DSC_CREC_MINMAX) AND\r\n26594c26810,26811\r\n&lt;         IF ((BITAND(CLIST(LOOPVAR).GATHER,DSC_CREC_MINMAX) = DSC_CREC_MINMAX) AND\r\n---\r\n&gt;         IF ((BITAND(CLIST(LOOPVAR).GATHER,DSC_CREC_MINMAX) = \r\n&gt;              DSC_CREC_MINMAX) AND\r\n27245c27462,27463\r\n&lt;         TRACE_SCALING('  Caught an unusable-index error.  giving up combo-ndv scaling');\r\n---\r\n&gt;         TRACE_SCALING(\r\n&gt;              '  Caught an unusable-index error.  giving up combo-ndv scaling');\r\n27333,27334c27551,27553\r\n&lt;         TRACE_HIST('Switching to frequency histogram, ssize = ' || SSIZE || ', popcnt = ' \r\n&lt;                   || POPCNT || ', ssizesq = ' || SSIZESQ || ', popcntsq = ' || POPCNTSQ);\r\n---\r\n&gt;         TRACE_HIST('Switching to frequency histogram, ssize = ' || SSIZE || \r\n&gt;                    ', popcnt = ' || POPCNT || ', ssizesq = ' || SSIZESQ || \r\n&gt;                    ', popcntsq = ' || POPCNTSQ);\r\n27570,27571c27789,27791\r\n&lt;     EVALUATE_HEIGHT_HIST(CSR, CHT, DONE_HIST, PCT, POPCNT, POPCNTSQ, SSIZE, SSIZESQ,\r\n&lt;                          MIN_SSIZE, APPR_NDV, TRUE, INCREMENTAL);   \r\n---\r\n&gt;     \r\n&gt;     EVALUATE_HEIGHT_HIST(CSR, CHT, DONE_HIST, PCT, POPCNT, POPCNTSQ, SSIZE, \r\n&gt;                          SSIZESQ, MIN_SSIZE, APPR_NDV, TRUE, INCREMENTAL);   \r\n27601c27821,27822\r\n&lt;                           POPCNT, POPCNTSQ, PCT, DONE_HIST, CSR.SLSV, APPR_NDV);\r\n---\r\n&gt;                                                 POPCNT, POPCNTSQ, PCT,\r\n&gt;                                                 DONE_HIST, CSR.SLSV, APPR_NDV);\r\n27851,27852c28072,28074\r\n&lt;             CONSTRUCT_SELECT_FREQUENCY(CLIST(LOOPVAR), LOC_HINTTXT, LOC_PPREDTXT,\r\n&lt;                                        PRETXT, POSTTXT, MATERIALIZE);\r\n---\r\n&gt;             CONSTRUCT_SELECT_FREQUENCY(CLIST(LOOPVAR), LOC_HINTTXT, \r\n&gt;                                        LOC_PPREDTXT, PRETXT, POSTTXT, \r\n&gt;                                        MATERIALIZE);\r\n27871,27872c28093,28095\r\n&lt;               CONSTRUCT_SELECT_HEIGHT(CLIST(LOOPVAR), MNB, LOC_HINTTXT, LOC_PPREDTXT,\r\n&lt;                                     PRETXT, POSTTXT, MATERIALIZE);\r\n---\r\n&gt;               CONSTRUCT_SELECT_HEIGHT(CLIST(LOOPVAR), MNB, LOC_HINTTXT, \r\n&gt;                                       LOC_PPREDTXT, PRETXT, POSTTXT, \r\n&gt;                                       MATERIALIZE);\r\n27889,27890c28112,28114\r\n&lt;               CONSTRUCT_SELECT_FREQUENCY(CLIST(LOOPVAR), LOC_HINTTXT, LOC_PPREDTXT,\r\n&lt;                                          PRETXT, POSTTXT, MATERIALIZE);\r\n---\r\n&gt;               CONSTRUCT_SELECT_FREQUENCY(CLIST(LOOPVAR), LOC_HINTTXT, \r\n&gt;                                          LOC_PPREDTXT, PRETXT, POSTTXT,\r\n&gt;                                          MATERIALIZE);\r\n28227c28451\r\n&lt;           IF (BITAND(CLIST(LOOPVAR).GATHER,DSC_CREC_AVG) = DSC_CREC_AVG) THEN            \r\n---\r\n&gt;           IF (BITAND(CLIST(LOOPVAR).GATHER,DSC_CREC_AVG) = DSC_CREC_AVG) THEN\r\n28341,28344c28565,28568\r\n&lt;               TRACE_SCALING(' Need larger sample: sndv = ' || CLIST(LOOPVAR).SNDV\r\n&lt;                             || ', snnvdv = ' || CLIST(LOOPVAR).SNNVDV\r\n&lt;                             || ', nnv = ' || NNV\r\n&lt;                             || ', ndv = ' || CLIST(LOOPVAR).NDV);\r\n---\r\n&gt;               TRACE_SCALING(' Need larger sample: sndv = ' || \r\n&gt;                             CLIST(LOOPVAR).SNDV || ', snnvdv = ' || \r\n&gt;                             CLIST(LOOPVAR).SNNVDV || ', nnv = ' || NNV || \r\n&gt;                             ', ndv = ' || CLIST(LOOPVAR).NDV);\r\n28509c28733,28734\r\n&lt;               IF DBMS_STATS_INTERNAL.COLHASHISTOGRAM(TOBJN, CLIST(LOOPVAR).ICOL) THEN\r\n---\r\n&gt;               IF DBMS_STATS_INTERNAL.COLHASHISTOGRAM(TOBJN, \r\n&gt;                                                      CLIST(LOOPVAR).ICOL) THEN\r\n28511c28736,28737\r\n&lt;                 CLIST(LOOPVAR).HGATH := BITOR(CLIST(LOOPVAR).HGATH, DSC_CREC_HIST);\r\n---\r\n&gt;                 CLIST(LOOPVAR).HGATH := BITOR(CLIST(LOOPVAR).HGATH, \r\n&gt;                                               DSC_CREC_HIST);\r\n28517c28743,28744\r\n&lt;                 CLIST(LOOPVAR).HGATH := BITOR(CLIST(LOOPVAR).HGATH, DSC_CREC_HIST);\r\n---\r\n&gt;                 CLIST(LOOPVAR).HGATH := BITOR(CLIST(LOOPVAR).HGATH, \r\n&gt;                                               DSC_CREC_HIST);\r\n29900c30127\r\n&lt;         IF (BITAND(SEL.GATHFLG, DSC_SELREC_RES) = DSC_SELREC_RES) THEN             \r\n---\r\n&gt;         IF (BITAND(SEL.GATHFLG, DSC_SELREC_RES) = DSC_SELREC_RES) THEN\r\n30846c31073\r\n&lt;                 'Unable to incrementally maintain, tablespace SYSAUX is offline');\r\n---\r\n&gt;              'Unable to incrementally maintain, tablespace SYSAUX is offline');\r\n30959a31187\r\n&gt;   \r\n31324c31552\r\n&lt;     NEW_HIST_PCT BOOLEAN := FALSE;   \r\n---\r\n&gt;     NEW_HIST_PCT BOOLEAN := FALSE;  \r\n31469,31474c31697,31704\r\n&lt;                  OWNER, TABNAME, PNAME, SPNAME,  PCT, CTX.CONC_CTX.BLOCK_SAMPLE, \r\n&lt;                  CTX.CONC_CTX.METHOD_OPT, DEGREE, LOC_GRANULARITY, CTX.CONC_CTX.GIDXGRAN, \r\n&lt;                  CTX.CONC_CTX.CASCADE, NULL, NULL, NULL, CTX.CONC_CTX.NO_INVALIDATE,\r\n&lt;                  CTX.CONC_CTX.FLUSH_COLU, FXT_TYP, CTX.CONC_CTX.STATTYPE, CTX.CONC_CTX.START_TIME, \r\n&lt;                  CTX.CONC_CTX.GATHERING_GROUP_STATS, CTX.CONC_CTX.CMS_ONLY, CTX.CONC_CTX.FORCE, \r\n&lt;                  DSC_EXECUTE, CTX.CONC_CTX.JOB_NAME_PREFIX, CTX.CONC_CTX.JOBSTAB,\r\n---\r\n&gt;                  OWNER, TABNAME, PNAME, SPNAME,  PCT, \r\n&gt;                  CTX.CONC_CTX.BLOCK_SAMPLE, CTX.CONC_CTX.METHOD_OPT, DEGREE, \r\n&gt;                  LOC_GRANULARITY, CTX.CONC_CTX.GIDXGRAN, CTX.CONC_CTX.CASCADE, \r\n&gt;                  NULL, NULL, NULL, CTX.CONC_CTX.NO_INVALIDATE, \r\n&gt;                  CTX.CONC_CTX.FLUSH_COLU, FXT_TYP, CTX.CONC_CTX.STATTYPE, \r\n&gt;                  CTX.CONC_CTX.START_TIME, CTX.CONC_CTX.GATHERING_GROUP_STATS, \r\n&gt;                  CTX.CONC_CTX.CMS_ONLY, CTX.CONC_CTX.FORCE, DSC_EXECUTE, \r\n&gt;                  CTX.CONC_CTX.JOB_NAME_PREFIX, CTX.CONC_CTX.JOBSTAB,\r\n31477,31480c31707,31711\r\n&lt;                  CTX.REPORTING_CTX.PRIORITY, CTX.REPORTING_CTX.FLAGS, TARGET_SIZE, \r\n&lt;                  BATCHING_COEFF, \r\n&lt;                  CTX.CONC_CTX.AGENT &lt;&gt; CTX.CONC_CTX.JOB_NAME_PREFIX, CTX.REPORTING_CTX.TARGET_TYPE,\r\n&lt;                  DSC_STOP_ON_FIRST, REPORTING_MODE);\r\n---\r\n&gt;                  CTX.REPORTING_CTX.PRIORITY, CTX.REPORTING_CTX.FLAGS, \r\n&gt;                  TARGET_SIZE, BATCHING_COEFF, \r\n&gt;                  CTX.CONC_CTX.AGENT &lt;&gt; CTX.CONC_CTX.JOB_NAME_PREFIX, \r\n&gt;                  CTX.REPORTING_CTX.TARGET_TYPE, DSC_STOP_ON_FIRST, \r\n&gt;                  REPORTING_MODE);\r\n31918c32149,32150\r\n&lt;             NEW_PCT := GET_NEW_PCT_FOR_APPR_NDV(CURR_PCT, CLIST, ISTART, ISTOP);\r\n---\r\n&gt;             NEW_PCT := GET_NEW_PCT_FOR_APPR_NDV(CURR_PCT, CLIST, ISTART, \r\n&gt;                                                 ISTOP);\r\n32155c32387,32388\r\n&lt;             SYS.DBMS_STATS_INTERNAL.GET_PARTN_LOCK_FLAG(FOBJN, DSC_KGLTTABP, NULL);\r\n---\r\n&gt;             SYS.DBMS_STATS_INTERNAL.GET_PARTN_LOCK_FLAG(FOBJN, DSC_KGLTTABP, \r\n&gt;                                                         NULL);\r\n32158c32391,32392\r\n&lt;             SYS.DBMS_STATS_INTERNAL.GET_PARTN_LOCK_FLAG(FOBJN, DSC_KGLTTASP, NULL);\r\n---\r\n&gt;             SYS.DBMS_STATS_INTERNAL.GET_PARTN_LOCK_FLAG(FOBJN, DSC_KGLTTASP, \r\n&gt;                                                         NULL);\r\n32363c32597,32598\r\n&lt;       FOR RECP IN SYS.DBMS_STATS_INTERNAL.TSPART_CUR_ORDERED(OWNER,TABNAME,PNAME) \r\n---\r\n&gt;       FOR RECP IN SYS.DBMS_STATS_INTERNAL.TSPART_CUR_ORDERED(OWNER,TABNAME,\r\n&gt;                                                              PNAME) \r\n32506c32741\r\n&lt;                                DSC_ACTION_GATHER, NULL, SCSFLAGS);                  \r\n---\r\n&gt;                                DSC_ACTION_GATHER, NULL, SCSFLAGS);\r\n32520c32755,32756\r\n&lt;            BITAND(CTX.CONC_CTX.EXECUTIONPHASE, DSC_PREPARE) = DSC_PREPARE)) THEN \r\n---\r\n&gt;            BITAND(CTX.CONC_CTX.EXECUTIONPHASE, DSC_PREPARE) = \r\n&gt;            DSC_PREPARE)) THEN \r\n32526c32762,32763\r\n&lt;       TRACE_ERROR('gather_subpart [executeStatJobs: '|| BOOL2STR(CTX.CONC_CTX.EXECUTESTATJOBS) || ']');      \r\n---\r\n&gt;       TRACE_ERROR('gather_subpart [executeStatJobs: '|| \r\n&gt;                   BOOL2STR(CTX.CONC_CTX.EXECUTESTATJOBS) || ']');      \r\n32902c33139\r\n&lt;           JOBPROGRESSMON(CTX.CONC_CTX.LAST_JOB_NAME) := LOPINFO(SOFAR);                   \r\n---\r\n&gt;           JOBPROGRESSMON(CTX.CONC_CTX.LAST_JOB_NAME) := LOPINFO(SOFAR);\r\n33086a33324\r\n&gt;                                     \r\n33110,33111c33348,33351\r\n&lt;     CTX.CONC_CTX.EXECUTESTATJOBS := BITAND(CTX.CONC_CTX.EXECUTIONPHASE, DSC_EXECUTE) = DSC_EXECUTE \r\n&lt;                               OR BITAND(CTX.CONC_CTX.EXECUTIONPHASE, DSC_SEQ) = DSC_SEQ;\r\n---\r\n&gt;     CTX.CONC_CTX.EXECUTESTATJOBS := BITAND(CTX.CONC_CTX.EXECUTIONPHASE, \r\n&gt;                                            DSC_EXECUTE) = DSC_EXECUTE OR\r\n&gt;                                     BITAND(CTX.CONC_CTX.EXECUTIONPHASE, \r\n&gt;                                            DSC_SEQ) = DSC_SEQ;\r\n33116c33356,33357\r\n&lt;                           || ' global_requested: ' || BOOL2STR(CTX.CONC_CTX.GLOBAL_REQUESTED)\r\n---\r\n&gt;                           || ' global_requested: ' \r\n&gt;                           || BOOL2STR(CTX.CONC_CTX.GLOBAL_REQUESTED)\r\n33311,33312c33552,33555\r\n&lt;            BITAND(CTX.CONC_CTX.EXECUTIONPHASE, DSC_PREPARE) =  DSC_PREPARE AND  \r\n&lt;            DBMS_STATS_INTERNAL.IS_PARTITIONED_TAB(OWNER, TABNAME) = TRUE AND \r\n---\r\n&gt;            BITAND(CTX.CONC_CTX.EXECUTIONPHASE, DSC_PREPARE) =  \r\n&gt;            DSC_PREPARE AND  \r\n&gt;            DBMS_STATS_INTERNAL.IS_PARTITIONED_TAB(OWNER, TABNAME) = TRUE AND\r\n&gt;              \r\n33315,33316c33558,33560\r\n&lt;           TRACE_TABLE('IM or approx global case: submitting the current batch content: ' ||\r\n&lt;                        CTX.CONC_CTX.JOBSTAB.COUNT);\r\n---\r\n&gt;           TRACE_TABLE(\r\n&gt;              'IM or approx global case: submitting the current batch content: '\r\n&gt;                       || CTX.CONC_CTX.JOBSTAB.COUNT);\r\n33320,33324c33564,33571\r\n&lt;             JOB_MAN_SUBMIT_JOB_BATCH(CTX.BATCHING_CTX, CTX.CONC_CTX.JOBSTAB, CTX.CONC_CTX.AGENT, \r\n&lt;                                  CTX.REPORTING_CTX.OP_ID, CTX.REPORTING_CTX.JOB_NAME,\r\n&lt;                                  DSC_STOP_ON_FIRST,\r\n&lt;                                  CTX.CONC_CTX.AGENT &lt;&gt; CTX.CONC_CTX.JOB_NAME_PREFIX,\r\n&lt;                                  FALSE, TRUE, REPORTING_MODE);\r\n---\r\n&gt;             JOB_MAN_SUBMIT_JOB_BATCH(CTX.BATCHING_CTX, CTX.CONC_CTX.JOBSTAB, \r\n&gt;                                      CTX.CONC_CTX.AGENT, \r\n&gt;                                      CTX.REPORTING_CTX.OP_ID, \r\n&gt;                                      CTX.REPORTING_CTX.JOB_NAME, \r\n&gt;                                      DSC_STOP_ON_FIRST,\r\n&gt;                                      CTX.CONC_CTX.AGENT &lt;&gt; \r\n&gt;                                        CTX.CONC_CTX.JOB_NAME_PREFIX,\r\n&gt;                                      FALSE, TRUE, REPORTING_MODE);\r\n33327,33336c33574,33589\r\n&lt;             JOB_MAN_SUBMIT_JOB_BATCH(CTX.BATCHING_CTX, CTX.CONC_CTX.JOBSTAB, CTX.CONC_CTX.AGENT, \r\n&lt;                                  CTX.REPORTING_CTX.OP_ID, CTX.REPORTING_CTX.JOB_NAME,\r\n&lt;                                  DSC_STOP_ON_FIRST,\r\n&lt;                                  CTX.CONC_CTX.AGENT &lt;&gt; CTX.CONC_CTX.JOB_NAME_PREFIX,\r\n&lt;                                  FALSE, FALSE, REPORTING_MODE);\r\n&lt;           END IF;\r\n&lt;           TRACE_TABLE('waiting for jobs in construct analyze sql (IM or approx global): ' || \r\n&lt;                        CTX.CONC_CTX.JOBSTAB.COUNT);\r\n&lt;           MONITORING_MAN_WAIT_FOR_JOBS(CTX.CONC_CTX.JOB_NAME_PREFIX, CTX.CONC_CTX.JSTATS, \r\n&lt;                                        CTX.CONC_CTX.JOBSTAB, CTX.CONC_CTX.AGENT, NULL,\r\n---\r\n&gt;             JOB_MAN_SUBMIT_JOB_BATCH(CTX.BATCHING_CTX, CTX.CONC_CTX.JOBSTAB, \r\n&gt;                                      CTX.CONC_CTX.AGENT, \r\n&gt;                                      CTX.REPORTING_CTX.OP_ID, \r\n&gt;                                      CTX.REPORTING_CTX.JOB_NAME,\r\n&gt;                                      DSC_STOP_ON_FIRST,\r\n&gt;                                      CTX.CONC_CTX.AGENT &lt;&gt; \r\n&gt;                                        CTX.CONC_CTX.JOB_NAME_PREFIX,\r\n&gt;                                      FALSE, FALSE, REPORTING_MODE);\r\n&gt;           END IF;\r\n&gt;           TRACE_TABLE(\r\n&gt;             'waiting for jobs in construct analyze sql (IM or approx global): '\r\n&gt;                       || CTX.CONC_CTX.JOBSTAB.COUNT);\r\n&gt;           MONITORING_MAN_WAIT_FOR_JOBS(CTX.CONC_CTX.JOB_NAME_PREFIX, \r\n&gt;                                        CTX.CONC_CTX.JSTATS, \r\n&gt;                                        CTX.CONC_CTX.JOBSTAB, \r\n&gt;                                        CTX.CONC_CTX.AGENT, NULL,\r\n33338,33340c33591,33596\r\n&lt;           IF(CTX.CONC_CTX.JSTATS.FAILED &gt; 0 OR CTX.CONC_CTX.JSTATS.STOPPED &gt; 0) THEN\r\n&lt;             IF CTX.CONC_CTX.JSTATS.LASTEVENT.ERROR_CODE IN (-1403, -942, -1031) THEN\r\n&lt;               RAISE_APPLICATION_ERROR(-20009, CTX.CONC_CTX.JSTATS.LASTEVENT.ERROR_MSG);        \r\n---\r\n&gt;           IF(CTX.CONC_CTX.JSTATS.FAILED &gt; 0 OR \r\n&gt;              CTX.CONC_CTX.JSTATS.STOPPED &gt; 0) THEN\r\n&gt;             IF CTX.CONC_CTX.JSTATS.LASTEVENT.ERROR_CODE IN (-1403, -942, -1031)\r\n&gt;               THEN\r\n&gt;               RAISE_APPLICATION_ERROR(-20009, \r\n&gt;                                       CTX.CONC_CTX.JSTATS.LASTEVENT.ERROR_MSG);\r\n33342c33598,33599\r\n&lt;               RAISE_APPLICATION_ERROR(-20001, CTX.CONC_CTX.JSTATS.LASTEVENT.ERROR_MSG);\r\n---\r\n&gt;               RAISE_APPLICATION_ERROR(-20001, \r\n&gt;                                       CTX.CONC_CTX.JSTATS.LASTEVENT.ERROR_MSG);\r\n33384,33388c33641,33650\r\n&lt;                          CLIST, ISTART, ISTOP, CSTATS, TSTATS,\r\n&lt;                          SAMPLE = AUTO_SAMPLE_SIZE, INCREMENTAL_PARTLVL) = FALSE)) THEN\r\n&lt;           \r\n&lt;           IF((CTX.CONC_CTX.JOBSTAB.COUNT &gt; 0 OR CTX.BATCHING_CTX.CURRENTBATCHSIZE &gt; 0) \r\n&lt;              AND (REP_TARGET_TYPE = DSC_TABLE OR REP_TARGET_TYPE = DSC_TABLE_COORD)) THEN\r\n---\r\n&gt;                                               CLIST, ISTART, ISTOP, CSTATS, \r\n&gt;                                               TSTATS, \r\n&gt;                                               SAMPLE = AUTO_SAMPLE_SIZE,\r\n&gt;                                               INCREMENTAL_PARTLVL) = \r\n&gt;                    FALSE)) THEN\r\n&gt;           \r\n&gt;           IF((CTX.CONC_CTX.JOBSTAB.COUNT &gt; 0 OR \r\n&gt;               CTX.BATCHING_CTX.CURRENTBATCHSIZE &gt; 0) \r\n&gt;              AND (REP_TARGET_TYPE = DSC_TABLE OR \r\n&gt;                   REP_TARGET_TYPE = DSC_TABLE_COORD)) THEN\r\n33453c33715,33716\r\n&lt;       IF ((CTX.CONC_CTX.GLOBAL_REQUESTED AND BITAND(CTX.CONC_CTX.EXECUTIONPHASE, DSC_EXECUTE) = DSC_EXECUTE) \r\n---\r\n&gt;       IF ((CTX.CONC_CTX.GLOBAL_REQUESTED AND \r\n&gt;            BITAND(CTX.CONC_CTX.EXECUTIONPHASE, DSC_EXECUTE) = DSC_EXECUTE) \r\n33805c34068,34069\r\n&lt;     EXECUTIONPHASE BINARY_INTEGER := CTX.CONC_CTX.EXECUTIONPHASE; \r\n---\r\n&gt;     EXECUTIONPHASE BINARY_INTEGER := \r\n&gt;                         CTX.CONC_CTX.EXECUTIONPHASE; \r\n33852,33854c34116,34119\r\n&lt;     TRACE_TABLE('Started table ' || OWNER || '.' || TABNAMEU || '.' || PARTNAMEU || ' at ' \r\n&lt;                 || SYSTIMESTAMP ||'. Execution phase: ' || EXEC_PHASE_TO_STR(EXECUTIONPHASE) || \r\n&lt;                    ' stattype: ' || STATTYPE || ' Reporting Mode: ' || BOOL2STR(REPORTING_MODE));  \r\n---\r\n&gt;     TRACE_TABLE('Started table ' || OWNER || '.' || TABNAMEU || '.' || \r\n&gt;                 PARTNAMEU || ' at ' || SYSTIMESTAMP ||'. Execution phase: ' || \r\n&gt;                 EXEC_PHASE_TO_STR(EXECUTIONPHASE) || ' stattype: ' || \r\n&gt;                 STATTYPE || ' Reporting Mode: ' || BOOL2STR(REPORTING_MODE));  \r\n33877c34142,34143\r\n&lt;       DBMS_STATS_INTERNAL.GET_PREFS('GRANULARITY', LOC_GRANULARITY, OWNER, TABNAMEU);\r\n---\r\n&gt;       DBMS_STATS_INTERNAL.GET_PREFS('GRANULARITY', LOC_GRANULARITY, OWNER, \r\n&gt;                                     TABNAMEU);\r\n33881c34147,34148\r\n&lt;       DBMS_STATS_INTERNAL.GET_PREFS('ESTIMATE_PERCENT', PVALU, OWNER, TABNAMEU);\r\n---\r\n&gt;       DBMS_STATS_INTERNAL.GET_PREFS('ESTIMATE_PERCENT', PVALU, OWNER, \r\n&gt;                                     TABNAMEU);\r\n33886c34153,34154\r\n&lt;       DBMS_STATS_INTERNAL.GET_PREFS('METHOD_OPT', LOC_METHOD_OPT, OWNER, TABNAMEU);\r\n---\r\n&gt;       DBMS_STATS_INTERNAL.GET_PREFS('METHOD_OPT', LOC_METHOD_OPT, OWNER, \r\n&gt;                                     TABNAMEU);\r\n34032a34301\r\n&gt;       \r\n34130c34399\r\n&lt;     EXECUTESTATJOBS := BITAND(EXECUTIONPHASE, DSC_EXECUTE) = DSC_EXECUTE;                         \r\n---\r\n&gt;     EXECUTESTATJOBS := BITAND(EXECUTIONPHASE, DSC_EXECUTE) = DSC_EXECUTE;\r\n34209,34211c34478,34481\r\n&lt;             NULL, NULL, STATTAB, STATID, TRANSFER_PART_STATS, TRUE, LOC_CASCADE, FALSE,\r\n&lt;             STATOWN, IOT_TOP_NAME, FALSE, NO_INVALIDATE, FXT_TYP, 'ALL', FALSE,\r\n&lt;             FALSE, OBJ_TRANSFERRED, DEFAULT_STAT_CATEGORY);\r\n---\r\n&gt;                              NULL, NULL, STATTAB, STATID, TRANSFER_PART_STATS, \r\n&gt;                              TRUE, LOC_CASCADE, FALSE, STATOWN, IOT_TOP_NAME,\r\n&gt;                              FALSE, NO_INVALIDATE, FXT_TYP, 'ALL', FALSE, \r\n&gt;                              FALSE, OBJ_TRANSFERRED, DEFAULT_STAT_CATEGORY);\r\n34268c34538,34539\r\n&lt;         IF(CTX.CONC_CTX.GLOBAL_REQUESTED IS NULL AND GATHERING_GROUP_STATS) THEN\r\n---\r\n&gt;         IF (CTX.CONC_CTX.GLOBAL_REQUESTED IS NULL AND \r\n&gt;             GATHERING_GROUP_STATS) THEN\r\n34270c34541,34542\r\n&lt;             DBMS_STATS_INTERNAL.GET_PREFS('GRANULARITY', LOC_GIDX_GRANULARITY, OWNER, TABNAMEU);\r\n---\r\n&gt;             DBMS_STATS_INTERNAL.GET_PREFS('GRANULARITY', LOC_GIDX_GRANULARITY, \r\n&gt;                                           OWNER, TABNAMEU);\r\n34274c34546,34547\r\n&lt;           CTX.CONC_CTX.GLOBAL_REQUESTED := CHECK_GRANULARITY(INDEXGRAN, 'GLOBAL');         \r\n---\r\n&gt;           CTX.CONC_CTX.GLOBAL_REQUESTED := CHECK_GRANULARITY(INDEXGRAN,\r\n&gt;                                                              'GLOBAL');\r\n34358c34631\r\n&lt;             IF ((LOC_CASCADE = TRUE) OR (IOT_TOP_NAME = LOC_IND_NAME)) THEN           \r\n---\r\n&gt;             IF ((LOC_CASCADE = TRUE) OR (IOT_TOP_NAME = LOC_IND_NAME)) THEN\r\n34385c34658\r\n&lt;             IF ((LOC_CASCADE = TRUE) OR (IOT_TOP_NAME = RECI.IND_NAME)) THEN            \r\n---\r\n&gt;             IF ((LOC_CASCADE = TRUE) OR (IOT_TOP_NAME = RECI.IND_NAME)) THEN\r\n34447c34720,34721\r\n&lt;       TRACE_TABLE('waiting for all jobs to finish in gather_table_stats_aux: ' || CTX.CONC_CTX.JOBSTAB.COUNT);\r\n---\r\n&gt;       TRACE_TABLE('waiting for all jobs to finish in gather_table_stats_aux: ' \r\n&gt;                   || CTX.CONC_CTX.JOBSTAB.COUNT);\r\n34452c34726,34727\r\n&lt;       IF(CTX.CONC_CTX.JSTATS.FAILED &gt; 0 OR CTX.CONC_CTX.JSTATS.STOPPED &gt; 0) THEN\r\n---\r\n&gt;       IF (CTX.CONC_CTX.JSTATS.FAILED &gt; 0 OR \r\n&gt;           CTX.CONC_CTX.JSTATS.STOPPED &gt; 0) THEN\r\n34460c34735,34738\r\n&lt;         JOB_MAN_PERFORM_CLEANUPS(FORCE_DROP, FORCE_DROP, LOC_JOB_NAME_PREFIX, CTX.CONC_CTX.JOBSTAB, TRUE, TRUE);\r\n---\r\n&gt;                                                         \r\n&gt;                                                         \r\n&gt;         JOB_MAN_PERFORM_CLEANUPS(FORCE_DROP, FORCE_DROP, LOC_JOB_NAME_PREFIX, \r\n&gt;                                  CTX.CONC_CTX.JOBSTAB, TRUE, TRUE);\r\n34492c34770,34771\r\n&lt;                 OWNER || '.' || TABNAMEU || '.' || PARTNAMEU || ' at ' || SYSTIMESTAMP);     \r\n---\r\n&gt;                 OWNER || '.' || TABNAMEU || '.' || PARTNAMEU || ' at ' || \r\n&gt;                 SYSTIMESTAMP);     \r\n34501c34780\r\n&lt;                               DSC_AUTO_STATS_COMPLETED,                          \r\n---\r\n&gt;                               DSC_AUTO_STATS_COMPLETED,\r\n34520a34800\r\n&gt;                                \r\n34525,34526c34805,34807\r\n&lt;       TRACE_ERROR('Exception in gather table stats aux... cleaned: ' || BOOL2STR(CLEANED)\r\n&lt;                    || ' isTopLevel: ' || BOOL2STR(ISTOPLEVEL));           \r\n---\r\n&gt;       TRACE_ERROR('Exception in gather table stats aux... cleaned: ' || \r\n&gt;                   BOOL2STR(CLEANED) || ' isTopLevel: ' || \r\n&gt;                   BOOL2STR(ISTOPLEVEL));\r\n34532c34813\r\n&lt;                       CTX.CONC_CTX.JSTATS.STOPPED || ' jobs were stopped.');         \r\n---\r\n&gt;                       CTX.CONC_CTX.JSTATS.STOPPED || ' jobs were stopped.');\r\n34535c34816,34818\r\n&lt;           JOB_MAN_PERFORM_CLEANUPS(TRUE, TRUE, LOC_JOB_NAME_PREFIX, CTX.CONC_CTX.JOBSTAB, TRUE, TRUE);\r\n---\r\n&gt;                                \r\n&gt;           JOB_MAN_PERFORM_CLEANUPS(TRUE, TRUE, LOC_JOB_NAME_PREFIX, \r\n&gt;                                    CTX.CONC_CTX.JOBSTAB, TRUE, TRUE);\r\n34537c34820,34821\r\n&lt;           JOB_MAN_PERFORM_CLEANUPS(TRUE, TRUE, LOC_JOB_NAME_PREFIX, CTX.CONC_CTX.JOBSTAB, FALSE, FALSE);\r\n---\r\n&gt;           JOB_MAN_PERFORM_CLEANUPS(TRUE, TRUE, LOC_JOB_NAME_PREFIX, \r\n&gt;                                    CTX.CONC_CTX.JOBSTAB, FALSE, FALSE);\r\n34560,34561c34844,34846\r\n&lt;           ' VIEW \"' || OWNER || '\".\"' || USERSPECDTABNAME || '\"' || PARTNAMEU ||\r\n&lt;           ', insufficient privileges or invalid');\r\n---\r\n&gt;                                   ' VIEW \"' || OWNER || '\".\"' || \r\n&gt;                                   USERSPECDTABNAME || '\"' || PARTNAMEU ||\r\n&gt;                                   ', insufficient privileges or invalid');\r\n34682a34968,34980\r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n34824c35122,35123\r\n&lt;         TRACE_TABLE('Starting a batch of ' || TASK_COUNT || ' tasks... op id: ' || CTX.REPORTING_CTX.OP_ID);\r\n---\r\n&gt;         TRACE_TABLE('Starting a batch of ' || TASK_COUNT || \r\n&gt;                     ' tasks... op id: ' || CTX.REPORTING_CTX.OP_ID);\r\n34826c35125,35126\r\n&lt;         TRACE_TABLE('Starting a single task batch... op id: ' || CTX.REPORTING_CTX.OP_ID);\r\n---\r\n&gt;         TRACE_TABLE('Starting a single task batch... op id: ' || \r\n&gt;                     CTX.REPORTING_CTX.OP_ID);\r\n34856c35156,35157\r\n&lt;         TRACE_TABLE('Processing task ' || ITER || ' of ' || TASK_COUNT || '...');\r\n---\r\n&gt;         TRACE_TABLE('Processing task ' || ITER || ' of ' || TASK_COUNT || \r\n&gt;                     '...');\r\n34862c35163\r\n&lt;           LOC_START_TIME := TO_DATE(PARAMS(20), 'MM-DD-YYYY HH24:MI:SS');        \r\n---\r\n&gt;           LOC_START_TIME := TO_DATE(PARAMS(20), 'MM-DD-YYYY HH24:MI:SS');\r\n34873,34875c35174,35177\r\n&lt;         TRACE_TABLE(' |--&gt;  ' || PARAMS(2) || '.' || PARAMS(3) || '.' || PARAMS(4) || \r\n&lt;                     ' &gt; Estimated Cost: ' || CTX.REPORTING_CTX.EST_COST ||\r\n&lt;                     ' Batching Coefficient: ' || CTX.REPORTING_CTX.BATCHING_COEFF);       \r\n---\r\n&gt;         TRACE_TABLE(' |--&gt;  ' || PARAMS(2) || '.' || PARAMS(3) || '.' || \r\n&gt;                     PARAMS(4) || ' &gt; Estimated Cost: ' || \r\n&gt;                     CTX.REPORTING_CTX.EST_COST || ' Batching Coefficient: ' || \r\n&gt;                     CTX.REPORTING_CTX.BATCHING_COEFF);       \r\n34888c35190,35191\r\n&lt;          TRACE_ERROR('Exception while processing task ' || ITER || ': ' || SQLERRM);\r\n---\r\n&gt;          TRACE_ERROR('Exception while processing task ' || ITER || ': ' || \r\n&gt;                      SQLERRM);\r\n34890c35193,35194\r\n&lt;              (SQLCODE = -20000 AND SQLERRM LIKE '%insufficient privileges%')) THEN\r\n---\r\n&gt;              (SQLCODE = -20000 AND \r\n&gt;               SQLERRM LIKE '%insufficient privileges%')) THEN\r\n35085c35389,35390\r\n&lt;     TRACE_TABLE('Start gather group stats...*' || OBJLIST.COUNT || ' stattab: ' || STATTAB);  \r\n---\r\n&gt;     TRACE_TABLE('Start gather group stats...*' || OBJLIST.COUNT || \r\n&gt;                 ' stattab: ' || STATTAB);  \r\n35225,35226c35530,35533\r\n&lt;               TRACE_TABLE('Submit table job: objnameQ: '|| OBJNAMEQ || ' subname: ' || SUB_NAME || \r\n&lt;                            ' multi-job table: ' || BOOL2STR(BITAND(EXECUTIONPHASE, DSC_PREPARE) = DSC_PREPARE));\r\n---\r\n&gt;               TRACE_TABLE('Submit table job: objnameQ: '|| OBJNAMEQ || \r\n&gt;                           ' subname: ' || SUB_NAME || ' multi-job table: ' || \r\n&gt;                           BOOL2STR(BITAND(EXECUTIONPHASE, DSC_PREPARE) = \r\n&gt;                                    DSC_PREPARE));\r\n35235,35240c35542,35547\r\n&lt;                             FALSE,FXT_TYP, STATTYPE, START_TIME, TRUE, CMS_ONLY,\r\n&lt;                             FORCE, EXECUTIONPHASE, JOB_NAME_PREFIX, JOBSTAB, NULL, FALSE,\r\n&lt;                             JOB_NAME_PREFIX, STAT_CTX.REPORTING_CTX.OP_ID, \r\n&lt;                             CURRELEM.PRIORITY, CURRELEM.FLAGS, TARGET_SIZE, \r\n&lt;                             BATCHING_COEFF, FALSE, DSC_TABLE, DSC_ABSORB,\r\n&lt;                             REPORTING_MODE);\r\n---\r\n&gt;                             FALSE,FXT_TYP, STATTYPE, START_TIME, TRUE, \r\n&gt;                             CMS_ONLY, FORCE, EXECUTIONPHASE, JOB_NAME_PREFIX, \r\n&gt;                             JOBSTAB, NULL, FALSE, JOB_NAME_PREFIX, \r\n&gt;                             STAT_CTX.REPORTING_CTX.OP_ID, CURRELEM.PRIORITY, \r\n&gt;                             CURRELEM.FLAGS, TARGET_SIZE, BATCHING_COEFF, FALSE,\r\n&gt;                             DSC_TABLE, DSC_ABSORB, REPORTING_MODE);\r\n35242c35549,35550\r\n&lt;               JOBPROGRESSMON(STAT_CTX.BATCHING_CTX.BATCHJOBNAME) := PROGRESSREC;\r\n---\r\n&gt;               JOBPROGRESSMON(STAT_CTX.BATCHING_CTX.BATCHJOBNAME) := \r\n&gt;                                                                    PROGRESSREC;\r\n35246a35555\r\n&gt;                   \r\n35460c35769\r\n&lt;  \r\n---\r\n&gt;   \r\n35656c35965,35966\r\n&lt;       DBMS_STATS_INTERNAL.OPEN_ALL_STALE_OBJS_CUR(OWNNAME,GSYS,GFXT,IGNORE_FLAGS, \r\n---\r\n&gt;       DBMS_STATS_INTERNAL.OPEN_ALL_STALE_OBJS_CUR(OWNNAME, GSYS, GFXT,\r\n&gt;                                                   IGNORE_FLAGS, \r\n35666c35976,35977\r\n&lt;         IF (AUTO AND GATHER_FIXED AND IS_CURSOR_FXT(RECT.OWNNAME, RECT.OBJNAME)) THEN\r\n---\r\n&gt;         IF (AUTO AND GATHER_FIXED AND \r\n&gt;             IS_CURSOR_FXT(RECT.OWNNAME, RECT.OBJNAME)) THEN\r\n35668,35674c35979,35989\r\n&lt;            'TABLE', RECT.OBJNAME, RECT.PARTNAME, RECT.SUBPARTNAME, DSC_AUTO_FLAGS_STALE_STATS);\r\n&lt;         ELSIF (AUTO AND IS_DICOBJ_FOR_STATS(RECT.OWNNAME, RECT.OBJNAME, 'TABLE')) THEN\r\n&lt;           ADD_OBJECT_ELEM(OBJLIST_END, RECT.OWNNAME,\r\n&lt;            'TABLE', RECT.OBJNAME, RECT.PARTNAME, RECT.SUBPARTNAME, DSC_AUTO_FLAGS_STALE_STATS);\r\n&lt;         ELSE\r\n&lt;           ADD_OBJECT_ELEM(OBJLIST, RECT.OWNNAME,\r\n&lt;            'TABLE', RECT.OBJNAME, RECT.PARTNAME, RECT.SUBPARTNAME, DSC_AUTO_FLAGS_STALE_STATS);\r\n---\r\n&gt;                           'TABLE', RECT.OBJNAME, RECT.PARTNAME, \r\n&gt;                           RECT.SUBPARTNAME, DSC_AUTO_FLAGS_STALE_STATS);\r\n&gt;         ELSIF (AUTO AND IS_DICOBJ_FOR_STATS(RECT.OWNNAME, RECT.OBJNAME, \r\n&gt;                                             'TABLE')) THEN\r\n&gt;           ADD_OBJECT_ELEM(OBJLIST_END, RECT.OWNNAME, 'TABLE', RECT.OBJNAME, \r\n&gt;                           RECT.PARTNAME, RECT.SUBPARTNAME, \r\n&gt;                           DSC_AUTO_FLAGS_STALE_STATS);\r\n&gt;         ELSE\r\n&gt;           ADD_OBJECT_ELEM(OBJLIST, RECT.OWNNAME, 'TABLE', RECT.OBJNAME, \r\n&gt;                           RECT.PARTNAME, RECT.SUBPARTNAME, \r\n&gt;                           DSC_AUTO_FLAGS_STALE_STATS);\r\n35692,35693c36007,36009\r\n&lt;       DBMS_STATS_INTERNAL.OPEN_ALL_EMPTY_OBJS_CUR(OWNNAME,GSYS,GTEMP,GFXT,\r\n&lt;                                                   IGNORE_FLAGS,LOC_GRANULARITY,GIND,CUR);\r\n---\r\n&gt;       DBMS_STATS_INTERNAL.OPEN_ALL_EMPTY_OBJS_CUR(OWNNAME, GSYS, GTEMP, GFXT,\r\n&gt;                                                   IGNORE_FLAGS, \r\n&gt;                                                   LOC_GRANULARITY, GIND, CUR);\r\n35702,35704c36018,36022\r\n&lt;         IF (AUTO AND GATHER_FIXED AND IS_CURSOR_FXT(RECT.OWNNAME, RECT.OBJNAME)) THEN\r\n&lt;           ADD_OBJECT_ELEM(OBJLIST_START, RECT.OWNNAME,\r\n&lt;             RECT.OBJTYPE, RECT.OBJNAME, RECT.PARTNAME, RECT.SUBPARTNAME, DSC_AUTO_FLAGS_NO_STATS);\r\n---\r\n&gt;         IF (AUTO AND GATHER_FIXED AND \r\n&gt;             IS_CURSOR_FXT(RECT.OWNNAME, RECT.OBJNAME)) THEN\r\n&gt;           ADD_OBJECT_ELEM(OBJLIST_START, RECT.OWNNAME, RECT.OBJTYPE, \r\n&gt;                           RECT.OBJNAME, RECT.PARTNAME, RECT.SUBPARTNAME, \r\n&gt;                           DSC_AUTO_FLAGS_NO_STATS);\r\n35706,35708c36024,36028\r\n&lt;                IS_DICOBJ_FOR_STATS(RECT.OWNNAME, RECT.OBJNAME, RECT.OBJTYPE)) THEN\r\n&lt;           ADD_OBJECT_ELEM(OBJLIST_END, RECT.OWNNAME,\r\n&lt;             RECT.OBJTYPE, RECT.OBJNAME, RECT.PARTNAME, RECT.SUBPARTNAME, DSC_AUTO_FLAGS_NO_STATS);\r\n---\r\n&gt;                IS_DICOBJ_FOR_STATS(RECT.OWNNAME, RECT.OBJNAME, \r\n&gt;                                    RECT.OBJTYPE)) THEN\r\n&gt;           ADD_OBJECT_ELEM(OBJLIST_END, RECT.OWNNAME, RECT.OBJTYPE, \r\n&gt;                           RECT.OBJNAME, RECT.PARTNAME, RECT.SUBPARTNAME, \r\n&gt;                           DSC_AUTO_FLAGS_NO_STATS);\r\n35710,35714c36030,36036\r\n&lt;           ADD_OBJECT_ELEM(OBJLIST2, RECT.OWNNAME,\r\n&lt;             RECT.OBJTYPE, RECT.OBJNAME, RECT.PARTNAME, RECT.SUBPARTNAME, DSC_AUTO_FLAGS_NO_STATS);\r\n&lt;         ELSE\r\n&lt;           ADD_OBJECT_ELEM(OBJLIST, RECT.OWNNAME,\r\n&lt;             RECT.OBJTYPE, RECT.OBJNAME, RECT.PARTNAME, RECT.SUBPARTNAME, DSC_AUTO_FLAGS_NO_STATS);\r\n---\r\n&gt;           ADD_OBJECT_ELEM(OBJLIST2, RECT.OWNNAME, RECT.OBJTYPE, RECT.OBJNAME, \r\n&gt;                           RECT.PARTNAME, RECT.SUBPARTNAME, \r\n&gt;                           DSC_AUTO_FLAGS_NO_STATS);\r\n&gt;         ELSE\r\n&gt;           ADD_OBJECT_ELEM(OBJLIST, RECT.OWNNAME, RECT.OBJTYPE, RECT.OBJNAME, \r\n&gt;                           RECT.PARTNAME, RECT.SUBPARTNAME, \r\n&gt;                           DSC_AUTO_FLAGS_NO_STATS);\r\n35782c36104,36105\r\n&lt;     TRACE_TABLE('Start gather schema\/db stats... owner: ' || OWNER || ' stattab: ' || STATTAB);       \r\n---\r\n&gt;     TRACE_TABLE('Start gather schema\/db stats... owner: ' || OWNER || \r\n&gt;                 ' stattab: ' || STATTAB);\r\n35794c36117,36118\r\n&lt;       JOB_QUEUE_PROCESSES := TO_NUMBER(DBMS_STATS_INTERNAL.GET_PARAMETER_VAL('job_queue_processes')); \r\n---\r\n&gt;       JOB_QUEUE_PROCESSES := \r\n&gt;        TO_NUMBER(DBMS_STATS_INTERNAL.GET_PARAMETER_VAL('job_queue_processes'));\r\n35799c36123,36124\r\n&lt;           JOB_NAME_PREFIX := DBMS_SCHEDULER.GENERATE_JOB_NAME(DSC_JOB_PREF || 'SD');          \r\n---\r\n&gt;           JOB_NAME_PREFIX := DBMS_SCHEDULER.GENERATE_JOB_NAME(DSC_JOB_PREF || \r\n&gt;                                                               'SD');          \r\n36001c36326,36327\r\n&lt;                           GRANULARITY, CASCADE, FORCE, 'DATA', LOC_OBJ_FILTER_LIST);      \r\n---\r\n&gt;                           GRANULARITY, CASCADE, FORCE, 'DATA', \r\n&gt;                           LOC_OBJ_FILTER_LIST);      \r\n36027c36353,36354\r\n&lt;       TRACE_TABLE('waiting for jobs in gather_schema_or_db_stats_aux: ' || JOBSTAB.COUNT);\r\n---\r\n&gt;       TRACE_TABLE('waiting for jobs in gather_schema_or_db_stats_aux: ' || \r\n&gt;                   JOBSTAB.COUNT);\r\n36034c36361,36362\r\n&lt;         TRACE_TABLE(JSTATS.FAILED || ' jobs failed and ' || JSTATS.STOPPED || ' jobs were stopped.');\r\n---\r\n&gt;         TRACE_TABLE(JSTATS.FAILED || ' jobs failed and ' || JSTATS.STOPPED || \r\n&gt;                     ' jobs were stopped.');\r\n36039c36367,36368\r\n&lt;         JOB_MAN_PERFORM_CLEANUPS(FORCE_DROP, FORCE_DROP, JOB_NAME_PREFIX, JOBSTAB, TRUE, TRUE);\r\n---\r\n&gt;         JOB_MAN_PERFORM_CLEANUPS(FORCE_DROP, FORCE_DROP, JOB_NAME_PREFIX, \r\n&gt;                                  JOBSTAB, TRUE, TRUE);\r\n36084a36414\r\n&gt;    \r\n36437a36768\r\n&gt;                                  \r\n36522,36529c36853,36859\r\n&lt;     GATHER_SCHEMA_OR_DB_STATS(\r\n&lt;       'Database',\r\n&lt;       NULL,ESTIMATE_PERCENT,BLOCK_SAMPLE,METHOD_OPT,\r\n&lt;       DEGREE,GRANULARITY,CASCADE,STATTAB,STATID,\r\n&lt;       OPTIONSU,TLIST,STATOWN,\r\n&lt;       GATHER_SYS,NO_INVALIDATE,GATHER_TEMP,GATHER_FIXED, STATTYPEU,\r\n&lt;       SYSTIMESTAMP, FALSE, OBJ_FILTER_LIST, COLLECTED_SOFAR, JOBSTAB, TRUE, NULL, \r\n&lt;       CONCURRENT, OP_ID, REPORTING_MODE);    \r\n---\r\n&gt;     GATHER_SCHEMA_OR_DB_STATS('Database', NULL, ESTIMATE_PERCENT, BLOCK_SAMPLE,\r\n&gt;                               METHOD_OPT, DEGREE, GRANULARITY, CASCADE, \r\n&gt;                               STATTAB, STATID, OPTIONSU, TLIST, STATOWN,\r\n&gt;                               GATHER_SYS, NO_INVALIDATE, GATHER_TEMP, \r\n&gt;                               GATHER_FIXED, STATTYPEU, SYSTIMESTAMP, FALSE, \r\n&gt;                               OBJ_FILTER_LIST, COLLECTED_SOFAR, JOBSTAB, TRUE, \r\n&gt;                               NULL, CONCURRENT, OP_ID, REPORTING_MODE);    \r\n37091a37422\r\n&gt;                                  \r\n39557a39889\r\n&gt;       \r\n40127,40129c40459,40462\r\n&lt;       TRACE_TABLE('waiting for jobs in gather_dictionary_stats_aux: ' || JOBSTAB.COUNT);\r\n&lt;       MONITORING_MAN_WAIT_FOR_JOBS(JOB_NAME_PREFIX, JSTATS, \r\n&lt;                                    JOBSTAB, JOB_NAME_PREFIX, 'Dictionary Schema');\r\n---\r\n&gt;       TRACE_TABLE('waiting for jobs in gather_dictionary_stats_aux: ' || \r\n&gt;                   JOBSTAB.COUNT);\r\n&gt;       MONITORING_MAN_WAIT_FOR_JOBS(JOB_NAME_PREFIX, JSTATS, JOBSTAB, \r\n&gt;                                    JOB_NAME_PREFIX, 'Dictionary Schema');\r\n40134c40467,40468\r\n&lt;         TRACE_TABLE(JSTATS.FAILED || ' jobs failed and ' || JSTATS.STOPPED || ' jobs were stopped.');\r\n---\r\n&gt;         TRACE_TABLE(JSTATS.FAILED || ' jobs failed and ' || JSTATS.STOPPED || \r\n&gt;                     ' jobs were stopped.');\r\n40137c40471,40472\r\n&lt;       JOB_MAN_PERFORM_CLEANUPS(FORCE_DROP, FORCE_DROP, JOB_NAME_PREFIX, JOBSTAB, TRUE, TRUE);\r\n---\r\n&gt;       JOB_MAN_PERFORM_CLEANUPS(FORCE_DROP, FORCE_DROP, JOB_NAME_PREFIX, \r\n&gt;                                JOBSTAB, TRUE, TRUE);\r\n41449a41785\r\n&gt;   \r\n41710c42046,42047\r\n&lt;     DBMS_STATS_INTERNAL.PART_TYPES(OWNER, TABNAMEU, DSC_KGLNTABL, PTYPE, SPTYPE);  \r\n---\r\n&gt;     DBMS_STATS_INTERNAL.PART_TYPES(OWNER, TABNAMEU, DSC_KGLNTABL, PTYPE, \r\n&gt;                                    SPTYPE);  \r\n43229c43566\r\n&lt;     FOR RECI IN SYS.DBMS_STATS_INTERNAL.ALL_INDEXES(OWNNAME,TABNAME,                                                               NULL,NULL)\r\n---\r\n&gt;     FOR RECI IN SYS.DBMS_STATS_INTERNAL.ALL_INDEXES(OWNNAME,TABNAME,NULL,NULL)\r\n43811c44148\r\n&lt;                                          \r\n---\r\n&gt;                                       \r\n44379,44381c44716,44718\r\n&lt;       DBMS_STATS_INTERNAL.UPDATE_TARGET_LIST(SESID, SESSER, DEFAULT_GRANULARITY, \r\n&lt;                          NULL, \r\n&lt;                          TO_STALE_PERCENT_TYPE(GET_PREFS('STALE_PERCENT')));\r\n---\r\n&gt;       DBMS_STATS_INTERNAL.UPDATE_TARGET_LIST(SESID, SESSER, \r\n&gt;                                              DEFAULT_GRANULARITY, NULL, \r\n&gt;                             TO_STALE_PERCENT_TYPE(GET_PREFS('STALE_PERCENT')));\r\n44964,44965c45301,45302\r\n&lt;       RAISE_APPLICATION_ERROR (-20001,\r\n&lt;         'Invalid input value: valid values between 1 and 255 or DBMS_STATS.AUTO_TABLE_CACHED_BLOCKS');\r\n---\r\n&gt;       RAISE_APPLICATION_ERROR (-20001, 'Invalid input value: valid values ' ||\r\n&gt;                    'between 1 and 255 or DBMS_STATS.AUTO_TABLE_CACHED_BLOCKS');\r\n45842c46179,46180\r\n&lt;      || '          and SYS_OP_MAP_NONNULL(s.statid) = SYS_OP_MAP_NONNULL(:statidU)';\r\n---\r\n&gt;      || '          and SYS_OP_MAP_NONNULL(s.statid) = '\r\n&gt;      || '              SYS_OP_MAP_NONNULL(:statidU)';\r\n45921a46260\r\n&gt;       \r\n46004a46344\r\n&gt;       \r\n46081a46422\r\n&gt;       \r\n46155a46497\r\n&gt;       \r\n46605a46948\r\n&gt;       \r\n46738a47082\r\n&gt;       \r\n46879a47224\r\n&gt;       \r\n47949,47950c48294,48295\r\n&lt;     LINE_LOC := PAD_CHR(LINE_LOC || END_STR, DSC_EXTN_LEN) || DSC_HEADER_DELIM ||\r\n&lt;                 USAGE || DSC_NEW_LINE;\r\n---\r\n&gt;     LINE_LOC := PAD_CHR(LINE_LOC || END_STR, DSC_EXTN_LEN) || \r\n&gt;                         DSC_HEADER_DELIM ||USAGE || DSC_NEW_LINE;\r\n48134c48479,48480\r\n&lt;         USED_CNT := REPORT_TAB_COL_USAGE(TREC.USER_NAME, TREC.OBJ_NAME, REPORT);\r\n---\r\n&gt;         USED_CNT := REPORT_TAB_COL_USAGE(TREC.USER_NAME, TREC.OBJ_NAME, \r\n&gt;                                          REPORT);\r\n48649,48650c48995,48997\r\n&lt;   COMMON_HINTS VARCHAR2(32767)\r\n&lt;   := 'dbms_stats cursor_sharing_exact use_weak_name_resl dynamic_sampling(0) no_monitoring xmlindex_sel_idx_tbl ';\r\n---\r\n&gt;   COMMON_HINTS VARCHAR2(32767) := 'dbms_stats cursor_sharing_exact ' || \r\n&gt;                                   'use_weak_name_resl dynamic_sampling(0) ' ||\r\n&gt;                                   'no_monitoring xmlindex_sel_idx_tbl ';\r\n<\/pre>\n<div id=\"SYS.DBMS_STATS.PACKAGE BODY.12.1.0.2_PSU\">SYS.DBMS_STATS &#8211; PACKAGE BODY (PSU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1206,1216c1206,1216\r\n&lt;     SUCCEEDED   INTEGER := 0,          \r\n&lt;     FAILED      INTEGER := 0,          \r\n&lt;     STOPPED     INTEGER := 0,          \r\n&lt;     STARTED     INTEGER := 0,          \r\n&lt;     SCHEDULED   INTEGER := 0,          \r\n&lt;                                        \r\n&lt;                                        \r\n&lt;     LASTJOB   VARCHAR(30),             \r\n&lt;     LASTEVENT SCHEDULER$_EVENT_INFO,   \r\n&lt;     SOFAR_PART  INTEGER := 0,          \r\n&lt;     SOFAR_SUBPART INTEGER := 0         \r\n---\r\n&gt;     SUCCEEDED   INTEGER := 0,         \r\n&gt;     FAILED      INTEGER := 0,         \r\n&gt;     STOPPED     INTEGER := 0,         \r\n&gt;     STARTED     INTEGER := 0,         \r\n&gt;     SCHEDULED   INTEGER := 0,         \r\n&gt;                                       \r\n&gt;                                       \r\n&gt;     LASTJOB   VARCHAR(30),            \r\n&gt;     LASTEVENT SCHEDULER$_EVENT_INFO,  \r\n&gt;     SOFAR_PART  INTEGER := 0,         \r\n&gt;     SOFAR_SUBPART INTEGER := 0        \r\n1219a1220\r\n&gt;   \r\n1243c1244,1245\r\n&lt;     TOP_LEVEL BOOLEAN, \r\n---\r\n&gt;     TOP_LEVEL BOOLEAN,                          \r\n&gt;                                                 \r\n1773a1776\r\n&gt;   \r\n2233c2236,2238\r\n&lt;   FUNCTION CHECK_GRANULARITY(GRANULARITY VARCHAR2, GRANCHK VARCHAR2) RETURN BOOLEAN;\r\n---\r\n&gt;   FUNCTION CHECK_GRANULARITY(GRANULARITY VARCHAR2, \r\n&gt;                              GRANCHK VARCHAR2) RETURN BOOLEAN;\r\n&gt;   \r\n2237a2243\r\n&gt; \r\n2239,2242c2245,2250\r\n&lt;                           JSTATS IN OUT NOCOPY JOBSTATSREC, \r\n&lt;                           JOBSTAB IN OUT NOCOPY VARCHARTAB, ANAME VARCHAR2, LOPSTR VARCHAR2,\r\n&lt;                           EXCEPTIONPOLICY BINARY_INTEGER DEFAULT DSC_ABSORB,\r\n&lt;                           RETURNPOLICY BINARY_INTEGER DEFAULT DSC_WAIT_FOR_ALL);\r\n---\r\n&gt;                                          JSTATS IN OUT NOCOPY JOBSTATSREC, \r\n&gt;                                          JOBSTAB IN OUT NOCOPY VARCHARTAB,\r\n&gt;                                          ANAME VARCHAR2, LOPSTR VARCHAR2,\r\n&gt;                              EXCEPTIONPOLICY BINARY_INTEGER DEFAULT DSC_ABSORB,\r\n&gt;                                          RETURNPOLICY BINARY_INTEGER \r\n&gt;                                             DEFAULT DSC_WAIT_FOR_ALL);\r\n3111c3119,3121\r\n&lt;           TSTATS(I).TAB  || ' . ' || TSTATS(I).PART || ' . ' || TSTATS(I).SPART);\r\n---\r\n&gt;                                        TSTATS(I).TAB  || ' . ' || \r\n&gt;                                        TSTATS(I).PART || ' . ' || \r\n&gt;                                        TSTATS(I).SPART);\r\n3122c3132,3134\r\n&lt;           ISTATS(I).IND  || ' . ' || ISTATS(I).PART || ' . ' || ISTATS(I).SPART);\r\n---\r\n&gt;                                        ISTATS(I).IND  || ' . ' || \r\n&gt;                                        ISTATS(I).PART || ' . ' || \r\n&gt;                                        ISTATS(I).SPART);\r\n3736c3748,3749\r\n&lt;       RAISE_APPLICATION_ERROR(-20001, 'DBMS_STATS: str2bool: invalid boolean value.');\r\n---\r\n&gt;       RAISE_APPLICATION_ERROR(-20001, \r\n&gt;                               'DBMS_STATS: str2bool: invalid boolean value.');\r\n4078c4091,4092\r\n&lt;     IF(TO_NUMBER(DBMS_STATS_INTERNAL.GET_PARAMETER_VAL('job_queue_processes')) &lt; 4) THEN      \r\n---\r\n&gt;     IF(TO_NUMBER(DBMS_STATS_INTERNAL.GET_PARAMETER_VAL('job_queue_processes'))\r\n&gt;        &lt; 4) THEN      \r\n5229c5243,5244\r\n&lt;          JOB_CLASS_NAME           =&gt; DSC_STATS_COLLECTION_JOB_CLASS || '_' || SUFFIX,       \r\n---\r\n&gt;          JOB_CLASS_NAME           =&gt; DSC_STATS_COLLECTION_JOB_CLASS || '_' || \r\n&gt;                                      SUFFIX,       \r\n5373c5388,5389\r\n&lt;       TRACE_ERROR('exception in monitoring_man_drop_agent: ' || ': ' || SQLERRM );\r\n---\r\n&gt;       TRACE_ERROR('exception in monitoring_man_drop_agent: ' || ': ' ||\r\n&gt;                   SQLERRM );\r\n5398a5415\r\n&gt;     \r\n5421,5423c5438,5441\r\n&lt;         TRACE_ERROR('exception in monitoring_man_subscribe_agent: ' || SQLERRM);\r\n&lt;         RAISE_APPLICATION_ERROR(-20001, 'monitoring_man_subscribe_agent: ' || ANAME || \r\n&lt;                                           ': ' || SQLERRM );       \r\n---\r\n&gt;         TRACE_ERROR('exception in monitoring_man_subscribe_agent: ' || \r\n&gt;                     SQLERRM);\r\n&gt;         RAISE_APPLICATION_ERROR(-20001, 'monitoring_man_subscribe_agent: ' || \r\n&gt;                                         ANAME || ': ' || SQLERRM );       \r\n5449c5467,5468\r\n&lt;   PROCEDURE JOB_MAN_PERFORM_CLEANUPS(FORCE BOOLEAN, DROP_JOB BOOLEAN, SUFFIX VARCHAR2, \r\n---\r\n&gt;   PROCEDURE JOB_MAN_PERFORM_CLEANUPS(FORCE BOOLEAN, DROP_JOB BOOLEAN, \r\n&gt;                                      SUFFIX VARCHAR2, \r\n5458,5459c5477,5479\r\n&lt;     TRACE_TABLE('Perform Cleanups... ' ||  DSC_STATS_COLLECTION_JOB_CLASS || '_' || SUFFIX\r\n&lt;                 || ' force: ' || BOOL2STR(FORCE) || ' drop_job: ' || BOOL2STR(DROP_JOB));  \r\n---\r\n&gt;     TRACE_TABLE('Perform Cleanups... ' ||  DSC_STATS_COLLECTION_JOB_CLASS || \r\n&gt;                 '_' || SUFFIX || ' force: ' || BOOL2STR(FORCE) || \r\n&gt;                 ' drop_job: ' || BOOL2STR(DROP_JOB));  \r\n5475c5495,5496\r\n&lt;             JOB_NAME         =&gt; 'SYS.' || DSC_STATS_COLLECTION_JOB_CLASS || '_' || SUFFIX,\r\n---\r\n&gt;             JOB_NAME         =&gt; 'SYS.' || DSC_STATS_COLLECTION_JOB_CLASS || \r\n&gt;                                 '_' || SUFFIX,\r\n5495c5516,5517\r\n&lt;                JOB_CLASS_NAME   =&gt; 'SYS.' || DSC_STATS_COLLECTION_JOB_CLASS || '_' || SUFFIX);\r\n---\r\n&gt;                JOB_CLASS_NAME   =&gt; 'SYS.' || DSC_STATS_COLLECTION_JOB_CLASS || \r\n&gt;                                    '_' || SUFFIX);\r\n5498a5521\r\n&gt;                                                     \r\n5559c5582,5583\r\n&lt;       TRACE_ERROR('exception in monitoring_man_process_event: ' || ': ' || SQLERRM);\r\n---\r\n&gt;       TRACE_ERROR('exception in monitoring_man_process_event: ' || ': ' || \r\n&gt;                   SQLERRM);\r\n5576c5600,5601\r\n&lt;   PROCEDURE GET_JOB_STATS(JOBSTAB IN OUT NOCOPY VARCHARTAB, JSTATS IN OUT NOCOPY JOBSTATSREC) \r\n---\r\n&gt;   PROCEDURE GET_JOB_STATS(JOBSTAB IN OUT NOCOPY VARCHARTAB, \r\n&gt;                           JSTATS IN OUT NOCOPY JOBSTATSREC) \r\n5611a5637\r\n&gt;   \r\n5669a5696,5700\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n5672c5703,5704\r\n&lt;                           JOBSTAB IN OUT NOCOPY VARCHARTAB, ANAME VARCHAR2, LOPSTR VARCHAR2,\r\n---\r\n&gt;                           JOBSTAB IN OUT NOCOPY VARCHARTAB, ANAME VARCHAR2, \r\n&gt;                           LOPSTR VARCHAR2,\r\n5674c5706\r\n&lt;                           RETURNPOLICY BINARY_INTEGER DEFAULT DSC_WAIT_FOR_ALL) \r\n---\r\n&gt;                           RETURNPOLICY BINARY_INTEGER DEFAULT DSC_WAIT_FOR_ALL)\r\n5694,5695c5726,5728\r\n&lt;     TRACE_TABLE(ANAME || ': waiting for jobs in wait_for_jobs...* ' \r\n&lt;                 || TO_CHAR(JOBSTAB.COUNT - (JSTATS.SUCCEEDED + JSTATS.FAILED + JSTATS.STOPPED)));      \r\n---\r\n&gt;     TRACE_TABLE(ANAME || ': waiting for jobs in wait_for_jobs...* ' || \r\n&gt;                 TO_CHAR(JOBSTAB.COUNT - \r\n&gt;                         (JSTATS.SUCCEEDED + JSTATS.FAILED + JSTATS.STOPPED)));\r\n5706c5739,5740\r\n&lt;       DEQUEUE_OPTIONS.DEQ_CONDITION := 'tab.user_data.object_name like ''' || JOB_NAME_PREFIX || '%'''; \r\n---\r\n&gt;       DEQUEUE_OPTIONS.DEQ_CONDITION := 'tab.user_data.object_name like ''' || \r\n&gt;                                        JOB_NAME_PREFIX || '%'''; \r\n5709c5743,5744\r\n&lt;     WHILE (JSTATS.SUCCEEDED + JSTATS.FAILED + JSTATS.STOPPED) &lt; JOBSTAB.COUNT LOOP\r\n---\r\n&gt;     WHILE (JSTATS.SUCCEEDED + JSTATS.FAILED + JSTATS.STOPPED) &lt; \r\n&gt;           JOBSTAB.COUNT LOOP\r\n5717a5753\r\n&gt;       \r\n5718a5755\r\n&gt;         \r\n5724a5762\r\n&gt;         \r\n5753c5791,5792\r\n&lt;       TRACE_TABLE('  &gt;&gt; process event: ' || MESSAGE.OBJECT_NAME || ' &gt; ' || MESSAGE.EVENT_TYPE || \r\n---\r\n&gt;       TRACE_TABLE('  &gt;&gt; process event: ' || MESSAGE.OBJECT_NAME || ' &gt; ' || \r\n&gt;                   MESSAGE.EVENT_TYPE || \r\n5762c5801,5802\r\n&lt;         TRACE_TABLE(' *** Failure Event: ' || MESSAGE.ERROR_CODE || ': ' || MESSAGE.ERROR_MSG);\r\n---\r\n&gt;         TRACE_TABLE(' *** Failure Event: ' || MESSAGE.ERROR_CODE || ': ' || \r\n&gt;                     MESSAGE.ERROR_MSG);\r\n5765c5805,5806\r\n&lt;           RAISE_APPLICATION_ERROR(-20000, 'insufficient privileges to analyze an object.');\r\n---\r\n&gt;           RAISE_APPLICATION_ERROR(-20000, \r\n&gt;                               'insufficient privileges to analyze an object.');\r\n5800c5841,5842\r\n&lt;         DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS(PROGRESSREC.RINDEX, PROGRESSREC.SLNO,\r\n---\r\n&gt;         DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS(PROGRESSREC.RINDEX, \r\n&gt;                                                   PROGRESSREC.SLNO,\r\n5822c5864,5866\r\n&lt;       TRACE_ERROR(JOB_NAME_PREFIX ||': exception in monitoring_man_wait_for_jobs: ' || ': ' || SQLERRM );      \r\n---\r\n&gt;       TRACE_ERROR(JOB_NAME_PREFIX ||\r\n&gt;                   ': exception in monitoring_man_wait_for_jobs: ' || ': ' || \r\n&gt;                   SQLERRM );      \r\n6194a6239,6258\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n6284,6289c6348,6355\r\n&lt;        TRACE_ERROR('Exception while creating job ' || JOBNAME || ' for table(s) ' ||\r\n&lt;                    COMMENTS || ' at ' || SYSTIMESTAMP ||                    \r\n&lt;                    ' jobsTab.count: ' || TO_CHAR(JOBSTAB.COUNT) || ': ' || SQLERRM );  \r\n&lt;        RAISE_APPLICATION_ERROR(-20001, 'Exception while creating job ' || JOBNAME || ' for table(s) ' ||\r\n&lt;                    COMMENTS || ' at ' || SYSTIMESTAMP ||                    \r\n&lt;                    ' jobsTab.count: ' || TO_CHAR(JOBSTAB.COUNT) || ': ' || SQLERRM);\r\n---\r\n&gt;        TRACE_ERROR('Exception while creating job ' || JOBNAME || \r\n&gt;                    ' for table(s) ' || COMMENTS || ' at ' || SYSTIMESTAMP ||\r\n&gt;                    ' jobsTab.count: ' || TO_CHAR(JOBSTAB.COUNT) || ': ' || \r\n&gt;                    SQLERRM );  \r\n&gt;        RAISE_APPLICATION_ERROR(-20001, 'Exception while creating job ' || \r\n&gt;                                JOBNAME || ' for table(s) ' || COMMENTS || \r\n&gt;                                ' at ' || SYSTIMESTAMP || ' jobsTab.count: ' ||\r\n&gt;                                TO_CHAR(JOBSTAB.COUNT) || ': ' || SQLERRM);\r\n6309a6376,6377\r\n&gt;   \r\n&gt;   \r\n7467c7535,7539\r\n&lt;   PROCEDURE URGENT_CLEANUP(JOBSTAB IN OUT NOCOPY VARCHARTAB, JOB_CLASS_SUFFIX VARCHAR2,\r\n---\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   PROCEDURE URGENT_CLEANUP(JOBSTAB IN OUT NOCOPY VARCHARTAB, \r\n&gt;                            JOB_CLASS_SUFFIX VARCHAR2,\r\n7474c7546,7547\r\n&lt;     CLASS_SUFFIX DBMS_QUOTED_ID := DBMS_ASSERT_SIMPLE_SQL_NAME(JOB_CLASS_SUFFIX);\r\n---\r\n&gt;     CLASS_SUFFIX DBMS_QUOTED_ID := \r\n&gt;                                  DBMS_ASSERT_SIMPLE_SQL_NAME(JOB_CLASS_SUFFIX);\r\n7492c7565,7566\r\n&lt;                        select owner ||'.' || job_name name from dba_scheduler_jobs  \r\n---\r\n&gt;                        select owner ||'.' || job_name name \r\n&gt;                        from dba_scheduler_jobs  \r\n7495c7569,7570\r\n&lt;                        select job_class_name name from dba_scheduler_job_classes  \r\n---\r\n&gt;                        select job_class_name name \r\n&gt;                        from dba_scheduler_job_classes  \r\n7518c7593,7594\r\n&lt;                        dbms_scheduler.stop_job(job_name=&gt;rec.name, force=&gt;true);\r\n---\r\n&gt;                        dbms_scheduler.stop_job(job_name=&gt;rec.name, \r\n&gt;                                                force=&gt;true);\r\n7535c7611,7612\r\n&lt;                        dbms_scheduler.drop_job(job_name=&gt;rec.name, force=&gt;true);\r\n---\r\n&gt;                        dbms_scheduler.drop_job(job_name=&gt;rec.name, \r\n&gt;                                                force=&gt;true);\r\n7545c7622,7623\r\n&lt;                      dbms_scheduler.drop_job_class(job_class_name=&gt;rec.name, force=&gt;true);\r\n---\r\n&gt;                      dbms_scheduler.drop_job_class(job_class_name=&gt;rec.name, \r\n&gt;                                                    force=&gt;true);\r\n7554,7556c7632,7637\r\n&lt;                      subscriber := sys.aq$_agent (rec.name, 'sys.scheduler$_event_queue', null);\r\n&lt;                      dbms_aqadm.remove_subscriber('sys.scheduler$_event_queue', subscriber);   \r\n&lt;                      dbms_aqadm.drop_aq_agent (rec.name);                          \r\n---\r\n&gt;                      subscriber := sys.aq$_agent (rec.name, \r\n&gt;                                                   'sys.scheduler$_event_queue',\r\n&gt;                                                   null);\r\n&gt;                      dbms_aqadm.remove_subscriber('sys.scheduler$_event_queue',\r\n&gt;                                                   subscriber);   \r\n&gt;                      dbms_aqadm.drop_aq_agent (rec.name);\r\n7582c7663,7664\r\n&lt;    TRACE_TABLE('Created Cleanup Job ' || LOC_JOB_NAME ||  ' at ' || SYSTIMESTAMP);  \r\n---\r\n&gt;    TRACE_TABLE('Created Cleanup Job ' || LOC_JOB_NAME ||  ' at ' || \r\n&gt;                SYSTIMESTAMP);  \r\n7644a7727\r\n&gt;     \r\n7646c7729\r\n&lt;       RES := MONITORING_MAN_SUBSCRIBE_AGENT(JOB_NAME_PREFIX, USERNAMEU);                \r\n---\r\n&gt;       RES := MONITORING_MAN_SUBSCRIBE_AGENT(JOB_NAME_PREFIX, USERNAMEU);\r\n7652c7735,7736\r\n&lt;         TRACE_ERROR('Silent exception in init_conc: agent subscription has failed');\r\n---\r\n&gt;         TRACE_ERROR(\r\n&gt;                'Silent exception in init_conc: agent subscription has failed');\r\n7706a7791,7793\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n7749c7836\r\n&lt;         PROP := DBMS_STATS_INTERNAL.GET_TAB_PROPERTY(OWNER, TABNAME);                     \r\n---\r\n&gt;         PROP := DBMS_STATS_INTERNAL.GET_TAB_PROPERTY(OWNER, TABNAME);\r\n7758c7845,7846\r\n&lt;            NOT (BITAND(PROP, 4194304) = 4194304 OR BITAND(PROP, 8388608) = 8388608)           \r\n---\r\n&gt;            NOT (BITAND(PROP, 4194304) = 4194304 OR BITAND(PROP, 8388608) = \r\n&gt;                 8388608)           \r\n7788c7876,7877\r\n&lt;             LOC_JOB_NAME_PREFIX := DBMS_SCHEDULER.GENERATE_JOB_NAME(DSC_JOB_PREF || 'T');\r\n---\r\n&gt;             LOC_JOB_NAME_PREFIX := DBMS_SCHEDULER.GENERATE_JOB_NAME(\r\n&gt;                                                           DSC_JOB_PREF || 'T');\r\n7794c7883\r\n&lt;             IF(IS_NULL(BATCHING_JOB_PREFIX) AND IS_NULL(JOB_NAME_PREFIX)) THEN              \r\n---\r\n&gt;             IF(IS_NULL(BATCHING_JOB_PREFIX) AND IS_NULL(JOB_NAME_PREFIX)) THEN\r\n7797c7886,7887\r\n&lt;                 TRACE_TABLE('Disabling concurrency as initializations have failed');\r\n---\r\n&gt;                 TRACE_TABLE(\r\n&gt;                        'Disabling concurrency as initializations have failed');\r\n7805,7806c7895,7897\r\n&lt;               JOB_MAN_PERFORM_CLEANUPS(TRUE, FALSE, BATCHING_JOB_PREFIX, CONCTX.JOBSTAB, \r\n&lt;                                        TRUE, TRUE);  \r\n---\r\n&gt;               \r\n&gt;               JOB_MAN_PERFORM_CLEANUPS(TRUE, FALSE, BATCHING_JOB_PREFIX, \r\n&gt;                                        CONCTX.JOBSTAB, TRUE, TRUE);  \r\n7928c8019,8020\r\n&lt;       (OWNER VARCHAR2, OBJNAMEU IN OUT NOCOPY VARCHAR2, OBJTYPE BINARY_INTEGER) IS\r\n---\r\n&gt;      (OWNER VARCHAR2, OBJNAMEU IN OUT NOCOPY VARCHAR2, OBJTYPE BINARY_INTEGER)\r\n&gt;   IS\r\n8570c8662\r\n&lt;       DBMS_STATS_INTERNAL.PART_TYPES(OWNNAME, OBJNAME, OBJTYPE, PTYPE, SPTYPE);   \r\n---\r\n&gt;       DBMS_STATS_INTERNAL.PART_TYPES(OWNNAME, OBJNAME, OBJTYPE, PTYPE, SPTYPE);\r\n8619a8712,8713\r\n&gt;   \r\n&gt;   \r\n8945c9039,9040\r\n&lt;         STATS_CHECK_PRIVILEGES(OWNER, TREC.OBJ_NAME, DSC_KGLNTABL, FALSE, NULL);\r\n---\r\n&gt;         STATS_CHECK_PRIVILEGES(OWNER, TREC.OBJ_NAME, DSC_KGLNTABL, FALSE, \r\n&gt;                                NULL);\r\n9112c9207\r\n&lt;                   DBMS_ASSERT.SIMPLE_SQL_NAME(DBMS_STATS_INTERNAL.DQ(COL.PCNAME));\r\n---\r\n&gt;                DBMS_ASSERT.SIMPLE_SQL_NAME(DBMS_STATS_INTERNAL.DQ(COL.PCNAME));\r\n9370,9371c9465,9466\r\n&lt;     CONVERT_FROM_RAW_ICD(DSC_DTYIBFLOAT, RAWVAL, CVAL, DVAL, NVAL, NCVAL, RWVAL,\r\n&lt;                          RESVAL, BDVAL);\r\n---\r\n&gt;     CONVERT_FROM_RAW_ICD(DSC_DTYIBFLOAT, RAWVAL, CVAL, DVAL, NVAL, NCVAL, \r\n&gt;                          RWVAL, RESVAL, BDVAL);\r\n9386,9387c9481,9482\r\n&lt;     CONVERT_FROM_RAW_ICD(DSC_DTYIBDOUBLE, RAWVAL, CVAL, DVAL, NVAL, NCVAL, RWVAL,\r\n&lt;                          BFVAL, RESVAL);\r\n---\r\n&gt;     CONVERT_FROM_RAW_ICD(DSC_DTYIBDOUBLE, RAWVAL, CVAL, DVAL, NVAL, NCVAL, \r\n&gt;                          RWVAL, BFVAL, RESVAL);\r\n9621,9622c9716,9717\r\n&lt;       RAISE_APPLICATION_ERROR(-20000, 'Unsupported data type ' || TYP_CODE || ' ' ||\r\n&lt;                                TBL_NAME || ' ' || COL_NAME);\r\n---\r\n&gt;       RAISE_APPLICATION_ERROR(-20000, 'Unsupported data type ' || TYP_CODE || \r\n&gt;                                       ' ' || TBL_NAME || ' ' || COL_NAME);\r\n10111c10206,10207\r\n&lt;       FOR REC IN DBMS_STATS_INTERNAL.PART_NAME_QRY(TBL_OWNER,TBL_NAME,PART_NAME)\r\n---\r\n&gt;       FOR REC IN DBMS_STATS_INTERNAL.PART_NAME_QRY(TBL_OWNER,TBL_NAME,\r\n&gt;                                                    PART_NAME)\r\n10368c10464,10465\r\n&lt;       RAISE_APPLICATION_ERROR(-20000, 'Cannot store user statistics in external statistics table');\r\n---\r\n&gt;       RAISE_APPLICATION_ERROR(-20000, \r\n&gt;                   'Cannot store user statistics in external statistics table');\r\n10470c10567,10568\r\n&lt;       RAISE_APPLICATION_ERROR(-20000, 'Cannot get user statistics from external statistics table');\r\n---\r\n&gt;       RAISE_APPLICATION_ERROR(-20000, \r\n&gt;                   'Cannot get user statistics from external statistics table');\r\n10595c10693,10694\r\n&lt;       RAISE_APPLICATION_ERROR(-20000, 'Cannot store user statistics in external statistics table');\r\n---\r\n&gt;       RAISE_APPLICATION_ERROR(-20000, \r\n&gt;                   'Cannot store user statistics in external statistics table');\r\n10663c10762,10763\r\n&lt;       RAISE_APPLICATION_ERROR(-20000, 'Cannot get user statistics from external statistics table');\r\n---\r\n&gt;       RAISE_APPLICATION_ERROR(-20000, \r\n&gt;                   'Cannot get user statistics from external statistics table');\r\n11248,11249c11348,11349\r\n&lt;               RAISE_APPLICATION_ERROR(-20000, 'Could not find anything wrong '||\r\n&lt;                 'with statistics table ' || STATOWNU || '.' || STATTABU ||\r\n---\r\n&gt;               RAISE_APPLICATION_ERROR(-20000, 'Could not find anything '||\r\n&gt;                'wrong with statistics table ' || STATOWNU || '.' || STATTABU ||\r\n13117c13217,13218\r\n&lt;         INT_ASSERT(FALSE,'show_extended_stats_name_aux', 'invalid extn_type', FALSE, 0);\r\n---\r\n&gt;         INT_ASSERT(FALSE,'show_extended_stats_name_aux', 'invalid extn_type', \r\n&gt;                    FALSE, 0);\r\n13143c13244,13245\r\n&lt;         RAISE_APPLICATION_ERROR(-20001, 'Error when processing extension - ' || \r\n---\r\n&gt;         RAISE_APPLICATION_ERROR(-20001, \r\n&gt;                                 'Error when processing extension - ' || \r\n13174c13276\r\n&lt;             BITAND (DBMS_STATS_INTERNAL.TRACE_LEVEL, DSC_COL_TRC) = DSC_COL_TRC;\r\n---\r\n&gt;            BITAND (DBMS_STATS_INTERNAL.TRACE_LEVEL, DSC_COL_TRC) = DSC_COL_TRC;\r\n13186c13288,13289\r\n&lt;       DBMS_STATS_INTERNAL.DUMP_TRACE('Trying to create extension ' || SAFE_EXTN);\r\n---\r\n&gt;       DBMS_STATS_INTERNAL.DUMP_TRACE('Trying to create extension ' || \r\n&gt;                                      SAFE_EXTN);\r\n13334c13437\r\n&lt;                                  'not supported for an index organized table ');\r\n---\r\n&gt;                                 'not supported for an index organized table ');\r\n13349c13452,13453\r\n&lt;           RAISE_APPLICATION_ERROR(-20001, 'Error when processing extension - ' || \r\n---\r\n&gt;           RAISE_APPLICATION_ERROR(-20001, \r\n&gt;                                   'Error when processing extension - ' || \r\n13410c13514\r\n&lt;             BITAND (DBMS_STATS_INTERNAL.TRACE_LEVEL, DSC_COL_TRC) = DSC_COL_TRC;\r\n---\r\n&gt;            BITAND (DBMS_STATS_INTERNAL.TRACE_LEVEL, DSC_COL_TRC) = DSC_COL_TRC;\r\n13455a13560\r\n&gt;       \r\n13492a13598\r\n&gt;   \r\n13649c13755,13756\r\n&lt;                       LASTTABNAME,LASTCOLNAME,LASTPARTNAME,LASTSUBPARTNAME,OWNER;\r\n---\r\n&gt;                       LASTTABNAME,LASTCOLNAME,LASTPARTNAME,LASTSUBPARTNAME,\r\n&gt;                       OWNER;\r\n13939c14046,14047\r\n&lt;         OPEN SYS.DBMS_STATS_INTERNAL.GET_TPART_NAME(OWNER, TABNAMEU, PARTNAMEU);\r\n---\r\n&gt;         OPEN SYS.DBMS_STATS_INTERNAL.GET_TPART_NAME(OWNER, TABNAMEU, \r\n&gt;                                                     PARTNAMEU);\r\n14052c14160\r\n&lt;              'Invalid or inconsistent input values in the histogram endpoints');\r\n---\r\n&gt;             'Invalid or inconsistent input values in the histogram endpoints');\r\n14330c14438,14439\r\n&lt;           IF ((ISTATS(I).ALBLK IS NULL) AND (ISTATS(I).NLBLKS IS NOT NULL)) THEN\r\n---\r\n&gt;           IF ((ISTATS(I).ALBLK IS NULL) AND \r\n&gt;               (ISTATS(I).NLBLKS IS NOT NULL)) THEN\r\n14485c14594,14595\r\n&lt;         OPEN SYS.DBMS_STATS_INTERNAL.GET_IPART_NAME(OWNER, INDNAMEU, PARTNAMEU);\r\n---\r\n&gt;         OPEN SYS.DBMS_STATS_INTERNAL.GET_IPART_NAME(OWNER, INDNAMEU, \r\n&gt;                                                     PARTNAMEU);\r\n15244c15354,15355\r\n&lt;         OPEN SYS.DBMS_STATS_INTERNAL.GET_TPART_NAME(OWNER, TABNAMEU, PARTNAMEU);\r\n---\r\n&gt;         OPEN SYS.DBMS_STATS_INTERNAL.GET_TPART_NAME(OWNER, TABNAMEU, \r\n&gt;                                                     PARTNAMEU);\r\n15891c16002,16003\r\n&lt;         OBJ_TRANSFERRED IN OUT BOOLEAN, \r\n---\r\n&gt;         OBJ_TRANSFERRED IN OUT BOOLEAN,               \r\n&gt;                                                       \r\n16084c16196,16197\r\n&lt;         OBJ_TRANSFERRED IN OUT BOOLEAN, \r\n---\r\n&gt;         OBJ_TRANSFERRED IN OUT BOOLEAN,               \r\n&gt;                                                       \r\n16237c16350,16351\r\n&lt;       IF ((DELETEST = FALSE) AND (FROMTABU IS NULL) AND TOTABU IS NOT NULL) THEN\r\n---\r\n&gt;       IF ((DELETEST = FALSE) AND (FROMTABU IS NULL) AND \r\n&gt;           TOTABU IS NOT NULL) THEN\r\n16337c16451,16452\r\n&lt;             TOBJN := DBMS_STATS_INTERNAL.GET_OBJNUM(TSTATS(I).OWN, TSTATS(I).TAB, \r\n---\r\n&gt;             TOBJN := DBMS_STATS_INTERNAL.GET_OBJNUM(TSTATS(I).OWN, \r\n&gt;                                                     TSTATS(I).TAB, \r\n16767,16768c16882,16883\r\n&lt;         STATOWN, 'Schema', NO_INVALIDATE, FALSE, STATTYPE, FORCE, OBJ_TRANSFERRED,\r\n&lt;         FALSE, STAT_CATEGORY);\r\n---\r\n&gt;         STATOWN, 'Schema', NO_INVALIDATE, FALSE, STATTYPE, FORCE, \r\n&gt;         OBJ_TRANSFERRED, FALSE, STAT_CATEGORY);\r\n16782,16783c16897,16898\r\n&lt;       STATOWN, 'Database', NO_INVALIDATE, FALSE, STATTYPE, FORCE, OBJ_TRANSFERRED,\r\n&lt;       TRUE, STAT_CATEGORY);\r\n---\r\n&gt;       STATOWN, 'Database', NO_INVALIDATE, FALSE, STATTYPE, FORCE, \r\n&gt;       OBJ_TRANSFERRED, TRUE, STAT_CATEGORY);\r\n17059c17174,17175\r\n&lt;         RAISE_APPLICATION_ERROR (-20001, 'Invalid or inconsistent input values');\r\n---\r\n&gt;         RAISE_APPLICATION_ERROR (-20001, \r\n&gt;                                  'Invalid or inconsistent input values');\r\n17734,17735c17850,17851\r\n&lt;       TXT := 'select statid,type,version,flags,c1,c2,c3,c4,n1,n2,n3,n4,n5,n6,' ||\r\n&lt;           'n7,n8,n9,d1,r1,r2 from ' || DBMS_STATS_INTERNAL.DQ(OWNER) ||\r\n---\r\n&gt;       TXT := 'select statid,type,version,flags,c1,c2,c3,c4,n1,n2,n3,n4,n5,' ||\r\n&gt;           'n6,n7,n8,n9,d1,r1,r2 from ' || DBMS_STATS_INTERNAL.DQ(OWNER) ||\r\n18901a19018\r\n&gt;                                      \r\n18903c19020,19021\r\n&lt;     LOCAL_BKTNUM INTEGER;     \r\n---\r\n&gt;                                      \r\n&gt;     LOCAL_BKTNUM INTEGER; \r\n19314a19433\r\n&gt;                 \r\n19316c19435,19436\r\n&lt;                     BITAND(CLIST(CIND).HGATH, DSC_CREC_EP+DSC_CREC_RP) = 0) THEN\r\n---\r\n&gt;                     BITAND(CLIST(CIND).HGATH, DSC_CREC_EP+DSC_CREC_RP) = \r\n&gt;                     0) THEN\r\n19522,19523c19642,19643\r\n&lt;          'invalid column name or duplicate columns\/column groups\/expressions' ||\r\n&lt;          ' in method_opt');\r\n---\r\n&gt;         'invalid column name or duplicate columns\/column groups\/expressions' ||\r\n&gt;         ' in method_opt');\r\n19622c19742\r\n&lt;             BITAND (DBMS_STATS_INTERNAL.TRACE_LEVEL, DSC_COL_TRC) = DSC_COL_TRC;\r\n---\r\n&gt;            BITAND (DBMS_STATS_INTERNAL.TRACE_LEVEL, DSC_COL_TRC) = DSC_COL_TRC;\r\n20395a20516\r\n&gt;   \r\n22123a22245,22328\r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt;   FUNCTION GET_ROW_COUNT_ESTIMATE (\r\n&gt;         OWNNAME VARCHAR2,                 \r\n&gt;         TABNAME VARCHAR2,                 \r\n&gt;         PARTNAME VARCHAR2,                \r\n&gt;         NBLKS INTEGER,\r\n&gt;         DEGREE INTEGER\r\n&gt;         ) RETURN NUMBER IS\r\n&gt;     ROW_COUNT    NUMBER;\r\n&gt;     OWNER        VARCHAR2(30);\r\n&gt;     TABNAMEU     VARCHAR2(30);\r\n&gt;     PARTNAMEU    VARCHAR2(30);\r\n&gt;     FOBJN        NUMBER;\r\n&gt;     PNAME        VARCHAR2(30);\r\n&gt;     SPNAME       VARCHAR2(30);\r\n&gt;     SEED         INTEGER;\r\n&gt;     NO_ITERATION BOOLEAN;\r\n&gt;     PARTTYPE     NUMBER;\r\n&gt;   BEGIN\r\n&gt;     FILL_IN_SCHEMA(OWNNAME, OWNER);\r\n&gt;     UPCASE(TABNAME, TABNAMEU);\r\n&gt;     UPCASE(PARTNAME, PARTNAMEU);\r\n&gt;     STATS_CHECK_PRIVILEGES(OWNER, TABNAMEU, DSC_KGLNTABL, FALSE, NULL);\r\n&gt; \r\n&gt;     IF (PARTNAMEU IS NOT NULL) THEN\r\n&gt;       \r\n&gt;       VALIDATE_PART(OWNER, TABNAMEU, PARTNAMEU, DSC_KGLTTABL, NULL);\r\n&gt; \r\n&gt;       \r\n&gt;       FOBJN := DBMS_STATS_INTERNAL.GET_OBJNUM(OWNER, TABNAMEU, PARTNAMEU, NULL,\r\n&gt;                                               'TABLE');\r\n&gt; \r\n&gt;       \r\n&gt;       IF (PARTTYPE = 5 ) THEN\r\n&gt;         SPNAME := PARTNAMEU;\r\n&gt;       ELSE\r\n&gt;         PNAME := PARTNAMEU;\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     GET_EVENT_LEVEL(DSC_SAMPLE_SEED_EVENT, SEED);\r\n&gt; \r\n&gt;     IF (DBMS_STATS_INTERNAL.GET_FXT_TYP(OWNER, TABNAME) = DSC_NON_FXT) THEN\r\n&gt;       NO_ITERATION := FALSE;\r\n&gt;     ELSE\r\n&gt;       NO_ITERATION := TRUE;\r\n&gt;     END IF;    \r\n&gt; \r\n&gt;     QUICK_ESTIMATE_ROWCNT(OWNER,\r\n&gt;                           TABNAMEU,\r\n&gt;                           PNAME,\r\n&gt;                           SPNAME,\r\n&gt;                           FOBJN,\r\n&gt;                           ROW_COUNT,\r\n&gt;                           SEED,\r\n&gt;                           NBLKS,\r\n&gt;                           DEGREE,\r\n&gt;                           NO_ITERATION);\r\n&gt;     RETURN ROW_COUNT;\r\n&gt;   END GET_ROW_COUNT_ESTIMATE;\r\n&gt; \r\n&gt; \r\n22219c22424\r\n&lt;         CLIST IN OUT NOCOPY CTAB,                     \r\n---\r\n&gt;         CLIST IN OUT NOCOPY CTAB,       \r\n22389c22594\r\n&lt;         CLIST IN OUT NOCOPY CTAB,              \r\n---\r\n&gt;         CLIST IN OUT NOCOPY CTAB,       \r\n23402a23608\r\n&gt;             \r\n23692a23899\r\n&gt;                                         \r\n24197,24199c24404,24406\r\n&lt;                   TRACE_INDEX('ndk of index ' || INDNAME || ' on ' || PART.PNAME\r\n&lt;                     || ' set to ' || CSTATS(1).DIST || ' (ndv of ' || COLUMN_NAME\r\n&lt;                     || ')');\r\n---\r\n&gt;                   TRACE_INDEX('ndk of index ' || INDNAME || ' on ' || \r\n&gt;                               PART.PNAME || ' set to ' || CSTATS(1).DIST ||\r\n&gt;                               ' (ndv of ' || COLUMN_NAME || ')');\r\n24201,24203c24408,24410\r\n&lt;                   TRACE_INDEX('ndk of index ' || INDNAME || ' on ' || SPART.SPNAME\r\n&lt;                     || ' set to ' || CSTATS(1).DIST || ' (ndv of ' || COLUMN_NAME\r\n&lt;                     || ')');\r\n---\r\n&gt;                   TRACE_INDEX('ndk of index ' || INDNAME || ' on ' || \r\n&gt;                               SPART.SPNAME || ' set to ' || CSTATS(1).DIST ||\r\n&gt;                               ' (ndv of ' || COLUMN_NAME || ')');\r\n24222c24429,24430\r\n&lt;       IF (COLLECT_NDK AND TSTATS_UPTODATE AND SAMPLE_PCT &lt; DSC_SAMPLE_MAXPCT AND\r\n---\r\n&gt;       IF (COLLECT_NDK AND TSTATS_UPTODATE AND \r\n&gt;           SAMPLE_PCT &lt; DSC_SAMPLE_MAXPCT AND\r\n25226c25434,25435\r\n&lt;             RESTORE_INDEX_STATS_AUX(DBMS_STATS_INTERNAL.DQ(LOPINFO(SOFAR).NAME2),\r\n---\r\n&gt;             RESTORE_INDEX_STATS_AUX(DBMS_STATS_INTERNAL.DQ(\r\n&gt;                                                          LOPINFO(SOFAR).NAME2),\r\n25355c25564,25565\r\n&lt;       DBMS_STATS_INTERNAL.GET_PREFS('ESTIMATE_PERCENT', PVALU, NULL, NULL, IDX.TOBJN);\r\n---\r\n&gt;       DBMS_STATS_INTERNAL.GET_PREFS('ESTIMATE_PERCENT', PVALU, NULL, NULL, \r\n&gt;                                     IDX.TOBJN);\r\n25360c25570,25571\r\n&lt;       DBMS_STATS_INTERNAL.GET_PREFS('GRANULARITY', LOC_GRANULARITY, NULL, NULL, IDX.TOBJN);\r\n---\r\n&gt;       DBMS_STATS_INTERNAL.GET_PREFS('GRANULARITY', LOC_GRANULARITY, NULL, \r\n&gt;                                     NULL, IDX.TOBJN);\r\n25364c25575,25576\r\n&lt;       DBMS_STATS_INTERNAL.GET_PREFS('GRANULARITY', LOC_GIDXGRAN, NULL, NULL, IDX.TOBJN);\r\n---\r\n&gt;       DBMS_STATS_INTERNAL.GET_PREFS('GRANULARITY', LOC_GIDXGRAN, NULL, NULL, \r\n&gt;                                     IDX.TOBJN);\r\n25556c25768,25769\r\n&lt;                       (BITAND(DBMS_SQLDIAG.GET_FIX_CONTROL(8917507), 2) = 2) AND\r\n---\r\n&gt;                       (BITAND(DBMS_SQLDIAG.GET_FIX_CONTROL(8917507), 2) = \r\n&gt;                        2) AND\r\n25581,25582c25794,25797\r\n&lt;           TRACE_INDEX('last: ' || TO_CHAR(SPART.LAST_ANALYZED, 'MM-DD-YYYY HH24:MI:SS') || \r\n&lt;                       ' start_time: ' || TO_CHAR(START_TIME, 'MM-DD-YYYY HH24:MI:SS'));\r\n---\r\n&gt;           TRACE_INDEX('last: ' || TO_CHAR(SPART.LAST_ANALYZED, \r\n&gt;                                           'MM-DD-YYYY HH24:MI:SS') || \r\n&gt;                       ' start_time: ' || TO_CHAR(START_TIME, \r\n&gt;                                                  'MM-DD-YYYY HH24:MI:SS'));\r\n26284c26499,26500\r\n&lt;         IF ((BITAND(CLIST(LOOPVAR).GATHER,DSC_CREC_MINMAX) = DSC_CREC_MINMAX) AND\r\n---\r\n&gt;         IF ((BITAND(CLIST(LOOPVAR).GATHER,DSC_CREC_MINMAX) = \r\n&gt;              DSC_CREC_MINMAX) AND\r\n26356c26572,26573\r\n&lt;         IF ((BITAND(CLIST(LOOPVAR).GATHER,DSC_CREC_MINMAX) = DSC_CREC_MINMAX) AND\r\n---\r\n&gt;         IF ((BITAND(CLIST(LOOPVAR).GATHER,DSC_CREC_MINMAX) = \r\n&gt;              DSC_CREC_MINMAX) AND\r\n27007c27224,27225\r\n&lt;         TRACE_SCALING('  Caught an unusable-index error.  giving up combo-ndv scaling');\r\n---\r\n&gt;         TRACE_SCALING(\r\n&gt;              '  Caught an unusable-index error.  giving up combo-ndv scaling');\r\n27095,27096c27313,27315\r\n&lt;         TRACE_HIST('Switching to frequency histogram, ssize = ' || SSIZE || ', popcnt = ' \r\n&lt;                   || POPCNT || ', ssizesq = ' || SSIZESQ || ', popcntsq = ' || POPCNTSQ);\r\n---\r\n&gt;         TRACE_HIST('Switching to frequency histogram, ssize = ' || SSIZE || \r\n&gt;                    ', popcnt = ' || POPCNT || ', ssizesq = ' || SSIZESQ || \r\n&gt;                    ', popcntsq = ' || POPCNTSQ);\r\n27332,27333c27551,27553\r\n&lt;     EVALUATE_HEIGHT_HIST(CSR, CHT, DONE_HIST, PCT, POPCNT, POPCNTSQ, SSIZE, SSIZESQ,\r\n&lt;                          MIN_SSIZE, APPR_NDV, TRUE, INCREMENTAL);   \r\n---\r\n&gt;     \r\n&gt;     EVALUATE_HEIGHT_HIST(CSR, CHT, DONE_HIST, PCT, POPCNT, POPCNTSQ, SSIZE, \r\n&gt;                          SSIZESQ, MIN_SSIZE, APPR_NDV, TRUE, INCREMENTAL);   \r\n27363c27583,27584\r\n&lt;                           POPCNT, POPCNTSQ, PCT, DONE_HIST, CSR.SLSV, APPR_NDV);\r\n---\r\n&gt;                                                 POPCNT, POPCNTSQ, PCT,\r\n&gt;                                                 DONE_HIST, CSR.SLSV, APPR_NDV);\r\n27613,27614c27834,27836\r\n&lt;             CONSTRUCT_SELECT_FREQUENCY(CLIST(LOOPVAR), LOC_HINTTXT, LOC_PPREDTXT,\r\n&lt;                                        PRETXT, POSTTXT, MATERIALIZE);\r\n---\r\n&gt;             CONSTRUCT_SELECT_FREQUENCY(CLIST(LOOPVAR), LOC_HINTTXT, \r\n&gt;                                        LOC_PPREDTXT, PRETXT, POSTTXT, \r\n&gt;                                        MATERIALIZE);\r\n27633,27634c27855,27857\r\n&lt;               CONSTRUCT_SELECT_HEIGHT(CLIST(LOOPVAR), MNB, LOC_HINTTXT, LOC_PPREDTXT,\r\n&lt;                                     PRETXT, POSTTXT, MATERIALIZE);\r\n---\r\n&gt;               CONSTRUCT_SELECT_HEIGHT(CLIST(LOOPVAR), MNB, LOC_HINTTXT, \r\n&gt;                                       LOC_PPREDTXT, PRETXT, POSTTXT, \r\n&gt;                                       MATERIALIZE);\r\n27651,27652c27874,27876\r\n&lt;               CONSTRUCT_SELECT_FREQUENCY(CLIST(LOOPVAR), LOC_HINTTXT, LOC_PPREDTXT,\r\n&lt;                                          PRETXT, POSTTXT, MATERIALIZE);\r\n---\r\n&gt;               CONSTRUCT_SELECT_FREQUENCY(CLIST(LOOPVAR), LOC_HINTTXT, \r\n&gt;                                          LOC_PPREDTXT, PRETXT, POSTTXT,\r\n&gt;                                          MATERIALIZE);\r\n27989c28213\r\n&lt;           IF (BITAND(CLIST(LOOPVAR).GATHER,DSC_CREC_AVG) = DSC_CREC_AVG) THEN            \r\n---\r\n&gt;           IF (BITAND(CLIST(LOOPVAR).GATHER,DSC_CREC_AVG) = DSC_CREC_AVG) THEN\r\n28103,28106c28327,28330\r\n&lt;               TRACE_SCALING(' Need larger sample: sndv = ' || CLIST(LOOPVAR).SNDV\r\n&lt;                             || ', snnvdv = ' || CLIST(LOOPVAR).SNNVDV\r\n&lt;                             || ', nnv = ' || NNV\r\n&lt;                             || ', ndv = ' || CLIST(LOOPVAR).NDV);\r\n---\r\n&gt;               TRACE_SCALING(' Need larger sample: sndv = ' || \r\n&gt;                             CLIST(LOOPVAR).SNDV || ', snnvdv = ' || \r\n&gt;                             CLIST(LOOPVAR).SNNVDV || ', nnv = ' || NNV || \r\n&gt;                             ', ndv = ' || CLIST(LOOPVAR).NDV);\r\n28271c28495,28496\r\n&lt;               IF DBMS_STATS_INTERNAL.COLHASHISTOGRAM(TOBJN, CLIST(LOOPVAR).ICOL) THEN\r\n---\r\n&gt;               IF DBMS_STATS_INTERNAL.COLHASHISTOGRAM(TOBJN, \r\n&gt;                                                      CLIST(LOOPVAR).ICOL) THEN\r\n28273c28498,28499\r\n&lt;                 CLIST(LOOPVAR).HGATH := BITOR(CLIST(LOOPVAR).HGATH, DSC_CREC_HIST);\r\n---\r\n&gt;                 CLIST(LOOPVAR).HGATH := BITOR(CLIST(LOOPVAR).HGATH, \r\n&gt;                                               DSC_CREC_HIST);\r\n28279c28505,28506\r\n&lt;                 CLIST(LOOPVAR).HGATH := BITOR(CLIST(LOOPVAR).HGATH, DSC_CREC_HIST);\r\n---\r\n&gt;                 CLIST(LOOPVAR).HGATH := BITOR(CLIST(LOOPVAR).HGATH, \r\n&gt;                                               DSC_CREC_HIST);\r\n29657c29884\r\n&lt;         IF (BITAND(SEL.GATHFLG, DSC_SELREC_RES) = DSC_SELREC_RES) THEN             \r\n---\r\n&gt;         IF (BITAND(SEL.GATHFLG, DSC_SELREC_RES) = DSC_SELREC_RES) THEN\r\n30603c30830\r\n&lt;                 'Unable to incrementally maintain, tablespace SYSAUX is offline');\r\n---\r\n&gt;              'Unable to incrementally maintain, tablespace SYSAUX is offline');\r\n30716a30944\r\n&gt;   \r\n31081c31309\r\n&lt;     NEW_HIST_PCT BOOLEAN := FALSE;   \r\n---\r\n&gt;     NEW_HIST_PCT BOOLEAN := FALSE;  \r\n31226,31231c31454,31461\r\n&lt;                  OWNER, TABNAME, PNAME, SPNAME,  PCT, CTX.CONC_CTX.BLOCK_SAMPLE, \r\n&lt;                  CTX.CONC_CTX.METHOD_OPT, DEGREE, LOC_GRANULARITY, CTX.CONC_CTX.GIDXGRAN, \r\n&lt;                  CTX.CONC_CTX.CASCADE, NULL, NULL, NULL, CTX.CONC_CTX.NO_INVALIDATE,\r\n&lt;                  CTX.CONC_CTX.FLUSH_COLU, FXT_TYP, CTX.CONC_CTX.STATTYPE, CTX.CONC_CTX.START_TIME, \r\n&lt;                  CTX.CONC_CTX.GATHERING_GROUP_STATS, CTX.CONC_CTX.CMS_ONLY, CTX.CONC_CTX.FORCE, \r\n&lt;                  DSC_EXECUTE, CTX.CONC_CTX.JOB_NAME_PREFIX, CTX.CONC_CTX.JOBSTAB,\r\n---\r\n&gt;                  OWNER, TABNAME, PNAME, SPNAME,  PCT, \r\n&gt;                  CTX.CONC_CTX.BLOCK_SAMPLE, CTX.CONC_CTX.METHOD_OPT, DEGREE, \r\n&gt;                  LOC_GRANULARITY, CTX.CONC_CTX.GIDXGRAN, CTX.CONC_CTX.CASCADE, \r\n&gt;                  NULL, NULL, NULL, CTX.CONC_CTX.NO_INVALIDATE, \r\n&gt;                  CTX.CONC_CTX.FLUSH_COLU, FXT_TYP, CTX.CONC_CTX.STATTYPE, \r\n&gt;                  CTX.CONC_CTX.START_TIME, CTX.CONC_CTX.GATHERING_GROUP_STATS, \r\n&gt;                  CTX.CONC_CTX.CMS_ONLY, CTX.CONC_CTX.FORCE, DSC_EXECUTE, \r\n&gt;                  CTX.CONC_CTX.JOB_NAME_PREFIX, CTX.CONC_CTX.JOBSTAB,\r\n31234,31237c31464,31468\r\n&lt;                  CTX.REPORTING_CTX.PRIORITY, CTX.REPORTING_CTX.FLAGS, TARGET_SIZE, \r\n&lt;                  BATCHING_COEFF, \r\n&lt;                  CTX.CONC_CTX.AGENT &lt;&gt; CTX.CONC_CTX.JOB_NAME_PREFIX, CTX.REPORTING_CTX.TARGET_TYPE,\r\n&lt;                  DSC_STOP_ON_FIRST, REPORTING_MODE);\r\n---\r\n&gt;                  CTX.REPORTING_CTX.PRIORITY, CTX.REPORTING_CTX.FLAGS, \r\n&gt;                  TARGET_SIZE, BATCHING_COEFF, \r\n&gt;                  CTX.CONC_CTX.AGENT &lt;&gt; CTX.CONC_CTX.JOB_NAME_PREFIX, \r\n&gt;                  CTX.REPORTING_CTX.TARGET_TYPE, DSC_STOP_ON_FIRST, \r\n&gt;                  REPORTING_MODE);\r\n31675c31906,31907\r\n&lt;             NEW_PCT := GET_NEW_PCT_FOR_APPR_NDV(CURR_PCT, CLIST, ISTART, ISTOP);\r\n---\r\n&gt;             NEW_PCT := GET_NEW_PCT_FOR_APPR_NDV(CURR_PCT, CLIST, ISTART, \r\n&gt;                                                 ISTOP);\r\n31908c32140,32141\r\n&lt;             SYS.DBMS_STATS_INTERNAL.GET_PARTN_LOCK_FLAG(FOBJN, DSC_KGLTTABP, NULL);\r\n---\r\n&gt;             SYS.DBMS_STATS_INTERNAL.GET_PARTN_LOCK_FLAG(FOBJN, DSC_KGLTTABP, \r\n&gt;                                                         NULL);\r\n31911c32144,32145\r\n&lt;             SYS.DBMS_STATS_INTERNAL.GET_PARTN_LOCK_FLAG(FOBJN, DSC_KGLTTASP, NULL);\r\n---\r\n&gt;             SYS.DBMS_STATS_INTERNAL.GET_PARTN_LOCK_FLAG(FOBJN, DSC_KGLTTASP, \r\n&gt;                                                         NULL);\r\n32116c32350,32351\r\n&lt;       FOR RECP IN SYS.DBMS_STATS_INTERNAL.TSPART_CUR_ORDERED(OWNER,TABNAME,PNAME) \r\n---\r\n&gt;       FOR RECP IN SYS.DBMS_STATS_INTERNAL.TSPART_CUR_ORDERED(OWNER,TABNAME,\r\n&gt;                                                              PNAME) \r\n32259c32494\r\n&lt;                                DSC_ACTION_GATHER, NULL, SCSFLAGS);                  \r\n---\r\n&gt;                                DSC_ACTION_GATHER, NULL, SCSFLAGS);\r\n32269c32504,32505\r\n&lt;            BITAND(CTX.CONC_CTX.EXECUTIONPHASE, DSC_PREPARE) = DSC_PREPARE)) THEN \r\n---\r\n&gt;            BITAND(CTX.CONC_CTX.EXECUTIONPHASE, DSC_PREPARE) = \r\n&gt;            DSC_PREPARE)) THEN \r\n32275c32511,32512\r\n&lt;       TRACE_ERROR('gather_subpart [executeStatJobs: '|| BOOL2STR(CTX.CONC_CTX.EXECUTESTATJOBS) || ']');      \r\n---\r\n&gt;       TRACE_ERROR('gather_subpart [executeStatJobs: '|| \r\n&gt;                   BOOL2STR(CTX.CONC_CTX.EXECUTESTATJOBS) || ']');      \r\n32651c32888\r\n&lt;           JOBPROGRESSMON(CTX.CONC_CTX.LAST_JOB_NAME) := LOPINFO(SOFAR);                   \r\n---\r\n&gt;           JOBPROGRESSMON(CTX.CONC_CTX.LAST_JOB_NAME) := LOPINFO(SOFAR);\r\n32835a33073\r\n&gt;                                     \r\n32858,32859c33096,33099\r\n&lt;     CTX.CONC_CTX.EXECUTESTATJOBS := BITAND(CTX.CONC_CTX.EXECUTIONPHASE, DSC_EXECUTE) = DSC_EXECUTE \r\n&lt;                               OR BITAND(CTX.CONC_CTX.EXECUTIONPHASE, DSC_SEQ) = DSC_SEQ;\r\n---\r\n&gt;     CTX.CONC_CTX.EXECUTESTATJOBS := BITAND(CTX.CONC_CTX.EXECUTIONPHASE, \r\n&gt;                                            DSC_EXECUTE) = DSC_EXECUTE OR\r\n&gt;                                     BITAND(CTX.CONC_CTX.EXECUTIONPHASE, \r\n&gt;                                            DSC_SEQ) = DSC_SEQ;\r\n32864c33104,33105\r\n&lt;                           || ' global_requested: ' || BOOL2STR(CTX.CONC_CTX.GLOBAL_REQUESTED)\r\n---\r\n&gt;                           || ' global_requested: ' \r\n&gt;                           || BOOL2STR(CTX.CONC_CTX.GLOBAL_REQUESTED)\r\n33044,33045c33285,33288\r\n&lt;            BITAND(CTX.CONC_CTX.EXECUTIONPHASE, DSC_PREPARE) =  DSC_PREPARE AND  \r\n&lt;            DBMS_STATS_INTERNAL.IS_PARTITIONED_TAB(OWNER, TABNAME) = TRUE AND \r\n---\r\n&gt;            BITAND(CTX.CONC_CTX.EXECUTIONPHASE, DSC_PREPARE) =  \r\n&gt;            DSC_PREPARE AND  \r\n&gt;            DBMS_STATS_INTERNAL.IS_PARTITIONED_TAB(OWNER, TABNAME) = TRUE AND\r\n&gt;              \r\n33048,33049c33291,33293\r\n&lt;           TRACE_TABLE('IM or approx global case: submitting the current batch content: ' ||\r\n&lt;                        CTX.CONC_CTX.JOBSTAB.COUNT);\r\n---\r\n&gt;           TRACE_TABLE(\r\n&gt;              'IM or approx global case: submitting the current batch content: '\r\n&gt;                       || CTX.CONC_CTX.JOBSTAB.COUNT);\r\n33053,33057c33297,33304\r\n&lt;             JOB_MAN_SUBMIT_JOB_BATCH(CTX.BATCHING_CTX, CTX.CONC_CTX.JOBSTAB, CTX.CONC_CTX.AGENT, \r\n&lt;                                  CTX.REPORTING_CTX.OP_ID, CTX.REPORTING_CTX.JOB_NAME,\r\n&lt;                                  DSC_STOP_ON_FIRST,\r\n&lt;                                  CTX.CONC_CTX.AGENT &lt;&gt; CTX.CONC_CTX.JOB_NAME_PREFIX,\r\n&lt;                                  FALSE, TRUE, REPORTING_MODE);\r\n---\r\n&gt;             JOB_MAN_SUBMIT_JOB_BATCH(CTX.BATCHING_CTX, CTX.CONC_CTX.JOBSTAB, \r\n&gt;                                      CTX.CONC_CTX.AGENT, \r\n&gt;                                      CTX.REPORTING_CTX.OP_ID, \r\n&gt;                                      CTX.REPORTING_CTX.JOB_NAME, \r\n&gt;                                      DSC_STOP_ON_FIRST,\r\n&gt;                                      CTX.CONC_CTX.AGENT &lt;&gt; \r\n&gt;                                        CTX.CONC_CTX.JOB_NAME_PREFIX,\r\n&gt;                                      FALSE, TRUE, REPORTING_MODE);\r\n33060,33069c33307,33322\r\n&lt;             JOB_MAN_SUBMIT_JOB_BATCH(CTX.BATCHING_CTX, CTX.CONC_CTX.JOBSTAB, CTX.CONC_CTX.AGENT, \r\n&lt;                                  CTX.REPORTING_CTX.OP_ID, CTX.REPORTING_CTX.JOB_NAME,\r\n&lt;                                  DSC_STOP_ON_FIRST,\r\n&lt;                                  CTX.CONC_CTX.AGENT &lt;&gt; CTX.CONC_CTX.JOB_NAME_PREFIX,\r\n&lt;                                  FALSE, FALSE, REPORTING_MODE);\r\n&lt;           END IF;\r\n&lt;           TRACE_TABLE('waiting for jobs in construct analyze sql (IM or approx global): ' || \r\n&lt;                        CTX.CONC_CTX.JOBSTAB.COUNT);\r\n&lt;           MONITORING_MAN_WAIT_FOR_JOBS(CTX.CONC_CTX.JOB_NAME_PREFIX, CTX.CONC_CTX.JSTATS, \r\n&lt;                                        CTX.CONC_CTX.JOBSTAB, CTX.CONC_CTX.AGENT, NULL,\r\n---\r\n&gt;             JOB_MAN_SUBMIT_JOB_BATCH(CTX.BATCHING_CTX, CTX.CONC_CTX.JOBSTAB, \r\n&gt;                                      CTX.CONC_CTX.AGENT, \r\n&gt;                                      CTX.REPORTING_CTX.OP_ID, \r\n&gt;                                      CTX.REPORTING_CTX.JOB_NAME,\r\n&gt;                                      DSC_STOP_ON_FIRST,\r\n&gt;                                      CTX.CONC_CTX.AGENT &lt;&gt; \r\n&gt;                                        CTX.CONC_CTX.JOB_NAME_PREFIX,\r\n&gt;                                      FALSE, FALSE, REPORTING_MODE);\r\n&gt;           END IF;\r\n&gt;           TRACE_TABLE(\r\n&gt;             'waiting for jobs in construct analyze sql (IM or approx global): '\r\n&gt;                       || CTX.CONC_CTX.JOBSTAB.COUNT);\r\n&gt;           MONITORING_MAN_WAIT_FOR_JOBS(CTX.CONC_CTX.JOB_NAME_PREFIX, \r\n&gt;                                        CTX.CONC_CTX.JSTATS, \r\n&gt;                                        CTX.CONC_CTX.JOBSTAB, \r\n&gt;                                        CTX.CONC_CTX.AGENT, NULL,\r\n33071,33073c33324,33329\r\n&lt;           IF(CTX.CONC_CTX.JSTATS.FAILED &gt; 0 OR CTX.CONC_CTX.JSTATS.STOPPED &gt; 0) THEN\r\n&lt;             IF CTX.CONC_CTX.JSTATS.LASTEVENT.ERROR_CODE IN (-1403, -942, -1031) THEN\r\n&lt;               RAISE_APPLICATION_ERROR(-20009, CTX.CONC_CTX.JSTATS.LASTEVENT.ERROR_MSG);        \r\n---\r\n&gt;           IF(CTX.CONC_CTX.JSTATS.FAILED &gt; 0 OR \r\n&gt;              CTX.CONC_CTX.JSTATS.STOPPED &gt; 0) THEN\r\n&gt;             IF CTX.CONC_CTX.JSTATS.LASTEVENT.ERROR_CODE IN (-1403, -942, -1031)\r\n&gt;               THEN\r\n&gt;               RAISE_APPLICATION_ERROR(-20009, \r\n&gt;                                       CTX.CONC_CTX.JSTATS.LASTEVENT.ERROR_MSG);\r\n33075c33331,33332\r\n&lt;               RAISE_APPLICATION_ERROR(-20001, CTX.CONC_CTX.JSTATS.LASTEVENT.ERROR_MSG);\r\n---\r\n&gt;               RAISE_APPLICATION_ERROR(-20001, \r\n&gt;                                       CTX.CONC_CTX.JSTATS.LASTEVENT.ERROR_MSG);\r\n33117,33121c33374,33383\r\n&lt;                          CLIST, ISTART, ISTOP, CSTATS, TSTATS,\r\n&lt;                          SAMPLE = AUTO_SAMPLE_SIZE, INCREMENTAL_PARTLVL) = FALSE)) THEN\r\n&lt;           \r\n&lt;           IF((CTX.CONC_CTX.JOBSTAB.COUNT &gt; 0 OR CTX.BATCHING_CTX.CURRENTBATCHSIZE &gt; 0) \r\n&lt;              AND (REP_TARGET_TYPE = DSC_TABLE OR REP_TARGET_TYPE = DSC_TABLE_COORD)) THEN\r\n---\r\n&gt;                                               CLIST, ISTART, ISTOP, CSTATS, \r\n&gt;                                               TSTATS, \r\n&gt;                                               SAMPLE = AUTO_SAMPLE_SIZE,\r\n&gt;                                               INCREMENTAL_PARTLVL) = \r\n&gt;                    FALSE)) THEN\r\n&gt;           \r\n&gt;           IF((CTX.CONC_CTX.JOBSTAB.COUNT &gt; 0 OR \r\n&gt;               CTX.BATCHING_CTX.CURRENTBATCHSIZE &gt; 0) \r\n&gt;              AND (REP_TARGET_TYPE = DSC_TABLE OR \r\n&gt;                   REP_TARGET_TYPE = DSC_TABLE_COORD)) THEN\r\n33186c33448,33449\r\n&lt;       IF ((CTX.CONC_CTX.GLOBAL_REQUESTED AND BITAND(CTX.CONC_CTX.EXECUTIONPHASE, DSC_EXECUTE) = DSC_EXECUTE) \r\n---\r\n&gt;       IF ((CTX.CONC_CTX.GLOBAL_REQUESTED AND \r\n&gt;            BITAND(CTX.CONC_CTX.EXECUTIONPHASE, DSC_EXECUTE) = DSC_EXECUTE) \r\n33538c33801,33802\r\n&lt;     EXECUTIONPHASE BINARY_INTEGER := CTX.CONC_CTX.EXECUTIONPHASE; \r\n---\r\n&gt;     EXECUTIONPHASE BINARY_INTEGER := \r\n&gt;                         CTX.CONC_CTX.EXECUTIONPHASE; \r\n33582,33584c33846,33849\r\n&lt;     TRACE_TABLE('Started table ' || OWNER || '.' || TABNAMEU || '.' || PARTNAMEU || ' at ' \r\n&lt;                 || SYSTIMESTAMP ||'. Execution phase: ' || EXEC_PHASE_TO_STR(EXECUTIONPHASE) || \r\n&lt;                    ' stattype: ' || STATTYPE || ' Reporting Mode: ' || BOOL2STR(REPORTING_MODE));  \r\n---\r\n&gt;     TRACE_TABLE('Started table ' || OWNER || '.' || TABNAMEU || '.' || \r\n&gt;                 PARTNAMEU || ' at ' || SYSTIMESTAMP ||'. Execution phase: ' || \r\n&gt;                 EXEC_PHASE_TO_STR(EXECUTIONPHASE) || ' stattype: ' || \r\n&gt;                 STATTYPE || ' Reporting Mode: ' || BOOL2STR(REPORTING_MODE));  \r\n33607c33872,33873\r\n&lt;       DBMS_STATS_INTERNAL.GET_PREFS('GRANULARITY', LOC_GRANULARITY, OWNER, TABNAMEU);\r\n---\r\n&gt;       DBMS_STATS_INTERNAL.GET_PREFS('GRANULARITY', LOC_GRANULARITY, OWNER, \r\n&gt;                                     TABNAMEU);\r\n33611c33877,33878\r\n&lt;       DBMS_STATS_INTERNAL.GET_PREFS('ESTIMATE_PERCENT', PVALU, OWNER, TABNAMEU);\r\n---\r\n&gt;       DBMS_STATS_INTERNAL.GET_PREFS('ESTIMATE_PERCENT', PVALU, OWNER, \r\n&gt;                                     TABNAMEU);\r\n33616c33883,33884\r\n&lt;       DBMS_STATS_INTERNAL.GET_PREFS('METHOD_OPT', LOC_METHOD_OPT, OWNER, TABNAMEU);\r\n---\r\n&gt;       DBMS_STATS_INTERNAL.GET_PREFS('METHOD_OPT', LOC_METHOD_OPT, OWNER, \r\n&gt;                                     TABNAMEU);\r\n33762a34031\r\n&gt;       \r\n33857c34126\r\n&lt;     EXECUTESTATJOBS := BITAND(EXECUTIONPHASE, DSC_EXECUTE) = DSC_EXECUTE;                         \r\n---\r\n&gt;     EXECUTESTATJOBS := BITAND(EXECUTIONPHASE, DSC_EXECUTE) = DSC_EXECUTE;\r\n33936,33938c34205,34208\r\n&lt;             NULL, NULL, STATTAB, STATID, TRANSFER_PART_STATS, TRUE, LOC_CASCADE, FALSE,\r\n&lt;             STATOWN, IOT_TOP_NAME, FALSE, NO_INVALIDATE, FXT_TYP, 'ALL', FALSE,\r\n&lt;             FALSE, OBJ_TRANSFERRED, DEFAULT_STAT_CATEGORY);\r\n---\r\n&gt;                              NULL, NULL, STATTAB, STATID, TRANSFER_PART_STATS, \r\n&gt;                              TRUE, LOC_CASCADE, FALSE, STATOWN, IOT_TOP_NAME,\r\n&gt;                              FALSE, NO_INVALIDATE, FXT_TYP, 'ALL', FALSE, \r\n&gt;                              FALSE, OBJ_TRANSFERRED, DEFAULT_STAT_CATEGORY);\r\n33989c34259,34260\r\n&lt;         IF(CTX.CONC_CTX.GLOBAL_REQUESTED IS NULL AND GATHERING_GROUP_STATS) THEN\r\n---\r\n&gt;         IF (CTX.CONC_CTX.GLOBAL_REQUESTED IS NULL AND \r\n&gt;             GATHERING_GROUP_STATS) THEN\r\n33991c34262,34263\r\n&lt;             DBMS_STATS_INTERNAL.GET_PREFS('GRANULARITY', LOC_GIDX_GRANULARITY, OWNER, TABNAMEU);\r\n---\r\n&gt;             DBMS_STATS_INTERNAL.GET_PREFS('GRANULARITY', LOC_GIDX_GRANULARITY, \r\n&gt;                                           OWNER, TABNAMEU);\r\n33995c34267,34268\r\n&lt;           CTX.CONC_CTX.GLOBAL_REQUESTED := CHECK_GRANULARITY(INDEXGRAN, 'GLOBAL');         \r\n---\r\n&gt;           CTX.CONC_CTX.GLOBAL_REQUESTED := CHECK_GRANULARITY(INDEXGRAN,\r\n&gt;                                                              'GLOBAL');\r\n34079c34352\r\n&lt;             IF ((LOC_CASCADE = TRUE) OR (IOT_TOP_NAME = LOC_IND_NAME)) THEN           \r\n---\r\n&gt;             IF ((LOC_CASCADE = TRUE) OR (IOT_TOP_NAME = LOC_IND_NAME)) THEN\r\n34106c34379\r\n&lt;             IF ((LOC_CASCADE = TRUE) OR (IOT_TOP_NAME = RECI.IND_NAME)) THEN            \r\n---\r\n&gt;             IF ((LOC_CASCADE = TRUE) OR (IOT_TOP_NAME = RECI.IND_NAME)) THEN\r\n34168c34441,34442\r\n&lt;       TRACE_TABLE('waiting for all jobs to finish in gather_table_stats_aux: ' || CTX.CONC_CTX.JOBSTAB.COUNT);\r\n---\r\n&gt;       TRACE_TABLE('waiting for all jobs to finish in gather_table_stats_aux: ' \r\n&gt;                   || CTX.CONC_CTX.JOBSTAB.COUNT);\r\n34173c34447,34448\r\n&lt;       IF(CTX.CONC_CTX.JSTATS.FAILED &gt; 0 OR CTX.CONC_CTX.JSTATS.STOPPED &gt; 0) THEN\r\n---\r\n&gt;       IF (CTX.CONC_CTX.JSTATS.FAILED &gt; 0 OR \r\n&gt;           CTX.CONC_CTX.JSTATS.STOPPED &gt; 0) THEN\r\n34181c34456,34459\r\n&lt;         JOB_MAN_PERFORM_CLEANUPS(FORCE_DROP, FORCE_DROP, LOC_JOB_NAME_PREFIX, CTX.CONC_CTX.JOBSTAB, TRUE, TRUE);\r\n---\r\n&gt;                                                         \r\n&gt;                                                         \r\n&gt;         JOB_MAN_PERFORM_CLEANUPS(FORCE_DROP, FORCE_DROP, LOC_JOB_NAME_PREFIX, \r\n&gt;                                  CTX.CONC_CTX.JOBSTAB, TRUE, TRUE);\r\n34205c34483,34484\r\n&lt;                 OWNER || '.' || TABNAMEU || '.' || PARTNAMEU || ' at ' || SYSTIMESTAMP);     \r\n---\r\n&gt;                 OWNER || '.' || TABNAMEU || '.' || PARTNAMEU || ' at ' || \r\n&gt;                 SYSTIMESTAMP);     \r\n34214c34493\r\n&lt;                               DSC_AUTO_STATS_COMPLETED,                          \r\n---\r\n&gt;                               DSC_AUTO_STATS_COMPLETED,\r\n34233a34513\r\n&gt;                                \r\n34238,34239c34518,34520\r\n&lt;       TRACE_ERROR('Exception in gather table stats aux... cleaned: ' || BOOL2STR(CLEANED)\r\n&lt;                    || ' isTopLevel: ' || BOOL2STR(ISTOPLEVEL));           \r\n---\r\n&gt;       TRACE_ERROR('Exception in gather table stats aux... cleaned: ' || \r\n&gt;                   BOOL2STR(CLEANED) || ' isTopLevel: ' || \r\n&gt;                   BOOL2STR(ISTOPLEVEL));\r\n34245c34526\r\n&lt;                       CTX.CONC_CTX.JSTATS.STOPPED || ' jobs were stopped.');         \r\n---\r\n&gt;                       CTX.CONC_CTX.JSTATS.STOPPED || ' jobs were stopped.');\r\n34248c34529,34531\r\n&lt;           JOB_MAN_PERFORM_CLEANUPS(TRUE, TRUE, LOC_JOB_NAME_PREFIX, CTX.CONC_CTX.JOBSTAB, TRUE, TRUE);\r\n---\r\n&gt;                                \r\n&gt;           JOB_MAN_PERFORM_CLEANUPS(TRUE, TRUE, LOC_JOB_NAME_PREFIX, \r\n&gt;                                    CTX.CONC_CTX.JOBSTAB, TRUE, TRUE);\r\n34250c34533,34534\r\n&lt;           JOB_MAN_PERFORM_CLEANUPS(TRUE, TRUE, LOC_JOB_NAME_PREFIX, CTX.CONC_CTX.JOBSTAB, FALSE, FALSE);\r\n---\r\n&gt;           JOB_MAN_PERFORM_CLEANUPS(TRUE, TRUE, LOC_JOB_NAME_PREFIX, \r\n&gt;                                    CTX.CONC_CTX.JOBSTAB, FALSE, FALSE);\r\n34273,34274c34557,34559\r\n&lt;           ' VIEW \"' || OWNER || '\".\"' || USERSPECDTABNAME || '\"' || PARTNAMEU ||\r\n&lt;           ', insufficient privileges or invalid');\r\n---\r\n&gt;                                   ' VIEW \"' || OWNER || '\".\"' || \r\n&gt;                                   USERSPECDTABNAME || '\"' || PARTNAMEU ||\r\n&gt;                                   ', insufficient privileges or invalid');\r\n34395a34681,34693\r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n34537c34835,34836\r\n&lt;         TRACE_TABLE('Starting a batch of ' || TASK_COUNT || ' tasks... op id: ' || CTX.REPORTING_CTX.OP_ID);\r\n---\r\n&gt;         TRACE_TABLE('Starting a batch of ' || TASK_COUNT || \r\n&gt;                     ' tasks... op id: ' || CTX.REPORTING_CTX.OP_ID);\r\n34539c34838,34839\r\n&lt;         TRACE_TABLE('Starting a single task batch... op id: ' || CTX.REPORTING_CTX.OP_ID);\r\n---\r\n&gt;         TRACE_TABLE('Starting a single task batch... op id: ' || \r\n&gt;                     CTX.REPORTING_CTX.OP_ID);\r\n34569c34869,34870\r\n&lt;         TRACE_TABLE('Processing task ' || ITER || ' of ' || TASK_COUNT || '...');\r\n---\r\n&gt;         TRACE_TABLE('Processing task ' || ITER || ' of ' || TASK_COUNT || \r\n&gt;                     '...');\r\n34575c34876\r\n&lt;           LOC_START_TIME := TO_DATE(PARAMS(20), 'MM-DD-YYYY HH24:MI:SS');        \r\n---\r\n&gt;           LOC_START_TIME := TO_DATE(PARAMS(20), 'MM-DD-YYYY HH24:MI:SS');\r\n34586,34588c34887,34890\r\n&lt;         TRACE_TABLE(' |--&gt;  ' || PARAMS(2) || '.' || PARAMS(3) || '.' || PARAMS(4) || \r\n&lt;                     ' &gt; Estimated Cost: ' || CTX.REPORTING_CTX.EST_COST ||\r\n&lt;                     ' Batching Coefficient: ' || CTX.REPORTING_CTX.BATCHING_COEFF);       \r\n---\r\n&gt;         TRACE_TABLE(' |--&gt;  ' || PARAMS(2) || '.' || PARAMS(3) || '.' || \r\n&gt;                     PARAMS(4) || ' &gt; Estimated Cost: ' || \r\n&gt;                     CTX.REPORTING_CTX.EST_COST || ' Batching Coefficient: ' || \r\n&gt;                     CTX.REPORTING_CTX.BATCHING_COEFF);       \r\n34601c34903,34904\r\n&lt;          TRACE_ERROR('Exception while processing task ' || ITER || ': ' || SQLERRM);\r\n---\r\n&gt;          TRACE_ERROR('Exception while processing task ' || ITER || ': ' || \r\n&gt;                      SQLERRM);\r\n34603c34906,34907\r\n&lt;              (SQLCODE = -20000 AND SQLERRM LIKE '%insufficient privileges%')) THEN\r\n---\r\n&gt;              (SQLCODE = -20000 AND \r\n&gt;               SQLERRM LIKE '%insufficient privileges%')) THEN\r\n34798c35102,35103\r\n&lt;     TRACE_TABLE('Start gather group stats...*' || OBJLIST.COUNT || ' stattab: ' || STATTAB);  \r\n---\r\n&gt;     TRACE_TABLE('Start gather group stats...*' || OBJLIST.COUNT || \r\n&gt;                 ' stattab: ' || STATTAB);  \r\n34938,34939c35243,35246\r\n&lt;               TRACE_TABLE('Submit table job: objnameQ: '|| OBJNAMEQ || ' subname: ' || SUB_NAME || \r\n&lt;                            ' multi-job table: ' || BOOL2STR(BITAND(EXECUTIONPHASE, DSC_PREPARE) = DSC_PREPARE));\r\n---\r\n&gt;               TRACE_TABLE('Submit table job: objnameQ: '|| OBJNAMEQ || \r\n&gt;                           ' subname: ' || SUB_NAME || ' multi-job table: ' || \r\n&gt;                           BOOL2STR(BITAND(EXECUTIONPHASE, DSC_PREPARE) = \r\n&gt;                                    DSC_PREPARE));\r\n34948,34953c35255,35260\r\n&lt;                             FALSE,FXT_TYP, STATTYPE, START_TIME, TRUE, CMS_ONLY,\r\n&lt;                             FORCE, EXECUTIONPHASE, JOB_NAME_PREFIX, JOBSTAB, NULL, FALSE,\r\n&lt;                             JOB_NAME_PREFIX, STAT_CTX.REPORTING_CTX.OP_ID, \r\n&lt;                             CURRELEM.PRIORITY, CURRELEM.FLAGS, TARGET_SIZE, \r\n&lt;                             BATCHING_COEFF, FALSE, DSC_TABLE, DSC_ABSORB,\r\n&lt;                             REPORTING_MODE);\r\n---\r\n&gt;                             FALSE,FXT_TYP, STATTYPE, START_TIME, TRUE, \r\n&gt;                             CMS_ONLY, FORCE, EXECUTIONPHASE, JOB_NAME_PREFIX, \r\n&gt;                             JOBSTAB, NULL, FALSE, JOB_NAME_PREFIX, \r\n&gt;                             STAT_CTX.REPORTING_CTX.OP_ID, CURRELEM.PRIORITY, \r\n&gt;                             CURRELEM.FLAGS, TARGET_SIZE, BATCHING_COEFF, FALSE,\r\n&gt;                             DSC_TABLE, DSC_ABSORB, REPORTING_MODE);\r\n34955c35262,35263\r\n&lt;               JOBPROGRESSMON(STAT_CTX.BATCHING_CTX.BATCHJOBNAME) := PROGRESSREC;\r\n---\r\n&gt;               JOBPROGRESSMON(STAT_CTX.BATCHING_CTX.BATCHJOBNAME) := \r\n&gt;                                                                    PROGRESSREC;\r\n34959a35268\r\n&gt;                   \r\n35168c35477\r\n&lt;  \r\n---\r\n&gt;   \r\n35364c35673,35674\r\n&lt;       DBMS_STATS_INTERNAL.OPEN_ALL_STALE_OBJS_CUR(OWNNAME,GSYS,GFXT,IGNORE_FLAGS, \r\n---\r\n&gt;       DBMS_STATS_INTERNAL.OPEN_ALL_STALE_OBJS_CUR(OWNNAME, GSYS, GFXT,\r\n&gt;                                                   IGNORE_FLAGS, \r\n35374c35684,35685\r\n&lt;         IF (AUTO AND GATHER_FIXED AND IS_CURSOR_FXT(RECT.OWNNAME, RECT.OBJNAME)) THEN\r\n---\r\n&gt;         IF (AUTO AND GATHER_FIXED AND \r\n&gt;             IS_CURSOR_FXT(RECT.OWNNAME, RECT.OBJNAME)) THEN\r\n35376,35382c35687,35697\r\n&lt;            'TABLE', RECT.OBJNAME, RECT.PARTNAME, RECT.SUBPARTNAME, DSC_AUTO_FLAGS_STALE_STATS);\r\n&lt;         ELSIF (AUTO AND IS_DICOBJ_FOR_STATS(RECT.OWNNAME, RECT.OBJNAME, 'TABLE')) THEN\r\n&lt;           ADD_OBJECT_ELEM(OBJLIST_END, RECT.OWNNAME,\r\n&lt;            'TABLE', RECT.OBJNAME, RECT.PARTNAME, RECT.SUBPARTNAME, DSC_AUTO_FLAGS_STALE_STATS);\r\n&lt;         ELSE\r\n&lt;           ADD_OBJECT_ELEM(OBJLIST, RECT.OWNNAME,\r\n&lt;            'TABLE', RECT.OBJNAME, RECT.PARTNAME, RECT.SUBPARTNAME, DSC_AUTO_FLAGS_STALE_STATS);\r\n---\r\n&gt;                           'TABLE', RECT.OBJNAME, RECT.PARTNAME, \r\n&gt;                           RECT.SUBPARTNAME, DSC_AUTO_FLAGS_STALE_STATS);\r\n&gt;         ELSIF (AUTO AND IS_DICOBJ_FOR_STATS(RECT.OWNNAME, RECT.OBJNAME, \r\n&gt;                                             'TABLE')) THEN\r\n&gt;           ADD_OBJECT_ELEM(OBJLIST_END, RECT.OWNNAME, 'TABLE', RECT.OBJNAME, \r\n&gt;                           RECT.PARTNAME, RECT.SUBPARTNAME, \r\n&gt;                           DSC_AUTO_FLAGS_STALE_STATS);\r\n&gt;         ELSE\r\n&gt;           ADD_OBJECT_ELEM(OBJLIST, RECT.OWNNAME, 'TABLE', RECT.OBJNAME, \r\n&gt;                           RECT.PARTNAME, RECT.SUBPARTNAME, \r\n&gt;                           DSC_AUTO_FLAGS_STALE_STATS);\r\n35400,35401c35715,35717\r\n&lt;       DBMS_STATS_INTERNAL.OPEN_ALL_EMPTY_OBJS_CUR(OWNNAME,GSYS,GTEMP,GFXT,\r\n&lt;                                                   IGNORE_FLAGS,LOC_GRANULARITY,GIND,CUR);\r\n---\r\n&gt;       DBMS_STATS_INTERNAL.OPEN_ALL_EMPTY_OBJS_CUR(OWNNAME, GSYS, GTEMP, GFXT,\r\n&gt;                                                   IGNORE_FLAGS, \r\n&gt;                                                   LOC_GRANULARITY, GIND, CUR);\r\n35410,35412c35726,35730\r\n&lt;         IF (AUTO AND GATHER_FIXED AND IS_CURSOR_FXT(RECT.OWNNAME, RECT.OBJNAME)) THEN\r\n&lt;           ADD_OBJECT_ELEM(OBJLIST_START, RECT.OWNNAME,\r\n&lt;             RECT.OBJTYPE, RECT.OBJNAME, RECT.PARTNAME, RECT.SUBPARTNAME, DSC_AUTO_FLAGS_NO_STATS);\r\n---\r\n&gt;         IF (AUTO AND GATHER_FIXED AND \r\n&gt;             IS_CURSOR_FXT(RECT.OWNNAME, RECT.OBJNAME)) THEN\r\n&gt;           ADD_OBJECT_ELEM(OBJLIST_START, RECT.OWNNAME, RECT.OBJTYPE, \r\n&gt;                           RECT.OBJNAME, RECT.PARTNAME, RECT.SUBPARTNAME, \r\n&gt;                           DSC_AUTO_FLAGS_NO_STATS);\r\n35414,35416c35732,35736\r\n&lt;                IS_DICOBJ_FOR_STATS(RECT.OWNNAME, RECT.OBJNAME, RECT.OBJTYPE)) THEN\r\n&lt;           ADD_OBJECT_ELEM(OBJLIST_END, RECT.OWNNAME,\r\n&lt;             RECT.OBJTYPE, RECT.OBJNAME, RECT.PARTNAME, RECT.SUBPARTNAME, DSC_AUTO_FLAGS_NO_STATS);\r\n---\r\n&gt;                IS_DICOBJ_FOR_STATS(RECT.OWNNAME, RECT.OBJNAME, \r\n&gt;                                    RECT.OBJTYPE)) THEN\r\n&gt;           ADD_OBJECT_ELEM(OBJLIST_END, RECT.OWNNAME, RECT.OBJTYPE, \r\n&gt;                           RECT.OBJNAME, RECT.PARTNAME, RECT.SUBPARTNAME, \r\n&gt;                           DSC_AUTO_FLAGS_NO_STATS);\r\n35418,35422c35738,35744\r\n&lt;           ADD_OBJECT_ELEM(OBJLIST2, RECT.OWNNAME,\r\n&lt;             RECT.OBJTYPE, RECT.OBJNAME, RECT.PARTNAME, RECT.SUBPARTNAME, DSC_AUTO_FLAGS_NO_STATS);\r\n&lt;         ELSE\r\n&lt;           ADD_OBJECT_ELEM(OBJLIST, RECT.OWNNAME,\r\n&lt;             RECT.OBJTYPE, RECT.OBJNAME, RECT.PARTNAME, RECT.SUBPARTNAME, DSC_AUTO_FLAGS_NO_STATS);\r\n---\r\n&gt;           ADD_OBJECT_ELEM(OBJLIST2, RECT.OWNNAME, RECT.OBJTYPE, RECT.OBJNAME, \r\n&gt;                           RECT.PARTNAME, RECT.SUBPARTNAME, \r\n&gt;                           DSC_AUTO_FLAGS_NO_STATS);\r\n&gt;         ELSE\r\n&gt;           ADD_OBJECT_ELEM(OBJLIST, RECT.OWNNAME, RECT.OBJTYPE, RECT.OBJNAME, \r\n&gt;                           RECT.PARTNAME, RECT.SUBPARTNAME, \r\n&gt;                           DSC_AUTO_FLAGS_NO_STATS);\r\n35490c35812,35813\r\n&lt;     TRACE_TABLE('Start gather schema\/db stats... owner: ' || OWNER || ' stattab: ' || STATTAB);       \r\n---\r\n&gt;     TRACE_TABLE('Start gather schema\/db stats... owner: ' || OWNER || \r\n&gt;                 ' stattab: ' || STATTAB);\r\n35502c35825,35826\r\n&lt;       JOB_QUEUE_PROCESSES := TO_NUMBER(DBMS_STATS_INTERNAL.GET_PARAMETER_VAL('job_queue_processes')); \r\n---\r\n&gt;       JOB_QUEUE_PROCESSES := \r\n&gt;        TO_NUMBER(DBMS_STATS_INTERNAL.GET_PARAMETER_VAL('job_queue_processes'));\r\n35507c35831,35832\r\n&lt;           JOB_NAME_PREFIX := DBMS_SCHEDULER.GENERATE_JOB_NAME(DSC_JOB_PREF || 'SD');          \r\n---\r\n&gt;           JOB_NAME_PREFIX := DBMS_SCHEDULER.GENERATE_JOB_NAME(DSC_JOB_PREF || \r\n&gt;                                                               'SD');          \r\n35709c36034,36035\r\n&lt;                           GRANULARITY, CASCADE, FORCE, 'DATA', LOC_OBJ_FILTER_LIST);      \r\n---\r\n&gt;                           GRANULARITY, CASCADE, FORCE, 'DATA', \r\n&gt;                           LOC_OBJ_FILTER_LIST);      \r\n35735c36061,36062\r\n&lt;       TRACE_TABLE('waiting for jobs in gather_schema_or_db_stats_aux: ' || JOBSTAB.COUNT);\r\n---\r\n&gt;       TRACE_TABLE('waiting for jobs in gather_schema_or_db_stats_aux: ' || \r\n&gt;                   JOBSTAB.COUNT);\r\n35742c36069,36070\r\n&lt;         TRACE_TABLE(JSTATS.FAILED || ' jobs failed and ' || JSTATS.STOPPED || ' jobs were stopped.');\r\n---\r\n&gt;         TRACE_TABLE(JSTATS.FAILED || ' jobs failed and ' || JSTATS.STOPPED || \r\n&gt;                     ' jobs were stopped.');\r\n35747c36075,36076\r\n&lt;         JOB_MAN_PERFORM_CLEANUPS(FORCE_DROP, FORCE_DROP, JOB_NAME_PREFIX, JOBSTAB, TRUE, TRUE);\r\n---\r\n&gt;         JOB_MAN_PERFORM_CLEANUPS(FORCE_DROP, FORCE_DROP, JOB_NAME_PREFIX, \r\n&gt;                                  JOBSTAB, TRUE, TRUE);\r\n35792a36122\r\n&gt;    \r\n36145a36476\r\n&gt;                                  \r\n36230,36237c36561,36567\r\n&lt;     GATHER_SCHEMA_OR_DB_STATS(\r\n&lt;       'Database',\r\n&lt;       NULL,ESTIMATE_PERCENT,BLOCK_SAMPLE,METHOD_OPT,\r\n&lt;       DEGREE,GRANULARITY,CASCADE,STATTAB,STATID,\r\n&lt;       OPTIONSU,TLIST,STATOWN,\r\n&lt;       GATHER_SYS,NO_INVALIDATE,GATHER_TEMP,GATHER_FIXED, STATTYPEU,\r\n&lt;       SYSTIMESTAMP, FALSE, OBJ_FILTER_LIST, COLLECTED_SOFAR, JOBSTAB, TRUE, NULL, \r\n&lt;       CONCURRENT, OP_ID, REPORTING_MODE);    \r\n---\r\n&gt;     GATHER_SCHEMA_OR_DB_STATS('Database', NULL, ESTIMATE_PERCENT, BLOCK_SAMPLE,\r\n&gt;                               METHOD_OPT, DEGREE, GRANULARITY, CASCADE, \r\n&gt;                               STATTAB, STATID, OPTIONSU, TLIST, STATOWN,\r\n&gt;                               GATHER_SYS, NO_INVALIDATE, GATHER_TEMP, \r\n&gt;                               GATHER_FIXED, STATTYPEU, SYSTIMESTAMP, FALSE, \r\n&gt;                               OBJ_FILTER_LIST, COLLECTED_SOFAR, JOBSTAB, TRUE, \r\n&gt;                               NULL, CONCURRENT, OP_ID, REPORTING_MODE);    \r\n36799a37130\r\n&gt;                                  \r\n39255a39587\r\n&gt;       \r\n39825,39827c40157,40160\r\n&lt;       TRACE_TABLE('waiting for jobs in gather_dictionary_stats_aux: ' || JOBSTAB.COUNT);\r\n&lt;       MONITORING_MAN_WAIT_FOR_JOBS(JOB_NAME_PREFIX, JSTATS, \r\n&lt;                                    JOBSTAB, JOB_NAME_PREFIX, 'Dictionary Schema');\r\n---\r\n&gt;       TRACE_TABLE('waiting for jobs in gather_dictionary_stats_aux: ' || \r\n&gt;                   JOBSTAB.COUNT);\r\n&gt;       MONITORING_MAN_WAIT_FOR_JOBS(JOB_NAME_PREFIX, JSTATS, JOBSTAB, \r\n&gt;                                    JOB_NAME_PREFIX, 'Dictionary Schema');\r\n39832c40165,40166\r\n&lt;         TRACE_TABLE(JSTATS.FAILED || ' jobs failed and ' || JSTATS.STOPPED || ' jobs were stopped.');\r\n---\r\n&gt;         TRACE_TABLE(JSTATS.FAILED || ' jobs failed and ' || JSTATS.STOPPED || \r\n&gt;                     ' jobs were stopped.');\r\n39835c40169,40170\r\n&lt;       JOB_MAN_PERFORM_CLEANUPS(FORCE_DROP, FORCE_DROP, JOB_NAME_PREFIX, JOBSTAB, TRUE, TRUE);\r\n---\r\n&gt;       JOB_MAN_PERFORM_CLEANUPS(FORCE_DROP, FORCE_DROP, JOB_NAME_PREFIX, \r\n&gt;                                JOBSTAB, TRUE, TRUE);\r\n41147a41483\r\n&gt;   \r\n41408c41744,41745\r\n&lt;     DBMS_STATS_INTERNAL.PART_TYPES(OWNER, TABNAMEU, DSC_KGLNTABL, PTYPE, SPTYPE);  \r\n---\r\n&gt;     DBMS_STATS_INTERNAL.PART_TYPES(OWNER, TABNAMEU, DSC_KGLNTABL, PTYPE, \r\n&gt;                                    SPTYPE);  \r\n42927c43264\r\n&lt;     FOR RECI IN SYS.DBMS_STATS_INTERNAL.ALL_INDEXES(OWNNAME,TABNAME,                                                               NULL,NULL)\r\n---\r\n&gt;     FOR RECI IN SYS.DBMS_STATS_INTERNAL.ALL_INDEXES(OWNNAME,TABNAME,NULL,NULL)\r\n43501c43838\r\n&lt;                                          \r\n---\r\n&gt;                                       \r\n44052,44054c44389,44391\r\n&lt;       DBMS_STATS_INTERNAL.UPDATE_TARGET_LIST(SESID, SESSER, DEFAULT_GRANULARITY, \r\n&lt;                          NULL, \r\n&lt;                          TO_STALE_PERCENT_TYPE(GET_PREFS('STALE_PERCENT')));\r\n---\r\n&gt;       DBMS_STATS_INTERNAL.UPDATE_TARGET_LIST(SESID, SESSER, \r\n&gt;                                              DEFAULT_GRANULARITY, NULL, \r\n&gt;                             TO_STALE_PERCENT_TYPE(GET_PREFS('STALE_PERCENT')));\r\n44637,44638c44974,44975\r\n&lt;       RAISE_APPLICATION_ERROR (-20001,\r\n&lt;         'Invalid input value: valid values between 1 and 255 or DBMS_STATS.AUTO_TABLE_CACHED_BLOCKS');\r\n---\r\n&gt;       RAISE_APPLICATION_ERROR (-20001, 'Invalid input value: valid values ' ||\r\n&gt;                    'between 1 and 255 or DBMS_STATS.AUTO_TABLE_CACHED_BLOCKS');\r\n45456c45793,45794\r\n&lt;      || '          and SYS_OP_MAP_NONNULL(s.statid) = SYS_OP_MAP_NONNULL(:statidU)';\r\n---\r\n&gt;      || '          and SYS_OP_MAP_NONNULL(s.statid) = '\r\n&gt;      || '              SYS_OP_MAP_NONNULL(:statidU)';\r\n45535a45874\r\n&gt;       \r\n45618a45958\r\n&gt;       \r\n45695a46036\r\n&gt;       \r\n45769a46111\r\n&gt;       \r\n46219a46562\r\n&gt;       \r\n46352a46696\r\n&gt;       \r\n46493a46838\r\n&gt;       \r\n47563,47564c47908,47909\r\n&lt;     LINE_LOC := PAD_CHR(LINE_LOC || END_STR, DSC_EXTN_LEN) || DSC_HEADER_DELIM ||\r\n&lt;                 USAGE || DSC_NEW_LINE;\r\n---\r\n&gt;     LINE_LOC := PAD_CHR(LINE_LOC || END_STR, DSC_EXTN_LEN) || \r\n&gt;                         DSC_HEADER_DELIM ||USAGE || DSC_NEW_LINE;\r\n47748c48093,48094\r\n&lt;         USED_CNT := REPORT_TAB_COL_USAGE(TREC.USER_NAME, TREC.OBJ_NAME, REPORT);\r\n---\r\n&gt;         USED_CNT := REPORT_TAB_COL_USAGE(TREC.USER_NAME, TREC.OBJ_NAME, \r\n&gt;                                          REPORT);\r\n48263,48264c48609,48611\r\n&lt;   COMMON_HINTS VARCHAR2(32767)\r\n&lt;   := 'dbms_stats cursor_sharing_exact use_weak_name_resl dynamic_sampling(0) no_monitoring xmlindex_sel_idx_tbl ';\r\n---\r\n&gt;   COMMON_HINTS VARCHAR2(32767) := 'dbms_stats cursor_sharing_exact ' || \r\n&gt;                                   'use_weak_name_resl dynamic_sampling(0) ' ||\r\n&gt;                                   'no_monitoring xmlindex_sel_idx_tbl ';\r\n<\/pre>\n<div id=\"SYS.SCHEDULER$_JOB_EVENT_HANDLER.PROCEDURE.12.1.0.2_BP\">SYS.SCHEDULER$_JOB_EVENT_HANDLER &#8211; PROCEDURE (BP):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">47a48\r\n&gt;   DEQUEUE_OPTIONS.WAIT:=2;\r\n284c285,293\r\n&lt; \r\n---\r\n&gt; EXCEPTION\r\n&gt;   WHEN OTHERS THEN\r\n&gt;     IF DO_TRC THEN\r\n&gt;       SYS.DBMS_ISCHED.TRACE_EMAIL('Failed to send email notification');\r\n&gt;       SYS.DBMS_ISCHED.TRACE_EMAIL(DBMS_UTILITY.FORMAT_CALL_STACK);\r\n&gt;       SYS.DBMS_ISCHED.TRACE_EMAIL(DBMS_UTILITY.FORMAT_ERROR_STACK);\r\n&gt;       SYS.DBMS_ISCHED.TRACE_EMAIL(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);\r\n&gt;     END IF;\r\n&gt;     RAISE;\r\n<\/pre>\n<div id=\"SYS.GV_$BACKUP_DATAFILE.VIEW.12.1.0.2_PSU\">SYS.GV_$BACKUP_DATAFILE &#8211; VIEW (PSU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1c1\r\n&lt; select \"INST_ID\",\"RECID\",\"STAMP\",\"SET_STAMP\",\"SET_COUNT\",\"FILE#\",\"CREATION_CHANGE#\",\"CREATION_TIME\",\"RESETLOGS_CHANGE#\",\"RESETLOGS_TIME\",\"INCREMENTAL_LEVEL\",\"INCREMENTAL_CHANGE#\",\"CHECKPOINT_CHANGE#\",\"CHECKPOINT_TIME\",\"ABSOLUTE_FUZZY_CHANGE#\",\"MARKED_CORRUPT\",\"MEDIA_CORRUPT\",\"LOGICALLY_CORRUPT\",\"DATAFILE_BLOCKS\",\"BLOCKS\",\"BLOCK_SIZE\",\"OLDEST_OFFLINE_RANGE\",\"COMPLETION_TIME\",\"CONTROLFILE_TYPE\",\"USED_CHANGE_TRACKING\",\"BLOCKS_READ\",\"USED_OPTIMIZATION\",\"FOREIGN_DBID\",\"PLUGGED_READONLY\",\"PLUGIN_CHANGE#\",\"PLUGIN_RESETLOGS_CHANGE#\",\"PLUGIN_RESETLOGS_TIME\",\"SECTION_SIZE\",\"UNDO_OPTIMIZED\",\"BLOCKS_SKIPPED_IN_CELL\",\"CON_ID\",\"BACKED_BY_PDB\" from gv$backup_datafile\r\n---\r\n&gt; select \"INST_ID\",\"RECID\",\"STAMP\",\"SET_STAMP\",\"SET_COUNT\",\"FILE#\",\"CREATION_CHANGE#\",\"CREATION_TIME\",\"RESETLOGS_CHANGE#\",\"RESETLOGS_TIME\",\"INCREMENTAL_LEVEL\",\"INCREMENTAL_CHANGE#\",\"CHECKPOINT_CHANGE#\",\"CHECKPOINT_TIME\",\"ABSOLUTE_FUZZY_CHANGE#\",\"MARKED_CORRUPT\",\"MEDIA_CORRUPT\",\"LOGICALLY_CORRUPT\",\"DATAFILE_BLOCKS\",\"BLOCKS\",\"BLOCK_SIZE\",\"OLDEST_OFFLINE_RANGE\",\"COMPLETION_TIME\",\"CONTROLFILE_TYPE\",\"USED_CHANGE_TRACKING\",\"BLOCKS_READ\",\"USED_OPTIMIZATION\",\"FOREIGN_DBID\",\"PLUGGED_READONLY\",\"PLUGIN_CHANGE#\",\"PLUGIN_RESETLOGS_CHANGE#\",\"PLUGIN_RESETLOGS_TIME\",\"SECTION_SIZE\",\"UNDO_OPTIMIZED\",\"BLOCKS_SKIPPED_IN_CELL\",\"CON_ID\",\"BACKED_BY_PDB\",\"GUID\" from gv$backup_datafile\r\n<\/pre>\n<div id=\"SYS.GV_$BACKUP_PIECE.VIEW.12.1.0.2_PSU\">SYS.GV_$BACKUP_PIECE &#8211; VIEW (PSU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1c1\r\n&lt; select \"INST_ID\",\"RECID\",\"STAMP\",\"SET_STAMP\",\"SET_COUNT\",\"PIECE#\",\"COPY#\",\"DEVICE_TYPE\",\"HANDLE\",\"COMMENTS\",\"MEDIA\",\"MEDIA_POOL\",\"CONCUR\",\"TAG\",\"STATUS\",\"DELETED\",\"START_TIME\",\"COMPLETION_TIME\",\"ELAPSED_SECONDS\",\"BYTES\",\"IS_RECOVERY_DEST_FILE\",\"RMAN_STATUS_RECID\",\"RMAN_STATUS_STAMP\",\"COMPRESSED\",\"BACKED_BY_VSS\",\"ENCRYPTED\",\"BACKED_BY_OSB\",\"FOR_XTTS\",\"SAME_ENDIAN\",\"CON_ID\" from gv$backup_piece\r\n---\r\n&gt; select \"INST_ID\",\"RECID\",\"STAMP\",\"SET_STAMP\",\"SET_COUNT\",\"PIECE#\",\"COPY#\",\"DEVICE_TYPE\",\"HANDLE\",\"COMMENTS\",\"MEDIA\",\"MEDIA_POOL\",\"CONCUR\",\"TAG\",\"STATUS\",\"DELETED\",\"START_TIME\",\"COMPLETION_TIME\",\"ELAPSED_SECONDS\",\"BYTES\",\"IS_RECOVERY_DEST_FILE\",\"RMAN_STATUS_RECID\",\"RMAN_STATUS_STAMP\",\"COMPRESSED\",\"BACKED_BY_VSS\",\"ENCRYPTED\",\"BACKED_BY_OSB\",\"FOR_XTTS\",\"SAME_ENDIAN\",\"CON_ID\",\"GUID\" from gv$backup_piece\r\n<\/pre>\n<div id=\"SYS.GV_$BACKUP_SET.VIEW.12.1.0.2_PSU\">SYS.GV_$BACKUP_SET &#8211; VIEW (PSU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1c1\r\n&lt; select \"INST_ID\",\"RECID\",\"STAMP\",\"SET_STAMP\",\"SET_COUNT\",\"BACKUP_TYPE\",\"CONTROLFILE_INCLUDED\",\"INCREMENTAL_LEVEL\",\"PIECES\",\"START_TIME\",\"COMPLETION_TIME\",\"ELAPSED_SECONDS\",\"BLOCK_SIZE\",\"INPUT_FILE_SCAN_ONLY\",\"KEEP\",\"KEEP_UNTIL\",\"KEEP_OPTIONS\",\"MULTI_SECTION\",\"FOR_XTTS\",\"SAME_ENDIAN\",\"INC_DMPFILE\",\"CON_ID\" from gv$backup_set\r\n---\r\n&gt; select \"INST_ID\",\"RECID\",\"STAMP\",\"SET_STAMP\",\"SET_COUNT\",\"BACKUP_TYPE\",\"CONTROLFILE_INCLUDED\",\"INCREMENTAL_LEVEL\",\"PIECES\",\"START_TIME\",\"COMPLETION_TIME\",\"ELAPSED_SECONDS\",\"BLOCK_SIZE\",\"INPUT_FILE_SCAN_ONLY\",\"KEEP\",\"KEEP_UNTIL\",\"KEEP_OPTIONS\",\"MULTI_SECTION\",\"FOR_XTTS\",\"SAME_ENDIAN\",\"INC_DMPFILE\",\"CON_ID\",\"GUID\" from gv$backup_set\r\n<\/pre>\n<div id=\"SYS.GV_$BACKUP_SPFILE.VIEW.12.1.0.2_PSU\">SYS.GV_$BACKUP_SPFILE &#8211; VIEW (PSU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1c1\r\n&lt; select \"INST_ID\",\"RECID\",\"STAMP\",\"SET_STAMP\",\"SET_COUNT\",\"MODIFICATION_TIME\",\"BYTES\",\"COMPLETION_TIME\",\"DB_UNIQUE_NAME\",\"CON_ID\" from gv$backup_spfile\r\n---\r\n&gt; select \"INST_ID\",\"RECID\",\"STAMP\",\"SET_STAMP\",\"SET_COUNT\",\"MODIFICATION_TIME\",\"BYTES\",\"COMPLETION_TIME\",\"DB_UNIQUE_NAME\",\"CON_ID\",\"GUID\" from gv$backup_spfile\r\n<\/pre>\n<div id=\"SYS.GV_$DATAFILE_COPY.VIEW.12.1.0.2_PSU\">SYS.GV_$DATAFILE_COPY &#8211; VIEW (PSU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1c1\r\n&lt; select \"INST_ID\",\"RECID\",\"STAMP\",\"NAME\",\"TAG\",\"FILE#\",\"RFILE#\",\"CREATION_CHANGE#\",\"CREATION_TIME\",\"RESETLOGS_CHANGE#\",\"RESETLOGS_TIME\",\"INCREMENTAL_LEVEL\",\"CHECKPOINT_CHANGE#\",\"CHECKPOINT_TIME\",\"ABSOLUTE_FUZZY_CHANGE#\",\"RECOVERY_FUZZY_CHANGE#\",\"RECOVERY_FUZZY_TIME\",\"ONLINE_FUZZY\",\"BACKUP_FUZZY\",\"MARKED_CORRUPT\",\"MEDIA_CORRUPT\",\"LOGICALLY_CORRUPT\",\"BLOCKS\",\"BLOCK_SIZE\",\"OLDEST_OFFLINE_RANGE\",\"DELETED\",\"STATUS\",\"COMPLETION_TIME\",\"CONTROLFILE_TYPE\",\"KEEP\",\"KEEP_UNTIL\",\"KEEP_OPTIONS\",\"SCANNED\",\"IS_RECOVERY_DEST_FILE\",\"RMAN_STATUS_RECID\",\"RMAN_STATUS_STAMP\",\"CONVERTED_FILE\",\"SAME_ENDIAN\",\"FOREIGN_DBID\",\"PLUGGED_READONLY\",\"PLUGIN_CHANGE#\",\"PLUGIN_RESETLOGS_CHANGE#\",\"PLUGIN_RESETLOGS_TIME\",\"BACKED_BY_VSS\",\"CON_ID\",\"BACKED_BY_PDB\" from gv$datafile_copy\r\n---\r\n&gt; select \"INST_ID\",\"RECID\",\"STAMP\",\"NAME\",\"TAG\",\"FILE#\",\"RFILE#\",\"CREATION_CHANGE#\",\"CREATION_TIME\",\"RESETLOGS_CHANGE#\",\"RESETLOGS_TIME\",\"INCREMENTAL_LEVEL\",\"CHECKPOINT_CHANGE#\",\"CHECKPOINT_TIME\",\"ABSOLUTE_FUZZY_CHANGE#\",\"RECOVERY_FUZZY_CHANGE#\",\"RECOVERY_FUZZY_TIME\",\"ONLINE_FUZZY\",\"BACKUP_FUZZY\",\"MARKED_CORRUPT\",\"MEDIA_CORRUPT\",\"LOGICALLY_CORRUPT\",\"BLOCKS\",\"BLOCK_SIZE\",\"OLDEST_OFFLINE_RANGE\",\"DELETED\",\"STATUS\",\"COMPLETION_TIME\",\"CONTROLFILE_TYPE\",\"KEEP\",\"KEEP_UNTIL\",\"KEEP_OPTIONS\",\"SCANNED\",\"IS_RECOVERY_DEST_FILE\",\"RMAN_STATUS_RECID\",\"RMAN_STATUS_STAMP\",\"CONVERTED_FILE\",\"SAME_ENDIAN\",\"FOREIGN_DBID\",\"PLUGGED_READONLY\",\"PLUGIN_CHANGE#\",\"PLUGIN_RESETLOGS_CHANGE#\",\"PLUGIN_RESETLOGS_TIME\",\"BACKED_BY_VSS\",\"CON_ID\",\"BACKED_BY_PDB\",\"GUID\" from gv$datafile_copy\r\n<\/pre>\n<div id=\"SYS.GV_$PROXY_DATAFILE.VIEW.12.1.0.2_PSU\">SYS.GV_$PROXY_DATAFILE &#8211; VIEW (PSU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1c1\r\n&lt; select \"INST_ID\",\"RECID\",\"STAMP\",\"DEVICE_TYPE\",\"HANDLE\",\"COMMENTS\",\"MEDIA\",\"MEDIA_POOL\",\"TAG\",\"STATUS\",\"DELETED\",\"FILE#\",\"CREATION_CHANGE#\",\"CREATION_TIME\",\"RESETLOGS_CHANGE#\",\"RESETLOGS_TIME\",\"CHECKPOINT_CHANGE#\",\"CHECKPOINT_TIME\",\"ABSOLUTE_FUZZY_CHANGE#\",\"RECOVERY_FUZZY_CHANGE#\",\"RECOVERY_FUZZY_TIME\",\"INCREMENTAL_LEVEL\",\"ONLINE_FUZZY\",\"BACKUP_FUZZY\",\"BLOCKS\",\"BLOCK_SIZE\",\"OLDEST_OFFLINE_RANGE\",\"START_TIME\",\"COMPLETION_TIME\",\"ELAPSED_SECONDS\",\"CONTROLFILE_TYPE\",\"KEEP\",\"KEEP_UNTIL\",\"KEEP_OPTIONS\",\"RMAN_STATUS_RECID\",\"RMAN_STATUS_STAMP\",\"FOREIGN_DBID\",\"PLUGGED_READONLY\",\"PLUGIN_CHANGE#\",\"PLUGIN_RESETLOGS_CHANGE#\",\"PLUGIN_RESETLOGS_TIME\",\"CON_ID\",\"BACKED_BY_PDB\" from gv$proxy_datafile\r\n---\r\n&gt; select \"INST_ID\",\"RECID\",\"STAMP\",\"DEVICE_TYPE\",\"HANDLE\",\"COMMENTS\",\"MEDIA\",\"MEDIA_POOL\",\"TAG\",\"STATUS\",\"DELETED\",\"FILE#\",\"CREATION_CHANGE#\",\"CREATION_TIME\",\"RESETLOGS_CHANGE#\",\"RESETLOGS_TIME\",\"CHECKPOINT_CHANGE#\",\"CHECKPOINT_TIME\",\"ABSOLUTE_FUZZY_CHANGE#\",\"RECOVERY_FUZZY_CHANGE#\",\"RECOVERY_FUZZY_TIME\",\"INCREMENTAL_LEVEL\",\"ONLINE_FUZZY\",\"BACKUP_FUZZY\",\"BLOCKS\",\"BLOCK_SIZE\",\"OLDEST_OFFLINE_RANGE\",\"START_TIME\",\"COMPLETION_TIME\",\"ELAPSED_SECONDS\",\"CONTROLFILE_TYPE\",\"KEEP\",\"KEEP_UNTIL\",\"KEEP_OPTIONS\",\"RMAN_STATUS_RECID\",\"RMAN_STATUS_STAMP\",\"FOREIGN_DBID\",\"PLUGGED_READONLY\",\"PLUGIN_CHANGE#\",\"PLUGIN_RESETLOGS_CHANGE#\",\"PLUGIN_RESETLOGS_TIME\",\"CON_ID\",\"BACKED_BY_PDB\",\"GUID\" from gv$proxy_datafile\r\n<\/pre>\n<div id=\"SYS.V_$BACKUP_DATAFILE.VIEW.12.1.0.2_PSU\">SYS.V_$BACKUP_DATAFILE &#8211; VIEW (PSU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1c1\r\n&lt; select \"RECID\",\"STAMP\",\"SET_STAMP\",\"SET_COUNT\",\"FILE#\",\"CREATION_CHANGE#\",\"CREATION_TIME\",\"RESETLOGS_CHANGE#\",\"RESETLOGS_TIME\",\"INCREMENTAL_LEVEL\",\"INCREMENTAL_CHANGE#\",\"CHECKPOINT_CHANGE#\",\"CHECKPOINT_TIME\",\"ABSOLUTE_FUZZY_CHANGE#\",\"MARKED_CORRUPT\",\"MEDIA_CORRUPT\",\"LOGICALLY_CORRUPT\",\"DATAFILE_BLOCKS\",\"BLOCKS\",\"BLOCK_SIZE\",\"OLDEST_OFFLINE_RANGE\",\"COMPLETION_TIME\",\"CONTROLFILE_TYPE\",\"USED_CHANGE_TRACKING\",\"BLOCKS_READ\",\"USED_OPTIMIZATION\",\"FOREIGN_DBID\",\"PLUGGED_READONLY\",\"PLUGIN_CHANGE#\",\"PLUGIN_RESETLOGS_CHANGE#\",\"PLUGIN_RESETLOGS_TIME\",\"SECTION_SIZE\",\"UNDO_OPTIMIZED\",\"BLOCKS_SKIPPED_IN_CELL\",\"CON_ID\",\"BACKED_BY_PDB\" from v$backup_datafile\r\n---\r\n&gt; select \"RECID\",\"STAMP\",\"SET_STAMP\",\"SET_COUNT\",\"FILE#\",\"CREATION_CHANGE#\",\"CREATION_TIME\",\"RESETLOGS_CHANGE#\",\"RESETLOGS_TIME\",\"INCREMENTAL_LEVEL\",\"INCREMENTAL_CHANGE#\",\"CHECKPOINT_CHANGE#\",\"CHECKPOINT_TIME\",\"ABSOLUTE_FUZZY_CHANGE#\",\"MARKED_CORRUPT\",\"MEDIA_CORRUPT\",\"LOGICALLY_CORRUPT\",\"DATAFILE_BLOCKS\",\"BLOCKS\",\"BLOCK_SIZE\",\"OLDEST_OFFLINE_RANGE\",\"COMPLETION_TIME\",\"CONTROLFILE_TYPE\",\"USED_CHANGE_TRACKING\",\"BLOCKS_READ\",\"USED_OPTIMIZATION\",\"FOREIGN_DBID\",\"PLUGGED_READONLY\",\"PLUGIN_CHANGE#\",\"PLUGIN_RESETLOGS_CHANGE#\",\"PLUGIN_RESETLOGS_TIME\",\"SECTION_SIZE\",\"UNDO_OPTIMIZED\",\"BLOCKS_SKIPPED_IN_CELL\",\"CON_ID\",\"BACKED_BY_PDB\",\"GUID\" from v$backup_datafile\r\n<\/pre>\n<div id=\"SYS.V_$BACKUP_PIECE.VIEW.12.1.0.2_PSU\">SYS.V_$BACKUP_PIECE &#8211; VIEW (PSU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1c1\r\n&lt; select \"RECID\",\"STAMP\",\"SET_STAMP\",\"SET_COUNT\",\"PIECE#\",\"COPY#\",\"DEVICE_TYPE\",\"HANDLE\",\"COMMENTS\",\"MEDIA\",\"MEDIA_POOL\",\"CONCUR\",\"TAG\",\"STATUS\",\"START_TIME\",\"COMPLETION_TIME\",\"ELAPSED_SECONDS\",\"DELETED\",\"BYTES\",\"IS_RECOVERY_DEST_FILE\",\"RMAN_STATUS_RECID\",\"RMAN_STATUS_STAMP\",\"COMPRESSED\",\"BACKED_BY_VSS\",\"ENCRYPTED\",\"BACKED_BY_OSB\",\"FOR_XTTS\",\"SAME_ENDIAN\",\"CON_ID\" from v$backup_piece\r\n---\r\n&gt; select \"RECID\",\"STAMP\",\"SET_STAMP\",\"SET_COUNT\",\"PIECE#\",\"COPY#\",\"DEVICE_TYPE\",\"HANDLE\",\"COMMENTS\",\"MEDIA\",\"MEDIA_POOL\",\"CONCUR\",\"TAG\",\"STATUS\",\"START_TIME\",\"COMPLETION_TIME\",\"ELAPSED_SECONDS\",\"DELETED\",\"BYTES\",\"IS_RECOVERY_DEST_FILE\",\"RMAN_STATUS_RECID\",\"RMAN_STATUS_STAMP\",\"COMPRESSED\",\"BACKED_BY_VSS\",\"ENCRYPTED\",\"BACKED_BY_OSB\",\"FOR_XTTS\",\"SAME_ENDIAN\",\"CON_ID\",\"GUID\" from v$backup_piece\r\n<\/pre>\n<div id=\"SYS.V_$BACKUP_SET.VIEW.12.1.0.2_PSU\">SYS.V_$BACKUP_SET &#8211; VIEW (PSU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1c1\r\n&lt; select \"RECID\",\"STAMP\",\"SET_STAMP\",\"SET_COUNT\",\"BACKUP_TYPE\",\"CONTROLFILE_INCLUDED\",\"INCREMENTAL_LEVEL\",\"PIECES\",\"START_TIME\",\"COMPLETION_TIME\",\"ELAPSED_SECONDS\",\"BLOCK_SIZE\",\"INPUT_FILE_SCAN_ONLY\",\"KEEP\",\"KEEP_UNTIL\",\"KEEP_OPTIONS\",\"MULTI_SECTION\",\"FOR_XTTS\",\"SAME_ENDIAN\",\"INC_DMPFILE\",\"CON_ID\" from v$backup_set\r\n---\r\n&gt; select \"RECID\",\"STAMP\",\"SET_STAMP\",\"SET_COUNT\",\"BACKUP_TYPE\",\"CONTROLFILE_INCLUDED\",\"INCREMENTAL_LEVEL\",\"PIECES\",\"START_TIME\",\"COMPLETION_TIME\",\"ELAPSED_SECONDS\",\"BLOCK_SIZE\",\"INPUT_FILE_SCAN_ONLY\",\"KEEP\",\"KEEP_UNTIL\",\"KEEP_OPTIONS\",\"MULTI_SECTION\",\"FOR_XTTS\",\"SAME_ENDIAN\",\"INC_DMPFILE\",\"CON_ID\",\"GUID\" from v$backup_set\r\n<\/pre>\n<div id=\"SYS.V_$BACKUP_SPFILE.VIEW.12.1.0.2_PSU\">SYS.V_$BACKUP_SPFILE &#8211; VIEW (PSU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1c1\r\n&lt; select \"RECID\",\"STAMP\",\"SET_STAMP\",\"SET_COUNT\",\"MODIFICATION_TIME\",\"BYTES\",\"COMPLETION_TIME\",\"DB_UNIQUE_NAME\",\"CON_ID\" from v$backup_spfile\r\n---\r\n&gt; select \"RECID\",\"STAMP\",\"SET_STAMP\",\"SET_COUNT\",\"MODIFICATION_TIME\",\"BYTES\",\"COMPLETION_TIME\",\"DB_UNIQUE_NAME\",\"CON_ID\",\"GUID\" from v$backup_spfile\r\n<\/pre>\n<div id=\"SYS.V_$DATAFILE_COPY.VIEW.12.1.0.2_PSU\">SYS.V_$DATAFILE_COPY &#8211; VIEW (PSU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1c1\r\n&lt; select \"RECID\",\"STAMP\",\"NAME\",\"TAG\",\"FILE#\",\"RFILE#\",\"CREATION_CHANGE#\",\"CREATION_TIME\",\"RESETLOGS_CHANGE#\",\"RESETLOGS_TIME\",\"INCREMENTAL_LEVEL\",\"CHECKPOINT_CHANGE#\",\"CHECKPOINT_TIME\",\"ABSOLUTE_FUZZY_CHANGE#\",\"RECOVERY_FUZZY_CHANGE#\",\"RECOVERY_FUZZY_TIME\",\"ONLINE_FUZZY\",\"BACKUP_FUZZY\",\"MARKED_CORRUPT\",\"MEDIA_CORRUPT\",\"LOGICALLY_CORRUPT\",\"BLOCKS\",\"BLOCK_SIZE\",\"OLDEST_OFFLINE_RANGE\",\"DELETED\",\"STATUS\",\"COMPLETION_TIME\",\"CONTROLFILE_TYPE\",\"KEEP\",\"KEEP_UNTIL\",\"KEEP_OPTIONS\",\"SCANNED\",\"IS_RECOVERY_DEST_FILE\",\"RMAN_STATUS_RECID\",\"RMAN_STATUS_STAMP\",\"CONVERTED_FILE\",\"SAME_ENDIAN\",\"FOREIGN_DBID\",\"PLUGGED_READONLY\",\"PLUGIN_CHANGE#\",\"PLUGIN_RESETLOGS_CHANGE#\",\"PLUGIN_RESETLOGS_TIME\",\"BACKED_BY_VSS\",\"CON_ID\",\"BACKED_BY_PDB\" from v$datafile_copy\r\n---\r\n&gt; select \"RECID\",\"STAMP\",\"NAME\",\"TAG\",\"FILE#\",\"RFILE#\",\"CREATION_CHANGE#\",\"CREATION_TIME\",\"RESETLOGS_CHANGE#\",\"RESETLOGS_TIME\",\"INCREMENTAL_LEVEL\",\"CHECKPOINT_CHANGE#\",\"CHECKPOINT_TIME\",\"ABSOLUTE_FUZZY_CHANGE#\",\"RECOVERY_FUZZY_CHANGE#\",\"RECOVERY_FUZZY_TIME\",\"ONLINE_FUZZY\",\"BACKUP_FUZZY\",\"MARKED_CORRUPT\",\"MEDIA_CORRUPT\",\"LOGICALLY_CORRUPT\",\"BLOCKS\",\"BLOCK_SIZE\",\"OLDEST_OFFLINE_RANGE\",\"DELETED\",\"STATUS\",\"COMPLETION_TIME\",\"CONTROLFILE_TYPE\",\"KEEP\",\"KEEP_UNTIL\",\"KEEP_OPTIONS\",\"SCANNED\",\"IS_RECOVERY_DEST_FILE\",\"RMAN_STATUS_RECID\",\"RMAN_STATUS_STAMP\",\"CONVERTED_FILE\",\"SAME_ENDIAN\",\"FOREIGN_DBID\",\"PLUGGED_READONLY\",\"PLUGIN_CHANGE#\",\"PLUGIN_RESETLOGS_CHANGE#\",\"PLUGIN_RESETLOGS_TIME\",\"BACKED_BY_VSS\",\"CON_ID\",\"BACKED_BY_PDB\",\"GUID\" from v$datafile_copy\r\n<\/pre>\n<div id=\"SYS.V_$PROXY_DATAFILE.VIEW.12.1.0.2_PSU\">SYS.V_$PROXY_DATAFILE &#8211; VIEW (PSU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1c1\r\n&lt; select \"RECID\",\"STAMP\",\"DEVICE_TYPE\",\"HANDLE\",\"COMMENTS\",\"MEDIA\",\"MEDIA_POOL\",\"TAG\",\"STATUS\",\"DELETED\",\"FILE#\",\"CREATION_CHANGE#\",\"CREATION_TIME\",\"RESETLOGS_CHANGE#\",\"RESETLOGS_TIME\",\"CHECKPOINT_CHANGE#\",\"CHECKPOINT_TIME\",\"ABSOLUTE_FUZZY_CHANGE#\",\"RECOVERY_FUZZY_CHANGE#\",\"RECOVERY_FUZZY_TIME\",\"INCREMENTAL_LEVEL\",\"ONLINE_FUZZY\",\"BACKUP_FUZZY\",\"BLOCKS\",\"BLOCK_SIZE\",\"OLDEST_OFFLINE_RANGE\",\"START_TIME\",\"COMPLETION_TIME\",\"ELAPSED_SECONDS\",\"CONTROLFILE_TYPE\",\"KEEP\",\"KEEP_UNTIL\",\"KEEP_OPTIONS\",\"RMAN_STATUS_RECID\",\"RMAN_STATUS_STAMP\",\"FOREIGN_DBID\",\"PLUGGED_READONLY\",\"PLUGIN_CHANGE#\",\"PLUGIN_RESETLOGS_CHANGE#\",\"PLUGIN_RESETLOGS_TIME\",\"CON_ID\",\"BACKED_BY_PDB\" from v$proxy_datafile\r\n---\r\n&gt; select \"RECID\",\"STAMP\",\"DEVICE_TYPE\",\"HANDLE\",\"COMMENTS\",\"MEDIA\",\"MEDIA_POOL\",\"TAG\",\"STATUS\",\"DELETED\",\"FILE#\",\"CREATION_CHANGE#\",\"CREATION_TIME\",\"RESETLOGS_CHANGE#\",\"RESETLOGS_TIME\",\"CHECKPOINT_CHANGE#\",\"CHECKPOINT_TIME\",\"ABSOLUTE_FUZZY_CHANGE#\",\"RECOVERY_FUZZY_CHANGE#\",\"RECOVERY_FUZZY_TIME\",\"INCREMENTAL_LEVEL\",\"ONLINE_FUZZY\",\"BACKUP_FUZZY\",\"BLOCKS\",\"BLOCK_SIZE\",\"OLDEST_OFFLINE_RANGE\",\"START_TIME\",\"COMPLETION_TIME\",\"ELAPSED_SECONDS\",\"CONTROLFILE_TYPE\",\"KEEP\",\"KEEP_UNTIL\",\"KEEP_OPTIONS\",\"RMAN_STATUS_RECID\",\"RMAN_STATUS_STAMP\",\"FOREIGN_DBID\",\"PLUGGED_READONLY\",\"PLUGIN_CHANGE#\",\"PLUGIN_RESETLOGS_CHANGE#\",\"PLUGIN_RESETLOGS_TIME\",\"CON_ID\",\"BACKED_BY_PDB\",\"GUID\" from v$proxy_datafile\r\n<\/pre>\n<h3><strong>12.2.0.1<\/strong><\/h3>\n<div id=\"DVSYS.DBMS_MACADM.PACKAGE BODY.12.2.0.1_RU\">DVSYS.DBMS_MACADM &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">2492a2493,2498\r\n&gt;     \r\n&gt;     \r\n&gt;     ELSIF (TMP2) LIKE '%_LOG_SEGMENT_DUMP_PATCH%' THEN\r\n&gt;       RETURN 'Y';\r\n&gt;     ELSIF (TMP2) LIKE '%_LOG_SEGMENT_DUMP_PARAMETER%' THEN\r\n&gt;       RETURN 'Y';\r\n<\/pre>\n<div id=\"SYS.DBMS_RCVMAN.PACKAGE BODY.12.2.0.1_RU\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">6174c6174\r\n&lt;           DECODE(A.NEXT_CHANGE#, HIGHSCNVAL, -2, A.STAMP) STAMP,\r\n---\r\n&gt;           DECODE(A.ARCHIVED, 'NO', -2, A.STAMP) STAMP,\r\n6380c6380\r\n&lt;           DECODE(A.NEXT_CHANGE#, HIGHSCNVAL, -2, A.STAMP) STAMP,\r\n---\r\n&gt;           DECODE(A.ARCHIVED, 'NO', -2, A.STAMP) STAMP,\r\n6542c6542\r\n&lt;           DECODE(A.NEXT_CHANGE#, HIGHSCNVAL, -2, A.STAMP) STAMP,\r\n---\r\n&gt;           DECODE(A.ARCHIVED, 'NO', -2, A.STAMP) STAMP,\r\n6629c6629\r\n&lt;           DECODE(A.NEXT_CHANGE#, HIGHSCNVAL, -2, A.STAMP) STAMP,\r\n---\r\n&gt;           DECODE(A.ARCHIVED, 'NO', -2, A.STAMP) STAMP,\r\n7779,7792d7778\r\n&lt; WITH\r\n&lt; MY_DBINC AS\r\n&lt;    (SELECT RESETLOGS_TIME, \r\n&lt;            RESETLOGS_CHANGE#,\r\n&lt;            PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&lt;     FROM V$DATABASE_INCARNATION             \r\n&lt;     START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&lt;           AND  RESETLOGS_TIME    = THIS_RESET_TIME  \r\n&lt;     CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&lt;     UNION ALL\r\n&lt;     SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&lt;            THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&lt;            NULL             NEXT_RESETLOGS_CHANGE#\r\n&lt;     FROM DUAL)\r\n7832c7818,7830\r\n&lt;            FROM V$DATAFILE_COPY CDF, MY_DBINC\r\n---\r\n&gt;            FROM V$DATAFILE_COPY CDF, \r\n&gt;             (SELECT RESETLOGS_TIME,\r\n&gt;               RESETLOGS_CHANGE#,\r\n&gt;              PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&gt;              FROM V$DATABASE_INCARNATION\r\n&gt;              START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&gt;               AND  RESETLOGS_TIME    = THIS_RESET_TIME\r\n&gt;               CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&gt;               UNION ALL\r\n&gt;               SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&gt;                THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&gt;                 NULL             NEXT_RESETLOGS_CHANGE#\r\n&gt;                FROM DUAL) MY_DBINC\r\n7987c7985,7997\r\n&lt;             FROM V$DATAFILE_COPY CDF, MY_DBINC\r\n---\r\n&gt;             FROM V$DATAFILE_COPY CDF, \r\n&gt;             (SELECT RESETLOGS_TIME,\r\n&gt;               RESETLOGS_CHANGE#,\r\n&gt;              PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&gt;              FROM V$DATABASE_INCARNATION\r\n&gt;              START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&gt;               AND  RESETLOGS_TIME    = THIS_RESET_TIME\r\n&gt;               CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&gt;               UNION ALL\r\n&gt;               SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&gt;                THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&gt;                 NULL             NEXT_RESETLOGS_CHANGE#\r\n&gt;                FROM DUAL) MY_DBINC\r\n<\/pre>\n<div id=\"SYS.DBMS_RCVMAN.PACKAGE BODY.12.2.0.1_APR2020RUR\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY (APR2020RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">7779,7792d7778\r\n&lt; WITH\r\n&lt; MY_DBINC AS\r\n&lt;    (SELECT RESETLOGS_TIME, \r\n&lt;            RESETLOGS_CHANGE#,\r\n&lt;            PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&lt;     FROM V$DATABASE_INCARNATION             \r\n&lt;     START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&lt;           AND  RESETLOGS_TIME    = THIS_RESET_TIME  \r\n&lt;     CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&lt;     UNION ALL\r\n&lt;     SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&lt;            THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&lt;            NULL             NEXT_RESETLOGS_CHANGE#\r\n&lt;     FROM DUAL)\r\n7832c7818,7830\r\n&lt;            FROM V$DATAFILE_COPY CDF, MY_DBINC\r\n---\r\n&gt;            FROM V$DATAFILE_COPY CDF, \r\n&gt;             (SELECT RESETLOGS_TIME,\r\n&gt;               RESETLOGS_CHANGE#,\r\n&gt;              PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&gt;              FROM V$DATABASE_INCARNATION\r\n&gt;              START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&gt;               AND  RESETLOGS_TIME    = THIS_RESET_TIME\r\n&gt;               CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&gt;               UNION ALL\r\n&gt;               SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&gt;                THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&gt;                 NULL             NEXT_RESETLOGS_CHANGE#\r\n&gt;                FROM DUAL) MY_DBINC\r\n7987c7985,7997\r\n&lt;             FROM V$DATAFILE_COPY CDF, MY_DBINC\r\n---\r\n&gt;             FROM V$DATAFILE_COPY CDF, \r\n&gt;             (SELECT RESETLOGS_TIME,\r\n&gt;               RESETLOGS_CHANGE#,\r\n&gt;              PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&gt;              FROM V$DATABASE_INCARNATION\r\n&gt;              START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&gt;               AND  RESETLOGS_TIME    = THIS_RESET_TIME\r\n&gt;               CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&gt;               UNION ALL\r\n&gt;               SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&gt;                THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&gt;                 NULL             NEXT_RESETLOGS_CHANGE#\r\n&gt;                FROM DUAL) MY_DBINC\r\n<\/pre>\n<h3><strong>18.0.0.0<\/strong><\/h3>\n<div id=\"DVSYS.DBMS_MACADM.PACKAGE BODY.18.0.0.0_RU\">DVSYS.DBMS_MACADM &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">2570a2571,2576\r\n&gt;     \r\n&gt;     \r\n&gt;     ELSIF (TMP2) LIKE '%_LOG_SEGMENT_DUMP_PATCH%' THEN\r\n&gt;       RETURN 'Y';\r\n&gt;     ELSIF (TMP2) LIKE '%_LOG_SEGMENT_DUMP_PARAMETER%' THEN\r\n&gt;       RETURN 'Y';\r\n<\/pre>\n<div id=\"MDSYS.SDO_JOIN.FUNCTION.18.0.0.0_RU\">MDSYS.SDO_JOIN &#8211; FUNCTION (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">495,498c495,503\r\n&lt;         FULLTABNM1 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NITABNAME1), FALSE) ||\r\n&lt;           ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN1), FALSE) || ' ) ';\r\n---\r\n&gt;         IF ( IPTN1 IS NULL ) THEN\r\n&gt;           FULLTABNM1 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NITABNAME1), FALSE);\r\n&gt;         ELSE\r\n&gt;           FULLTABNM1 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NITABNAME1), FALSE) ||\r\n&gt;             ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN1), FALSE) || ' ) ';\r\n&gt;         END IF;\r\n506,509c511,519\r\n&lt;         FULLTABNM2 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NITABNAME2), FALSE) ||\r\n&lt;           ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN2), FALSE) || ' ) ';\r\n---\r\n&gt;         IF ( IPTN2 IS NULL ) THEN\r\n&gt;           FULLTABNM2 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NITABNAME2), FALSE);\r\n&gt;         ELSE\r\n&gt;           FULLTABNM2 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NITABNAME2), FALSE) ||\r\n&gt;             ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN2), FALSE) || ' ) ';\r\n&gt;         END IF;\r\n517,520c527,535\r\n&lt;         FULLTABNM1 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(ITABNAME1), FALSE) ||\r\n&lt;           ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN1), FALSE) || ' ) ';\r\n---\r\n&gt;         IF ( IPTN1 IS NULL ) THEN\r\n&gt;           FULLTABNM1 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(ITABNAME1), FALSE);\r\n&gt;         ELSE\r\n&gt;           FULLTABNM1 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(ITABNAME1), FALSE) ||\r\n&gt;             ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN1), FALSE) || ' ) ';\r\n&gt;         END IF;\r\n528,531c543,551\r\n&lt;         FULLTABNM2 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(ITABNAME2), FALSE) ||\r\n&lt;           ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN2), FALSE) || ' ) ';\r\n---\r\n&gt;         IF ( IPTN2 IS NULL ) THEN\r\n&gt;           FULLTABNM2 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(ITABNAME2), FALSE);\r\n&gt;         ELSE\r\n&gt;           FULLTABNM2 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(ITABNAME2), FALSE) ||\r\n&gt;             ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN2), FALSE) || ' ) ';\r\n&gt;         END IF;\r\n<\/pre>\n<div id=\"SYS.DBMS_BACKUP_RESTORE.PACKAGE.18.0.0.0_18.9RUR\">SYS.DBMS_BACKUP_RESTORE &#8211; PACKAGE (18.9RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">12c12\r\n&lt;   bannerVersion CONSTANT VARCHAR2(15) := '18.09.01.00';\r\n---\r\n&gt;   bannerVersion CONSTANT VARCHAR2(15) := '18.09.02.00';\r\n24,26c24,26\r\n&lt;   fsn  CONSTANT NUMBER := instr('18.09.01.00', '.');\r\n&lt;   msn  CONSTANT NUMBER := instr('18.09.01.00', '.', fsn + 1);\r\n&lt;   psn  CONSTANT NUMBER := instr('18.09.01.00', '.', msn + 1);\r\n---\r\n&gt;   fsn  CONSTANT NUMBER := instr('18.09.02.00', '.');\r\n&gt;   msn  CONSTANT NUMBER := instr('18.09.02.00', '.', fsn + 1);\r\n&gt;   psn  CONSTANT NUMBER := instr('18.09.02.00', '.', msn + 1);\r\n29c29\r\n&lt;                            to_number(substr('18.09.01.00', 1, fsn - 1));\r\n---\r\n&gt;                            to_number(substr('18.09.02.00', 1, fsn - 1));\r\n31c31\r\n&lt;                to_number(substr('18.09.01.00', fsn + 1, msn - fsn - 1));\r\n---\r\n&gt;                to_number(substr('18.09.02.00', fsn + 1, msn - fsn - 1));\r\n33c33\r\n&lt;               to_number(substr('18.09.01.00',  msn + 1, psn - msn - 1));\r\n---\r\n&gt;               to_number(substr('18.09.02.00',  msn + 1, psn - msn - 1));\r\n35c35\r\n&lt;                              to_number(substr('18.09.01.00',  psn + 1));\r\n---\r\n&gt;                              to_number(substr('18.09.02.00',  psn + 1));\r\n<\/pre>\n<div id=\"SYS.DBMS_BACKUP_RESTORE.PACKAGE.18.0.0.0_18.10RUR\">SYS.DBMS_BACKUP_RESTORE &#8211; PACKAGE (18.10RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">12c12\r\n&lt;   bannerVersion CONSTANT VARCHAR2(15) := '18.10.00.00';\r\n---\r\n&gt;   bannerVersion CONSTANT VARCHAR2(15) := '18.10.01.00';\r\n24,26c24,26\r\n&lt;   fsn  CONSTANT NUMBER := instr('18.10.00.00', '.');\r\n&lt;   msn  CONSTANT NUMBER := instr('18.10.00.00', '.', fsn + 1);\r\n&lt;   psn  CONSTANT NUMBER := instr('18.10.00.00', '.', msn + 1);\r\n---\r\n&gt;   fsn  CONSTANT NUMBER := instr('18.10.01.00', '.');\r\n&gt;   msn  CONSTANT NUMBER := instr('18.10.01.00', '.', fsn + 1);\r\n&gt;   psn  CONSTANT NUMBER := instr('18.10.01.00', '.', msn + 1);\r\n29c29\r\n&lt;                            to_number(substr('18.10.00.00', 1, fsn - 1));\r\n---\r\n&gt;                            to_number(substr('18.10.01.00', 1, fsn - 1));\r\n31c31\r\n&lt;                to_number(substr('18.10.00.00', fsn + 1, msn - fsn - 1));\r\n---\r\n&gt;                to_number(substr('18.10.01.00', fsn + 1, msn - fsn - 1));\r\n33c33\r\n&lt;               to_number(substr('18.10.00.00',  msn + 1, psn - msn - 1));\r\n---\r\n&gt;               to_number(substr('18.10.01.00',  msn + 1, psn - msn - 1));\r\n35c35\r\n&lt;                              to_number(substr('18.10.00.00',  psn + 1));\r\n---\r\n&gt;                              to_number(substr('18.10.01.00',  psn + 1));\r\n<\/pre>\n<div id=\"SYS.DBMS_BACKUP_RESTORE.PACKAGE.18.0.0.0_RU\">SYS.DBMS_BACKUP_RESTORE &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">12c12\r\n&lt;   bannerVersion CONSTANT VARCHAR2(15) := '18.10.00.00';\r\n---\r\n&gt;   bannerVersion CONSTANT VARCHAR2(15) := '18.11.00.00';\r\n24,26c24,26\r\n&lt;   fsn  CONSTANT NUMBER := instr('18.10.00.00', '.');\r\n&lt;   msn  CONSTANT NUMBER := instr('18.10.00.00', '.', fsn + 1);\r\n&lt;   psn  CONSTANT NUMBER := instr('18.10.00.00', '.', msn + 1);\r\n---\r\n&gt;   fsn  CONSTANT NUMBER := instr('18.11.00.00', '.');\r\n&gt;   msn  CONSTANT NUMBER := instr('18.11.00.00', '.', fsn + 1);\r\n&gt;   psn  CONSTANT NUMBER := instr('18.11.00.00', '.', msn + 1);\r\n29c29\r\n&lt;                            to_number(substr('18.10.00.00', 1, fsn - 1));\r\n---\r\n&gt;                            to_number(substr('18.11.00.00', 1, fsn - 1));\r\n31c31\r\n&lt;                to_number(substr('18.10.00.00', fsn + 1, msn - fsn - 1));\r\n---\r\n&gt;                to_number(substr('18.11.00.00', fsn + 1, msn - fsn - 1));\r\n33c33\r\n&lt;               to_number(substr('18.10.00.00',  msn + 1, psn - msn - 1));\r\n---\r\n&gt;               to_number(substr('18.11.00.00',  msn + 1, psn - msn - 1));\r\n35c35\r\n&lt;                              to_number(substr('18.10.00.00',  psn + 1));\r\n---\r\n&gt;                              to_number(substr('18.11.00.00',  psn + 1));\r\n<\/pre>\n<div id=\"SYS.DBMS_REGISTRY.PACKAGE.18.0.0.0_18.9RUR\">SYS.DBMS_REGISTRY &#8211; PACKAGE (18.9RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">13c13\r\n&lt;                                '18.9.1.0.0';\r\n---\r\n&gt;                                '18.9.2.0.0';\r\n<\/pre>\n<div id=\"SYS.DBMS_REGISTRY.PACKAGE.18.0.0.0_18.10RUR\">SYS.DBMS_REGISTRY &#8211; PACKAGE (18.10RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">13c13\r\n&lt;                                '18.10.0.0.0';\r\n---\r\n&gt;                                '18.10.1.0.0';\r\n<\/pre>\n<div id=\"SYS.DBMS_REGISTRY.PACKAGE.18.0.0.0_RU\">SYS.DBMS_REGISTRY &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">13c13\r\n&lt;                                '18.10.0.0.0';\r\n---\r\n&gt;                                '18.11.0.0.0';\r\n<\/pre>\n<div id=\"SYS.DBMS_REPORT.PACKAGE.18.0.0.0_RU\">SYS.DBMS_REPORT &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">667c667,672\r\n&lt;   --\r\n---\r\n&gt;   --    p_cloud_service_type\r\n&gt;   --                     (OUT)  - 0 NONE\r\n&gt;   --                              1 DWCS (Autonomous Data Warehouse)\r\n&gt;   --                              2 EECS (Exadata Express Cloud Service)\r\n&gt;   --                              3 PAAS (Platform As A Service (MDBCS))\r\n&gt;   --                              4 OLTP (ATP)\r\n678c683,684\r\n&lt;     p_packs                 OUT      NUMBER\r\n---\r\n&gt;     p_packs                 OUT      NUMBER,\r\n&gt;     p_cloud_service_type    OUT      NUMBER\r\n<\/pre>\n<div id=\"SYS.DBMS_SQLTUNE_UTIL2.PACKAGE.18.0.0.0_RU\">SYS.DBMS_SQLTUNE_UTIL2 &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">15a16,23\r\n&gt;   -- Cloud Service Type Constants\r\n&gt;   CLOUD_SERVICE_TYPE_NONE    CONSTANT VARCHAR2(30) := 'NONE';\r\n&gt;   CLOUD_SERVICE_TYPE_ADW_D   CONSTANT VARCHAR2(30) := 'ADW-D';\r\n&gt;   CLOUD_SERVICE_TYPE_ADW_S   CONSTANT VARCHAR2(30) := 'ADW-S';\r\n&gt;   CLOUD_SERVICE_TYPE_ATP_D   CONSTANT VARCHAR2(30) := 'ATP-D';\r\n&gt;   CLOUD_SERVICE_TYPE_ATP_S   CONSTANT VARCHAR2(30) := 'ATP-S';\r\n&gt;   CLOUD_SERVICE_TYPE_OTHER   CONSTANT VARCHAR2(30) := 'OTHER';\r\n&gt; \r\n313a322,381\r\n&gt; \r\n&gt;   -------------------------- get_cloud_service_type  --------------------------\r\n&gt;   -- NAME:\r\n&gt;   --     get_cloud_service_type\r\n&gt;   --\r\n&gt;   -- DESCRIPTION:\r\n&gt;   --     return value of _cloud_service_type parameter for cloud service type\r\n&gt;   --\r\n&gt;   -- RETURN:\r\n&gt;   --   CLOUD_SERVICE_TYPE_NONE    =&gt;  'NONE';\r\n&gt;   --   CLOUD_SERVICE_TYPE_ADW_D   =&gt;  'ADW-D';\r\n&gt;   --   CLOUD_SERVICE_TYPE_ADW_S   =&gt;  'ADW-S';\r\n&gt;   --   CLOUD_SERVICE_TYPE_ATP_D   =&gt;  'ATP-D';\r\n&gt;   --   CLOUD_SERVICE_TYPE_ATP_S   =&gt;  'ATP-S';\r\n&gt;   --   CLOUD_SERVICE_TYPE_OTHER   =&gt;  'OTHER';\r\n&gt;   -----------------------------------------------------------------------------\r\n&gt;   FUNCTION get_cloud_service_type\r\n&gt;   RETURN varchar2;\r\n&gt; \r\n&gt;   -------------------------- get_tz_offset  -----------------------------------\r\n&gt;   -- NAME:\r\n&gt;   --     get_tz_offset\r\n&gt;   --\r\n&gt;   -- DESCRIPTION:\r\n&gt;   --     get timezone offset from systimestamp\r\n&gt;   --\r\n&gt;   -- RETURN:\r\n&gt;   --     timezone offset in TZ_HOUR:TZ_MINUTE format\r\n&gt;   -----------------------------------------------------------------------------\r\n&gt;   FUNCTION get_tz_offset\r\n&gt;   RETURN VARCHAR2;\r\n&gt; \r\n&gt;   ----------------------------- chooseAwrForPdb -------------------------\r\n&gt;   -- NAME:\r\n&gt;   --     chooseAwrForPdb\r\n&gt;   --\r\n&gt;   -- DESCRIPTION:\r\n&gt;   --     This function determines the location\/prefix of the AWR view to use\r\n&gt;   --     for the database considering the following conditions:\r\n&gt;   --     1. Check whether local awr_pdb has snapshots.\r\n&gt;   --        If not, return AWR_VIEW_ROOT\r\n&gt;   --     2. If local awr has some snapshots use AWR_VIEW_PDB\r\n&gt;   --     3. If by change local awr was stopped\/disabled for some time\r\n&gt;   --         (say for eg., last 3 hrs not local awr snapshots)\r\n&gt;   --         then use AWR_VIEW_ROOT\r\n&gt;   --\r\n&gt;   --\r\n&gt;   -- NOTE: The beginTime and endTime used are in DB Timezone.\r\n&gt;   --       Unlike the case of ASH, no need to convert to UTC,\r\n&gt;   --       since end_interval_time in awr_root, awr_pdb  are in same TZ\r\n&gt;   --\r\n&gt;   -- PARAMETERS:\r\n&gt;   --     dbid            (IN)  - database id\r\n&gt;   --\r\n&gt;   -- RETURN:\r\n&gt;   --     Returned type can be 'AWR_ROOT' or 'AWR_PDB'.\r\n&gt;   --\r\n&gt;   -----------------------------------------------------------------------------\r\n&gt;   FUNCTION chooseAwrForPdb(beginTime IN DATE)\r\n&gt;   RETURN VARCHAR2;\r\n<\/pre>\n<div id=\"SYS.PRVT_AWR_VIEWER.PACKAGE.18.0.0.0_RU\">SYS.PRVT_AWR_VIEWER &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">417a418,419\r\n&gt;   \r\n&gt;   \r\n429a432\r\n&gt;     INCLUDE_SQLS      IN NUMBER         DEFAULT NULL,\r\n882a886,904\r\n&gt;   PROCEDURE CREATE_CONSUMER_GROUP_MAP(\r\n&gt;     P_CON_ID     IN     NUMBER,\r\n&gt;     P_AWR_PERIOD IN OUT NOCOPY PRVT_AWRV_METADATA,\r\n&gt;     P_CGRP_MAP   IN OUT NOCOPY PRVT_AWRV_INSTTAB);\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n911a934,1153\r\n&gt;   RETURN XMLTYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_RMMETRICS_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME      IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME        IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT 0)\r\n&gt;   RETURN XMLTYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_SQL_N_PARSE_TIME_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME_UTC  IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME_UTC    IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_WAIT_TIME_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME_UTC  IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME_UTC    IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_SYSMETRICS_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME_UTC  IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME_UTC    IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_STORAGE_METRICS_XML(\r\n&gt;     SERVICE_TYPE IN VARCHAR2 DEFAULT NULL,\r\n&gt;     SHOW_SQL     IN NUMBER   DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_SESSION_METRICS_XML(\r\n&gt;     SHOW_SQL        IN NUMBER   DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION REPORT_WORKLOAD(\r\n&gt;     SERVICE_TYPE   IN VARCHAR2 DEFAULT NULL,\r\n&gt;     IS_REALTIME    IN NUMBER   DEFAULT 1,\r\n&gt;     DBID           IN NUMBER   DEFAULT NULL,\r\n&gt;     START_TIME     IN DATE     DEFAULT NULL,\r\n&gt;     END_TIME       IN DATE     DEFAULT NULL,\r\n&gt;     REPORT_LEVEL   IN VARCHAR2 DEFAULT NULL,\r\n&gt;     SHOW_SQL       IN NUMBER   DEFAULT 0)\r\n<\/pre>\n<div id=\"SYS.DBMS_RCVMAN.PACKAGE BODY.18.0.0.0_18.9RUR\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY (18.9RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">122c122\r\n&lt; CATALOGVERSION CONSTANT VARCHAR2(11) := '18.09.01.00'; \r\n---\r\n&gt; CATALOGVERSION CONSTANT VARCHAR2(11) := '18.09.02.00'; \r\n<\/pre>\n<div id=\"SYS.DBMS_RCVMAN.PACKAGE BODY.18.0.0.0_RU\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">122c122\r\n&lt; CATALOGVERSION CONSTANT VARCHAR2(11) := '18.10.00.00'; \r\n---\r\n&gt; CATALOGVERSION CONSTANT VARCHAR2(11) := '18.11.00.00'; \r\n6266c6266\r\n&lt;           DECODE(A.NEXT_CHANGE#, HIGHSCNVAL, -2, A.STAMP) STAMP,\r\n---\r\n&gt;           DECODE(A.ARCHIVED, 'NO', -2, A.STAMP) STAMP,\r\n6472c6472\r\n&lt;           DECODE(A.NEXT_CHANGE#, HIGHSCNVAL, -2, A.STAMP) STAMP,\r\n---\r\n&gt;           DECODE(A.ARCHIVED, 'NO', -2, A.STAMP) STAMP,\r\n6634c6634\r\n&lt;           DECODE(A.NEXT_CHANGE#, HIGHSCNVAL, -2, A.STAMP) STAMP,\r\n---\r\n&gt;           DECODE(A.ARCHIVED, 'NO', -2, A.STAMP) STAMP,\r\n6721c6721\r\n&lt;           DECODE(A.NEXT_CHANGE#, HIGHSCNVAL, -2, A.STAMP) STAMP,\r\n---\r\n&gt;           DECODE(A.ARCHIVED, 'NO', -2, A.STAMP) STAMP,\r\n7871,7884d7870\r\n&lt; WITH\r\n&lt; MY_DBINC AS\r\n&lt;    (SELECT RESETLOGS_TIME, \r\n&lt;            RESETLOGS_CHANGE#,\r\n&lt;            PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&lt;     FROM V$DATABASE_INCARNATION             \r\n&lt;     START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&lt;           AND  RESETLOGS_TIME    = THIS_RESET_TIME  \r\n&lt;     CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&lt;     UNION ALL\r\n&lt;     SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&lt;            THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&lt;            NULL             NEXT_RESETLOGS_CHANGE#\r\n&lt;     FROM DUAL)\r\n7924c7910,7922\r\n&lt;            FROM V$DATAFILE_COPY CDF, MY_DBINC\r\n---\r\n&gt;            FROM V$DATAFILE_COPY CDF, \r\n&gt;             (SELECT RESETLOGS_TIME,\r\n&gt;               RESETLOGS_CHANGE#,\r\n&gt;              PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&gt;              FROM V$DATABASE_INCARNATION\r\n&gt;              START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&gt;               AND  RESETLOGS_TIME    = THIS_RESET_TIME\r\n&gt;               CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&gt;               UNION ALL\r\n&gt;               SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&gt;                THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&gt;                 NULL             NEXT_RESETLOGS_CHANGE#\r\n&gt;                FROM DUAL) MY_DBINC\r\n8079c8077,8089\r\n&lt;             FROM V$DATAFILE_COPY CDF, MY_DBINC\r\n---\r\n&gt;             FROM V$DATAFILE_COPY CDF, \r\n&gt;             (SELECT RESETLOGS_TIME,\r\n&gt;               RESETLOGS_CHANGE#,\r\n&gt;              PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&gt;              FROM V$DATABASE_INCARNATION\r\n&gt;              START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&gt;               AND  RESETLOGS_TIME    = THIS_RESET_TIME\r\n&gt;               CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&gt;               UNION ALL\r\n&gt;               SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&gt;                THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&gt;                 NULL             NEXT_RESETLOGS_CHANGE#\r\n&gt;                FROM DUAL) MY_DBINC\r\n<\/pre>\n<div id=\"SYS.DBMS_RCVMAN.PACKAGE BODY.18.0.0.0_18.10RUR\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY (18.10RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">122c122\r\n&lt; CATALOGVERSION CONSTANT VARCHAR2(11) := '18.10.00.00'; \r\n---\r\n&gt; CATALOGVERSION CONSTANT VARCHAR2(11) := '18.10.01.00'; \r\n<\/pre>\n<div id=\"SYS.DBMS_REPORT.PACKAGE BODY.18.0.0.0_RU\">SYS.DBMS_REPORT &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1055a1056,1060\r\n&gt;   EXCEPTION\r\n&gt;     WHEN OTHERS THEN\r\n&gt;       CONTENT_TYPE := CONTENT_TYPE_XML;\r\n&gt;       RETURN XMLTYPE('&lt;mesg type=\"oraerr\"&gt;'|| SQLERRM || \r\n&gt;                      '&lt;\/mesg&gt;').GETCLOBVAL();\r\n2011a2017,2021\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n2021c2031,2032\r\n&lt;     P_PACKS                 OUT      NUMBER\r\n---\r\n&gt;     P_PACKS                 OUT      NUMBER,\r\n&gt;     P_CLOUD_SERVICE_TYPE    OUT      NUMBER\r\n2257a2269,2299\r\n&gt;     \r\n&gt;     IF (V_RESOLVED_DB_TYPE\r\n&gt;         IN (DBMS_SQLTUNE_UTIL2.DB_TYPE_PDB, DBMS_SQLTUNE_UTIL2.DB_TYPE_IMP)) \r\n&gt;     THEN\r\n&gt;         SELECT CASE MAX(VALUE)\r\n&gt;                  WHEN 'DWCS' THEN 1\r\n&gt;                  WHEN 'EECS' THEN 2\r\n&gt;                  WHEN 'PAAS' THEN 3\r\n&gt;                  WHEN 'OLTP' THEN 4\r\n&gt;                  ELSE 0\r\n&gt;                END\r\n&gt;           INTO P_CLOUD_SERVICE_TYPE\r\n&gt;           FROM SYS.AWR_PDB_PARAMETER\r\n&gt;          WHERE DBID = P_DBID\r\n&gt;            AND SNAP_ID = V_END_SNAP\r\n&gt;            AND PARAMETER_NAME = '_cloud_service_type';\r\n&gt;     ELSE\r\n&gt;         SELECT CASE MAX(VALUE)\r\n&gt;                  WHEN 'DWCS' THEN 1\r\n&gt;                  WHEN 'EECS' THEN 2\r\n&gt;                  WHEN 'PAAS' THEN 3\r\n&gt;                  WHEN 'OLTP' THEN 4\r\n&gt;                  ELSE 0\r\n&gt;                END\r\n&gt;           INTO P_CLOUD_SERVICE_TYPE\r\n&gt;           FROM SYS.AWR_ROOT_PARAMETER\r\n&gt;          WHERE DBID = P_DBID\r\n&gt;            AND SNAP_ID = V_END_SNAP\r\n&gt;            AND PARAMETER_NAME = '_cloud_service_type';\r\n&gt;     END IF;\r\n&gt;       \r\n<\/pre>\n<div id=\"SYS.DBMS_SQLTUNE.PACKAGE BODY.18.0.0.0_RU\">SYS.DBMS_SQLTUNE &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">25990a25991,26033\r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt; \r\n&gt;     IF ( (LOCAL_DB = 1) \r\n&gt;           AND\r\n&gt;          (DBMS_SQLTUNE_UTIL2.GET_CLOUD_SERVICE_TYPE() IN \r\n&gt;           (DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_D,\r\n&gt;            DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_S,\r\n&gt;            DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_S,\r\n&gt;            DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_D))\r\n&gt;           AND \r\n&gt;          (DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(START_TIME) = \r\n&gt;                         DBMS_SQLTUNE_UTIL1.AWR_VIEW_PDB)\r\n&gt;        )\r\n&gt;     THEN  \r\n&gt;         TARGET_DBID := CON_DBID;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n<\/pre>\n<div id=\"SYS.DBMS_SQLTUNE_UTIL2.PACKAGE BODY.18.0.0.0_RU\">SYS.DBMS_SQLTUNE_UTIL2 &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">593a594,750\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_CLOUD_SERVICE_TYPE\r\n&gt;   RETURN VARCHAR2\r\n&gt;   IS\r\n&gt;     CLOUD_SERVICE_TYPE VARCHAR2(32);\r\n&gt;   BEGIN\r\n&gt; \r\n&gt;     SELECT \r\n&gt;       CASE \r\n&gt;         WHEN UPPER(SYS_CONTEXT('USERENV','CLOUD_SERVICE'))='PAAS' THEN\r\n&gt;           CASE \r\n&gt;             WHEN UPPER(MAX(PROPERTY_VALUE)) LIKE '%ADW.ORACLECLOUD.COM' THEN\r\n&gt;               CLOUD_SERVICE_TYPE_ADW_D\r\n&gt;       \t    WHEN UPPER(MAX(PROPERTY_VALUE)) LIKE '%ATP.ORACLECLOUD.COM' THEN \r\n&gt;               CLOUD_SERVICE_TYPE_ATP_D\r\n&gt;       \t    ELSE CLOUD_SERVICE_TYPE_OTHER\r\n&gt;           END\r\n&gt;         WHEN UPPER(SYS_CONTEXT('USERENV','CLOUD_SERVICE'))='DWCS' THEN \r\n&gt;           CLOUD_SERVICE_TYPE_ADW_S\r\n&gt;         WHEN UPPER(SYS_CONTEXT('USERENV','CLOUD_SERVICE'))='OLTP' THEN \r\n&gt;           CLOUD_SERVICE_TYPE_ATP_S\r\n&gt;         ELSE\r\n&gt;           UPPER(NVL(SYS_CONTEXT('USERENV','CLOUD_SERVICE'), \r\n&gt;                 CLOUD_SERVICE_TYPE_NONE))\r\n&gt;       END\r\n&gt;     INTO CLOUD_SERVICE_TYPE\r\n&gt;     FROM DATABASE_PROPERTIES\r\n&gt;     WHERE UPPER(PROPERTY_NAME) = 'GLOBAL_DB_NAME';\r\n&gt; \r\n&gt;     RETURN CLOUD_SERVICE_TYPE;\r\n&gt; \r\n&gt;   END GET_CLOUD_SERVICE_TYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_TZ_OFFSET\r\n&gt;   RETURN VARCHAR2\r\n&gt;   IS\r\n&gt;     L_TZ VARCHAR2(10);\r\n&gt;   BEGIN\r\n&gt;     \r\n&gt;     \r\n&gt;     L_TZ := EXTRACT(TIMEZONE_HOUR FROM SYSTIMESTAMP) || ':' ||\r\n&gt;                    EXTRACT(TIMEZONE_MINUTE FROM SYSTIMESTAMP);\r\n&gt;     RETURN L_TZ;\r\n&gt;   END GET_TZ_OFFSET;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION CHOOSEAWRFORPDB(\r\n&gt;         BEGINTIME IN DATE) \r\n&gt;   RETURN VARCHAR2\r\n&gt;   IS\r\n&gt;     L_AWR_LOCATION VARCHAR2(32) := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt;     L_SQLTEXT   VARCHAR2(4000);\r\n&gt;     L_PDB_TIME  DATE;\r\n&gt;     L_ROOT_TIME DATE;\r\n&gt; \r\n&gt;   BEGIN\r\n&gt;     \r\n&gt;     \r\n&gt;     L_SQLTEXT := \r\n&gt;       'SELECT CAST(MAX(end_interval_time) AS DATE)\r\n&gt;        FROM   AWR_PDB_SNAPSHOT\r\n&gt;        WHERE  dbid = :1';\r\n&gt;     EXECUTE IMMEDIATE L_SQLTEXT \r\n&gt;     INTO L_PDB_TIME\r\n&gt;     USING SYS_CONTEXT('USERENV', 'CON_DBID');\r\n&gt; \r\n&gt;     IF L_PDB_TIME IS NULL THEN\r\n&gt;       \r\n&gt;       L_AWR_LOCATION := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt;       RETURN L_AWR_LOCATION;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF L_PDB_TIME &gt;= BEGINTIME THEN\r\n&gt;       \r\n&gt;       L_AWR_LOCATION := DBMS_SQLTUNE_UTIL1.AWR_VIEW_PDB;\r\n&gt;       RETURN L_AWR_LOCATION;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     L_SQLTEXT := \r\n&gt;       'SELECT CAST(MAX(end_interval_time) AS DATE)\r\n&gt;        FROM   AWR_ROOT_SNAPSHOT\r\n&gt;        WHERE  dbid = :1';\r\n&gt;     EXECUTE IMMEDIATE L_SQLTEXT\r\n&gt;     INTO L_ROOT_TIME\r\n&gt;     USING SYS_CONTEXT('USERENV', 'DBID');\r\n&gt;     \r\n&gt;     IF ((L_ROOT_TIME IS NOT NULL) AND \r\n&gt;         (L_ROOT_TIME &gt;= BEGINTIME) \r\n&gt;        ) \r\n&gt;     THEN\r\n&gt;       \r\n&gt;       L_AWR_LOCATION := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt;       RETURN L_AWR_LOCATION;\r\n&gt; \r\n&gt;     ELSE \r\n&gt;         \r\n&gt;         L_AWR_LOCATION := DBMS_SQLTUNE_UTIL1.AWR_VIEW_PDB;\r\n&gt;         RETURN L_AWR_LOCATION;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_AWR_LOCATION;\r\n&gt; \r\n&gt;   END CHOOSEAWRFORPDB;\r\n&gt; \r\n<\/pre>\n<div id=\"SYS.PRVTEMX_PERF.PACKAGE BODY.18.0.0.0_RU\">SYS.PRVTEMX_PERF &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">7a8,13\r\n&gt;   AWR_PREFIX_ROOT   VARCHAR2(16) := 'sys.awr_root';\r\n&gt;   AWR_PREFIX_PDB    VARCHAR2(16) := 'sys.awr_pdb';\r\n&gt;   G_CLOUD_SERVICE_TYPE CONSTANT VARCHAR2(32) := \r\n&gt;                     DBMS_SQLTUNE_UTIL2.GET_CLOUD_SERVICE_TYPE();\r\n&gt; \r\n&gt;   \r\n379c385\r\n&lt;             from sys.dba_hist_active_sess_history a\r\n---\r\n&gt;             from #AWR_VIEW_PREFIX#_active_sess_history a\r\n462c468\r\n&lt;                             from sys.dba_hist_pdb_instance)) c');\r\n---\r\n&gt;                             from #AWR_VIEW_PREFIX#_pdb_instance)) c');\r\n485,502c491,550\r\n&lt;       SELECT MIN(SNAP_ID)\r\n&lt;         INTO L_BEGIN_SNAP\r\n&lt;         FROM SYS.DBA_HIST_ASH_SNAPSHOT\r\n&lt;        WHERE DBID            = L_DBID\r\n&lt;          AND INSTANCE_NUMBER = P_INST_ID\r\n&lt;          AND (END_INTERVAL_TIME   BETWEEN P_START_TIME AND P_END_TIME\r\n&lt;            OR BEGIN_INTERVAL_TIME BETWEEN P_START_TIME AND P_END_TIME\r\n&lt;            OR P_START_TIME BETWEEN BEGIN_INTERVAL_TIME AND END_INTERVAL_TIME);\r\n&lt; \r\n&lt;          \r\n&lt;       SELECT MAX(SNAP_ID)\r\n&lt;         INTO L_END_SNAP\r\n&lt;         FROM SYS.DBA_HIST_ASH_SNAPSHOT\r\n&lt;        WHERE DBID            = L_DBID\r\n&lt;          AND INSTANCE_NUMBER = P_INST_ID\r\n&lt;          AND (END_INTERVAL_TIME   BETWEEN P_START_TIME AND P_END_TIME\r\n&lt;            OR BEGIN_INTERVAL_TIME BETWEEN P_START_TIME AND P_END_TIME\r\n&lt;            OR P_END_TIME BETWEEN BEGIN_INTERVAL_TIME AND END_INTERVAL_TIME);\r\n---\r\n&gt;       \r\n&gt;       IF ((G_CLOUD_SERVICE_TYPE IN \r\n&gt;             (DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_D,\r\n&gt;              DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_S,\r\n&gt;              DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_S,\r\n&gt;              DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_D))\r\n&gt;           AND \r\n&gt;             (L_IS_ROOT = FALSE))\r\n&gt;       THEN  \r\n&gt;           L_QRY := REPLACE(L_QRY,'#AWR_VIEW_PREFIX#', AWR_PREFIX_PDB);\r\n&gt; \r\n&gt;           \r\n&gt;           SELECT MIN(SNAP_ID)\r\n&gt;             INTO L_BEGIN_SNAP\r\n&gt;             FROM SYS.AWR_PDB_ASH_SNAPSHOT\r\n&gt;            WHERE DBID            = L_DBID\r\n&gt;              AND INSTANCE_NUMBER = P_INST_ID\r\n&gt;              AND (END_INTERVAL_TIME   BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR BEGIN_INTERVAL_TIME BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR P_START_TIME BETWEEN \r\n&gt;                                BEGIN_INTERVAL_TIME AND END_INTERVAL_TIME);\r\n&gt; \r\n&gt;              \r\n&gt;           SELECT MAX(SNAP_ID)\r\n&gt;             INTO L_END_SNAP\r\n&gt;             FROM SYS.AWR_PDB_ASH_SNAPSHOT\r\n&gt;            WHERE DBID            = L_DBID\r\n&gt;              AND INSTANCE_NUMBER = P_INST_ID\r\n&gt;              AND (END_INTERVAL_TIME   BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR BEGIN_INTERVAL_TIME BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR P_END_TIME BETWEEN \r\n&gt;                              BEGIN_INTERVAL_TIME AND END_INTERVAL_TIME);\r\n&gt; \r\n&gt;       ELSE \r\n&gt;           \r\n&gt;           L_QRY := REPLACE(L_QRY,'#AWR_VIEW_PREFIX#', AWR_PREFIX_ROOT);\r\n&gt; \r\n&gt;           \r\n&gt;           SELECT MIN(SNAP_ID)\r\n&gt;             INTO L_BEGIN_SNAP\r\n&gt;             FROM SYS.AWR_ROOT_ASH_SNAPSHOT\r\n&gt;            WHERE DBID            = L_DBID\r\n&gt;              AND INSTANCE_NUMBER = P_INST_ID\r\n&gt;              AND (END_INTERVAL_TIME   BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR BEGIN_INTERVAL_TIME BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR P_START_TIME BETWEEN \r\n&gt;                                BEGIN_INTERVAL_TIME AND END_INTERVAL_TIME);\r\n&gt; \r\n&gt;              \r\n&gt;           SELECT MAX(SNAP_ID)\r\n&gt;             INTO L_END_SNAP\r\n&gt;             FROM SYS.AWR_ROOT_ASH_SNAPSHOT\r\n&gt;            WHERE DBID            = L_DBID\r\n&gt;              AND INSTANCE_NUMBER = P_INST_ID\r\n&gt;              AND (END_INTERVAL_TIME   BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR BEGIN_INTERVAL_TIME BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR P_END_TIME BETWEEN \r\n&gt;                              BEGIN_INTERVAL_TIME AND END_INTERVAL_TIME);\r\n&gt; \r\n&gt;       END IF;\r\n<\/pre>\n<div id=\"SYS.PRVTEMX_RSRCMGR.PACKAGE BODY.18.0.0.0_RU\">SYS.PRVTEMX_RSRCMGR &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">2530,2578d2529\r\n&lt;   PROCEDURE I_CREATE_AWR_CG_MAP(\r\n&lt;     P_CON_ID     IN     NUMBER,\r\n&lt;     P_AWR_PERIOD IN OUT NOCOPY PRVT_AWRV_METADATA,\r\n&lt;     P_CGRP_MAP   IN OUT NOCOPY PRVT_AWRV_INSTTAB)\r\n&lt;   IS\r\n&lt;     \r\n&lt;     SQLSTMT_MAP CONSTANT VARCHAR2(32767) := q'[\r\n&lt;       select sys.prvt_awrv_inst(id, name)\r\n&lt;         from (\r\n&lt;           select distinct \r\n&lt;                  consumer_group_id id, \r\n&lt;                  consumer_group_name name \r\n&lt;             from sys.awr_root_rsrc_consumer_group s\r\n&lt;            where s.dbid             = :m_dbid\r\n&lt;              and s.snap_id          &gt; :m_begin_snap\r\n&lt;              and s.snap_id         &lt;= :m_end_snap\r\n&lt;              and s.con_dbid         = :m_con_dbid\r\n&lt;              and ]' || P_AWR_PERIOD.GET_INST_CLAUSE('s') ||')';\r\n&lt;          \r\n&lt;   BEGIN\r\n&lt;     IF (P_CON_ID = 0 OR P_CON_ID &gt; 2) THEN\r\n&lt;       EXECUTE IMMEDIATE SQLSTMT_MAP\r\n&lt;         BULK COLLECT INTO P_CGRP_MAP\r\n&lt;         USING P_AWR_PERIOD.M_DBID,\r\n&lt;               P_AWR_PERIOD.M_BEGIN_SNAP, P_AWR_PERIOD.M_END_SNAP,\r\n&lt;               SYS.DBMS_SQLTUNE_UTIL0.CDBCON_ID_TO_DBID(P_CON_ID),\r\n&lt;               P_AWR_PERIOD.M_INST_ID_LOW, P_AWR_PERIOD.M_INST_ID_HIGH,\r\n&lt;               P_AWR_PERIOD.M_INST_ID_LIST;\r\n&lt;     ELSE\r\n&lt;       \r\n&lt;       P_CGRP_MAP := PRVT_AWRV_INSTTAB();\r\n&lt;     END IF;\r\n&lt;   END I_CREATE_AWR_CG_MAP;\r\n&lt; \r\n&lt; \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n2883c2834,2835\r\n&lt;         I_CREATE_AWR_CG_MAP(L_CON_ID, AWR_PERIOD, L_DIM_MAP);  \r\n---\r\n&gt;         PRVT_AWR_VIEWER.CREATE_CONSUMER_GROUP_MAP(\r\n&gt;           L_CON_ID, AWR_PERIOD, L_DIM_MAP);  \r\n<\/pre>\n<div id=\"SYS.PRVT_AWR_VIEWER.PACKAGE BODY.18.0.0.0_RU\">SYS.PRVT_AWR_VIEWER &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1183a1184,1273\r\n&gt;   \r\n&gt;   \r\n&gt;   RMMETRICS_COMMON CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       with rmmetrics_data as (-- autonomous DB workload main query\r\n&gt;         select bucket_id, \r\n&gt;                new_id consumer_group_id,\r\n&gt;                case \r\n&gt;                  when rn = 1 and :is_awr = 1\r\n&gt;                    then (select \/*+ cardinality(t 1) *\/ instance_name\r\n&gt;                            from table(cast(:p_contTab \r\n&gt;                                       as sys.prvt_awrv_instTab)) t\r\n&gt;                           where t.inst_id = consumer_group_id)\r\n&gt;                  when rn = 1 \r\n&gt;                    then consumer_group_name \r\n&gt;                  else null \r\n&gt;                end consumer_group_name,\r\n&gt;                avg_cpu_utilization,\r\n&gt;                cpu_usage_per_sec,\r\n&gt;                avg_running_stmts,\r\n&gt;                avg_active_parallel_stmts,\r\n&gt;                avg_queued_parallel_stmts\r\n&gt;           from ( -- generate an id since default ids can be high numbers\r\n&gt;             select bucket_id,\r\n&gt;                    consumer_group_id,\r\n&gt;                    consumer_group_name,\r\n&gt;                    avg_cpu_utilization,\r\n&gt;                    cpu_usage_per_sec,\r\n&gt;                    avg_running_stmts,\r\n&gt;                    avg_active_parallel_stmts,\r\n&gt;                    avg_queued_parallel_stmts,\r\n&gt;                    row_number() over (partition by consumer_group_id, \r\n&gt;                                                consumer_group_name\r\n&gt;                                       order by bucket_id, \r\n&gt;                                                consumer_group_id, \r\n&gt;                                                consumer_group_name) rn,\r\n&gt;                    -- generate an id\r\n&gt;                    dense_rank() over (order by consumer_group_id, \r\n&gt;                                                consumer_group_name) new_id\r\n&gt;               from (#GENERATE_METRICS_BUCKETID#) rsrc\r\n&gt;               where avg_cpu_utilization + cpu_usage_per_sec + \r\n&gt;                     avg_running_stmts +\r\n&gt;                     avg_active_parallel_stmts + avg_queued_parallel_stmts &gt; 0) \r\n&gt;        )\r\n&gt; \r\n&gt;       -- construct xml\r\n&gt;       select xmlagg(\r\n&gt;                nvl2(buckets,\r\n&gt;                     xmlelement(\"stattype\",\r\n&gt;                      xmlattributes('rsrcmgrmetric' as \"name\"),\r\n&gt;                      xmlelement(\"stat_info\",\r\n&gt;                        nvl(stat_id, \r\n&gt;                            xmlelement(\"stat\", \r\n&gt;                              xmlattributes(\r\n&gt;                                consumer_group_id as \"id\", \r\n&gt;                                consumer_group_id as \"name\")))),\r\n&gt;                      #GENERATE_BUCKETS_TAG#),\r\n&gt;                     null))\r\n&gt;         from ( -- aggregate buckets\r\n&gt;           select #GENERATE_BUCKETID_TAG#,\r\n&gt;                  xmlagg(stat_id)  stat_id, \r\n&gt;                  max(consumer_group_id) consumer_group_id\r\n&gt;             from ( -- aggregate stats in each bucket\r\n&gt;               select bucket_id, \r\n&gt;                      max(consumer_group_id) consumer_group_id,\r\n&gt;                      xmlagg(stat_id order by consumer_group_id) stat_id,\r\n&gt;                      xmlagg(xmlelement(\"stat\",\r\n&gt;                       xmlattributes(consumer_group_id as \"id\",\r\n&gt;                             round(avg_cpu_utilization, 2)         as \"cpu\",\r\n&gt;                             round(cpu_usage_per_sec, 2)           as \"cpuUsage\",\r\n&gt;                             round(avg_running_stmts, 2)           as \"rst\",\r\n&gt;                             round(avg_active_parallel_stmts, 2)   as \"apst\",\r\n&gt;                             round(avg_queued_parallel_stmts, 2)   as \"qpst\"\r\n&gt;                         )\r\n&gt;                       )\r\n&gt;                       order by consumer_group_id)  stats\r\n&gt;                 from ( -- generate id name map\r\n&gt;                   select bucket_id, consumer_group_id,\r\n&gt;                          nvl2(consumer_group_name,\r\n&gt;                               xmlelement(\"stat\",\r\n&gt;                                xmlattributes(consumer_group_id as \"id\",\r\n&gt;                                  consumer_group_name as \"name\")),\r\n&gt;                               null)      stat_id,\r\n&gt;                          avg_cpu_utilization,\r\n&gt;                          cpu_usage_per_sec,\r\n&gt;                          avg_running_stmts,\r\n&gt;                          avg_active_parallel_stmts,\r\n&gt;                          avg_queued_parallel_stmts\r\n&gt;                    from rmmetrics_data)\r\n&gt;                group by bucket_id))]';\r\n&gt; \r\n1311a1402,1461\r\n&gt;   PROCEDURE CREATE_CONSUMER_GROUP_MAP(\r\n&gt;     P_CON_ID     IN     NUMBER,\r\n&gt;     P_AWR_PERIOD IN OUT NOCOPY PRVT_AWRV_METADATA,\r\n&gt;     P_CGRP_MAP   IN OUT NOCOPY PRVT_AWRV_INSTTAB)\r\n&gt;   IS\r\n&gt; \r\n&gt;     L_QRY VARCHAR2(32767) := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     SQLSTMT_MAP CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       select sys.prvt_awrv_inst(id, name)\r\n&gt;         from (\r\n&gt;           select distinct \r\n&gt;                  consumer_group_id id, \r\n&gt;                  consumer_group_name name \r\n&gt;             from sys.awr_root_rsrc_consumer_group s\r\n&gt;            where s.dbid             = :m_dbid\r\n&gt;              and s.snap_id          &gt; :m_begin_snap\r\n&gt;              and s.snap_id         &lt;= :m_end_snap\r\n&gt;              and s.con_dbid         = :m_con_dbid\r\n&gt;              and ]' || P_AWR_PERIOD.GET_INST_CLAUSE('s') ||')';\r\n&gt; \r\n&gt;   BEGIN\r\n&gt; \r\n&gt;     L_QRY := SQLSTMT_MAP;\r\n&gt; \r\n&gt;     DBMS_SQLTUNE_UTIL1.REPLACE_AWR_VIEW_PREFIX(\r\n&gt;       L_QRY, P_AWR_PERIOD.M_AWR_VIEW_PREFIX);\r\n&gt; \r\n&gt;     \r\n&gt;     IF (P_CON_ID = 0 OR P_CON_ID &gt; 2) THEN\r\n&gt;       EXECUTE IMMEDIATE L_QRY\r\n&gt;         BULK COLLECT INTO P_CGRP_MAP\r\n&gt;         USING P_AWR_PERIOD.M_DBID,\r\n&gt;               P_AWR_PERIOD.M_BEGIN_SNAP, P_AWR_PERIOD.M_END_SNAP,\r\n&gt;               SYS.DBMS_SQLTUNE_UTIL0.CDBCON_ID_TO_DBID(P_CON_ID),\r\n&gt;               P_AWR_PERIOD.M_INST_ID_LOW, P_AWR_PERIOD.M_INST_ID_HIGH,\r\n&gt;               P_AWR_PERIOD.M_INST_ID_LIST;\r\n&gt;     \r\n&gt;     ELSE\r\n&gt;       \r\n&gt;       P_CGRP_MAP := PRVT_AWRV_INSTTAB();\r\n&gt;     END IF;\r\n&gt; \r\n&gt;   END CREATE_CONSUMER_GROUP_MAP;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n16404a16555,16556\r\n&gt;   \r\n&gt;   \r\n16416a16569\r\n&gt;     INCLUDE_SQLS      IN NUMBER         DEFAULT NULL,\r\n16601c16754\r\n&lt;     IF (L_DIM_STAT IS NULL AND L_DIM_NAME IS NULL) THEN \r\n---\r\n&gt;     IF (INCLUDE_SQLS = 0) THEN\r\n16602a16756,16758\r\n&gt;       L_TOPSQL_XML := NULL;\r\n&gt;     \r\n&gt;     ELSE\r\n16604,16626c16760\r\n&lt;       IF (IS_REALTIME IS NULL OR IS_REALTIME = G_TIMEPICKER_HISTORICAL) THEN\r\n&lt;         \r\n&lt;       IF (L_START_TIME IS NOT NULL AND L_END_TIME IS NOT NULL AND\r\n&lt;           (L_END_TIME - L_START_TIME)*24*60 &lt; L_SNAPINT_MINS) \r\n&lt;       THEN\r\n&lt;         L_USEASH := TRUE;\r\n&lt;       END IF;\r\n&lt;       \r\n&lt;       \r\n&lt;       ELSE\r\n&lt;         L_USEASH := TRUE;\r\n&lt;       END IF;\r\n&lt; \r\n&lt; \r\n&lt;     IF (L_USEASH) THEN\r\n&lt;       SELECT XMLELEMENT(\"region_data\",\r\n&lt;               XMLAGG(\r\n&lt;                 XMLELEMENT(\"stattype\",\r\n&lt;                  XMLATTRIBUTES('topsql' AS \"name\",\r\n&lt;                                 '10' AS \"topn\",\r\n&lt;                                 'ash'   AS \"source\"))))\r\n&lt;         INTO L_TOPSQL_XML\r\n&lt;         FROM SYS.DUAL;\r\n---\r\n&gt;       IF (L_DIM_STAT IS NULL AND L_DIM_NAME IS NULL) THEN \r\n16629,16630c16763,16773\r\n&lt;         IF (L_END_TIME IS NULL) THEN\r\n&lt;           L_END_TIME := SYSDATE;\r\n---\r\n&gt;         IF (IS_REALTIME IS NULL OR IS_REALTIME = G_TIMEPICKER_HISTORICAL) THEN\r\n&gt;           \r\n&gt;           IF (L_START_TIME IS NOT NULL AND L_END_TIME IS NOT NULL AND\r\n&gt;              (L_END_TIME - L_START_TIME)*24*60 &lt; L_SNAPINT_MINS) \r\n&gt;           THEN\r\n&gt;             L_USEASH := TRUE;\r\n&gt;           END IF;\r\n&gt;           \r\n&gt;           \r\n&gt;         ELSE\r\n&gt;           L_USEASH := TRUE;\r\n16633,16635d16775\r\n&lt;         IF (L_START_TIME IS NULL) THEN\r\n&lt;           L_START_TIME := L_END_TIME - 1\/24;\r\n&lt;         END IF;\r\n16637,16646c16777,16805\r\n&lt;         L_TOPSQL_XML := L_TOPSQL_XML.APPENDCHILDXML('\/*\/stattype',\r\n&lt;                         SYS.DBMS_ASH_INTERNAL.REPORT_ASHVIEWER_XML(\r\n&lt;                            DBID       =&gt; L_DBID,\r\n&lt;                            INST_ID    =&gt; L_INST_ID,\r\n&lt;                            BEGIN_TIME =&gt; \r\n&lt;                              TO_CHAR(L_START_TIME,'hh24:mi:ss mm\/dd\/yyyy'),\r\n&lt;                            END_TIME   =&gt; \r\n&lt;                              TO_CHAR(L_END_TIME,'hh24:mi:ss mm\/dd\/yyyy'),\r\n&lt;                            REPORT_LEVEL=&gt;'&lt;sqlid,wait_class&gt;{treemap}', \r\n&lt;                            PARENT_REPORT =&gt; 'topsql'));\r\n---\r\n&gt;         IF (L_USEASH) THEN\r\n&gt;           SELECT XMLELEMENT(\"region_data\",\r\n&gt;                    XMLAGG(\r\n&gt;                      XMLELEMENT(\"stattype\",\r\n&gt;                        XMLATTRIBUTES('topsql' AS \"name\",\r\n&gt;                                      '10' AS \"topn\",\r\n&gt;                                      'ash'   AS \"source\"))))\r\n&gt;             INTO L_TOPSQL_XML\r\n&gt;             FROM SYS.DUAL;\r\n&gt; \r\n&gt;             \r\n&gt;             IF (L_END_TIME IS NULL) THEN\r\n&gt;               L_END_TIME := SYSDATE;\r\n&gt;             END IF;\r\n&gt; \r\n&gt;             IF (L_START_TIME IS NULL) THEN\r\n&gt;               L_START_TIME := L_END_TIME - 1\/24;\r\n&gt;             END IF;\r\n&gt; \r\n&gt;             L_TOPSQL_XML := L_TOPSQL_XML.APPENDCHILDXML('\/*\/stattype',\r\n&gt;                               SYS.DBMS_ASH_INTERNAL.REPORT_ASHVIEWER_XML(\r\n&gt;                                 DBID          =&gt; L_DBID,\r\n&gt;                                 INST_ID       =&gt; L_INST_ID,\r\n&gt;                                 BEGIN_TIME    =&gt; \r\n&gt;                                   TO_CHAR(L_START_TIME,'hh24:mi:ss mm\/dd\/yyyy'),\r\n&gt;                                 END_TIME      =&gt; \r\n&gt;                                   TO_CHAR(L_END_TIME,'hh24:mi:ss mm\/dd\/yyyy'),\r\n&gt;                                 REPORT_LEVEL  =&gt;'&lt;sqlid,wait_class&gt;{treemap}', \r\n&gt;                                 PARENT_REPORT =&gt; 'topsql'));\r\n16648c16807\r\n&lt;     ELSE\r\n---\r\n&gt;         ELSE\r\n16650,16673c16809,16834\r\n&lt;       \r\n&lt;       L_TOPSQL_XML := I_REP_AWRDATA_XML(\r\n&lt;                         START_TIME       =&gt; L_START_TIME,\r\n&lt;                         END_TIME         =&gt; L_END_TIME,\r\n&lt;                         TIMEPICKER_START =&gt; NULL,\r\n&lt;                         TIMEPICKER_END   =&gt; NULL,\r\n&lt;                         INSTANCE_LIST    =&gt; L_INSTANCE_LIST,\r\n&lt;                         DBID             =&gt; L_DBID,\r\n&lt;                         BUCKET_MAX_COUNT =&gt; 1,  \r\n&lt;                         TIME_MODEL       =&gt; 'no',\r\n&lt;                         WAIT_CLASS       =&gt; 'no',\r\n&lt;                         WAIT_EVENT       =&gt; 'no',\r\n&lt;                         EVENT_CLASS      =&gt; 'no',\r\n&lt;                         SYSSTAT          =&gt; 'no',\r\n&lt;                         SQLSTAT          =&gt; 'EM_TOP_SQL',\r\n&lt;                         OSSTAT           =&gt; 'no',\r\n&lt;                         IOSTAT           =&gt; 'no',\r\n&lt;                         MEMORY           =&gt; 'no',\r\n&lt;                         SPACE            =&gt; 'no',\r\n&lt;                         KEY_STATISTICS   =&gt; 'no',\r\n&lt;                         INST_DETAIL      =&gt; L_SHOW_INST_DETAIL,\r\n&lt;                         MEMBERS          =&gt; 'no',\r\n&lt;                         SUMMARY          =&gt; 'no',\r\n&lt;                         SHOW_SQL         =&gt; SHOW_SQL);\r\n---\r\n&gt;           \r\n&gt;           L_TOPSQL_XML := I_REP_AWRDATA_XML(\r\n&gt;                             START_TIME       =&gt; L_START_TIME,\r\n&gt;                             END_TIME         =&gt; L_END_TIME,\r\n&gt;                             TIMEPICKER_START =&gt; NULL,\r\n&gt;                             TIMEPICKER_END   =&gt; NULL,\r\n&gt;                             INSTANCE_LIST    =&gt; L_INSTANCE_LIST,\r\n&gt;                             DBID             =&gt; L_DBID,\r\n&gt;                             BUCKET_MAX_COUNT =&gt; 1,  \r\n&gt;                             TIME_MODEL       =&gt; 'no',\r\n&gt;                             WAIT_CLASS       =&gt; 'no',\r\n&gt;                             WAIT_EVENT       =&gt; 'no',\r\n&gt;                             EVENT_CLASS      =&gt; 'no',\r\n&gt;                             SYSSTAT          =&gt; 'no',\r\n&gt;                             SQLSTAT          =&gt; 'EM_TOP_SQL',\r\n&gt;                             OSSTAT           =&gt; 'no',\r\n&gt;                             IOSTAT           =&gt; 'no',\r\n&gt;                             MEMORY           =&gt; 'no',\r\n&gt;                             SPACE            =&gt; 'no',\r\n&gt;                             KEY_STATISTICS   =&gt; 'no',\r\n&gt;                             INST_DETAIL      =&gt; L_SHOW_INST_DETAIL,\r\n&gt;                             MEMBERS          =&gt; 'no',\r\n&gt;                             SUMMARY          =&gt; 'no',\r\n&gt;                             SHOW_SQL         =&gt; SHOW_SQL);\r\n&gt;         END IF;\r\n&gt;       END IF;\r\n16675d16835\r\n&lt;   END IF;\r\n18086a18247,20960\r\n&gt;   \r\n&gt;   \r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_RMMETRICS_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME      IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME        IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT 0)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt; \r\n&gt;     \r\n&gt;     L_QRY VARCHAR2(32767) := NULL;\r\n&gt;     L_SQL CLOB;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RESULT_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_IS_REALTIME     NUMBER        := IS_REALTIME;\r\n&gt;     L_DBID            NUMBER        := DBID;\r\n&gt;     L_START_TIME      DATE          := START_TIME;\r\n&gt;     L_END_TIME        DATE          := END_TIME;\r\n&gt;     L_BUCKET_COUNT    NUMBER        := BUCKET_COUNT;\r\n&gt;     L_BUCKET_INTERVAL NUMBER        := BUCKET_INTERVAL;\r\n&gt;     L_AWR_PERIOD PRVT_AWRV_METADATA := AWR_PERIOD;\r\n&gt;     L_AWR_VIEW_PREFIX VARCHAR2(10)  := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt; \r\n&gt;     \r\n&gt;     L_BUCKET_MAP PRVT_AWRV_MAPTAB;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_ID   NUMBER;\r\n&gt;     L_CON_DBID NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RESOURCE_MANAGER_ENABLED NUMBER := 0;\r\n&gt;     \r\n&gt;     \r\n&gt;     L_NUM_CPUS NUMBER := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CG_MAP PRVT_AWRV_INSTTAB := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     RMMETRICS_RT CONSTANT VARCHAR2(32767) := q'[\r\n&gt;     select bucket_id,\r\n&gt;            consumer_group_id, consumer_group_name,\r\n&gt;            case\r\n&gt;              when avg(avg_cpu_utilization) &gt; 100 then 100\r\n&gt;              else avg(avg_cpu_utilization) \r\n&gt;            end avg_cpu_utilization,\r\n&gt;            avg(cpu_usage_per_sec) cpu_usage_per_sec,\r\n&gt;            sum(avg_running_stmts) avg_running_stmts,\r\n&gt;            sum(avg_active_parallel_stmts) \r\n&gt;                                      avg_active_parallel_stmts,\r\n&gt;            sum(avg_queued_parallel_stmts) \r\n&gt;                                      avg_queued_parallel_stmts\r\n&gt;       from table(sys.gv$(cursor(\r\n&gt;            select trunc(\r\n&gt;                   ((extract(day from \r\n&gt;                       (cast(trunc(end_time,'mi') as timestamp) -\r\n&gt;                        cast(trunc(to_date(:b_start_time, :date_fmt),'mi') \r\n&gt;                          as timestamp))) \r\n&gt;                     * 86400 +\r\n&gt;                     extract(hour from \r\n&gt;                       (cast(trunc(end_time,'mi') as timestamp) -\r\n&gt;                        cast(trunc(to_date(:b_start_time, :date_fmt),'mi') \r\n&gt;                          as timestamp))) \r\n&gt;                     * 3600 + \r\n&gt;                     extract(minute from\r\n&gt;                       (cast(trunc(end_time,'mi') as timestamp) -\r\n&gt;                        cast(trunc(to_date(:b_start_time, :date_fmt),'mi') \r\n&gt;                          as timestamp))) \r\n&gt;                     * 60 + \r\n&gt;                     extract(second from\r\n&gt;                       (cast(trunc(end_time,'mi') as timestamp) -\r\n&gt;                        cast(trunc(to_date(:b_start_time, :date_fmt),'mi') \r\n&gt;                          as timestamp))) \r\n&gt;                    )\r\n&gt;                    \/ :p_bucket_interval)) + 1 bucket_id,\r\n&gt;                   consumer_group_name,\r\n&gt;                   consumer_group_id,\r\n&gt;                   (case \r\n&gt;                      -- resource manager enabled, use running_sessions_limit\r\n&gt;                      when :resource_manager_enabled &gt; 0 then\r\n&gt;                        (case\r\n&gt;                           -- if running_sessions_limit is not set\r\n&gt;                           when running_sessions_limit is null or\r\n&gt;                                running_sessions_limit = 0 then\r\n&gt;                             avg_cpu_utilization\r\n&gt;                           else\r\n&gt;                             (avg_running_sessions\/running_sessions_limit)*100\r\n&gt;                         end)\r\n&gt;                      -- resource manager disabled, use system cpu limit\r\n&gt;                      else\r\n&gt;                        (case\r\n&gt;                           when :num_cpus &gt; 0 then\r\n&gt;                             (avg_running_sessions\/:num_cpus)*100\r\n&gt;                           -- system cpu limit not available\r\n&gt;                           -- use running_sessions_limit\r\n&gt;                           else\r\n&gt;                             (case\r\n&gt;                                when running_sessions_limit is null or\r\n&gt;                                     running_sessions_limit = 0 then\r\n&gt;                                  avg_cpu_utilization\r\n&gt;                                else\r\n&gt;                                 (avg_running_sessions\/running_sessions_limit)*100\r\n&gt;                              end)\r\n&gt;                         end)\r\n&gt;                      end) avg_cpu_utilization,\r\n&gt;                   cpu_consumed_time\/(intsize_csec*10) cpu_usage_per_sec,\r\n&gt;                   avg_running_sessions + avg_waiting_sessions\r\n&gt;                     as avg_running_stmts,\r\n&gt;                   avg_active_parallel_stmts,\r\n&gt;                   avg_queued_parallel_stmts\r\n&gt;              from sys.v_$rsrcmgrmetric_history\r\n&gt;             where end_time &gt;= to_date(:b_start_time, :date_fmt)\r\n&gt;               and end_time &lt;  to_date(:b_end_time, :date_fmt))))\r\n&gt;          group by bucket_id, consumer_group_id, consumer_group_name]';\r\n&gt; \r\n&gt;     \r\n&gt;     RMMETRICS_RT_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var is_awr                   number;\r\n&gt;       var p_contTab                prvt_awrv_instTab;\r\n&gt;       var b_start_time             varchar2(4000);\r\n&gt;       var b_end_time               varchar2(4000);\r\n&gt;       var p_bucket_interval        number;\r\n&gt;       var p_bucket_count           number;\r\n&gt;       var b_min_time               varchar2(4000);\r\n&gt;       var b_max_time               varchar2(4000);\r\n&gt;       var b_duration               number;\r\n&gt;       var date_fmt                 varchar2(4000);\r\n&gt;       var resource_manager_enabled number;\r\n&gt;       var num_cpus                 number;\r\n&gt;       begin\r\n&gt;         :is_awr                   := #is_awr#;\r\n&gt;         :p_contTab                := #p_contTab#;\r\n&gt;         :b_start_time             := '#b_start_time#';\r\n&gt;         :b_end_time               := '#b_end_time#';\r\n&gt;         :p_bucket_interval        := #p_bucket_interval#;\r\n&gt;         :p_bucket_count           := #p_bucket_count#;\r\n&gt;         :b_min_time               := '#b_min_time#';\r\n&gt;         :b_max_time               := '#b_max_time#';\r\n&gt;         :b_duration               := #b_duration#;\r\n&gt;         :date_fmt                 := '#date_fmt#';\r\n&gt;         :resource_manager_enabled := #resource_manager_enabled#;\r\n&gt;         :num_cpus                 := #num_cpus#;\r\n&gt;       end;\r\n&gt;       \/]';\r\n&gt; \r\n&gt;     \r\n&gt;     RMMETRICS_AWR CONSTANT VARCHAR2(32767) := q'[\r\n&gt;     select bucket_id,\r\n&gt;            consumer_group_id,\r\n&gt;            consumer_group_name,\r\n&gt;            case\r\n&gt;              when sum(avg_cpu_utilization) &gt; 100 then 100\r\n&gt;              else sum(avg_cpu_utilization) \r\n&gt;            end avg_cpu_utilization,\r\n&gt;            sum(cpu_usage_per_sec) cpu_usage_per_sec,\r\n&gt;            sum(avg_running_stmts) avg_running_stmts,\r\n&gt;            sum(avg_active_parallel_stmts) avg_active_parallel_stmts,\r\n&gt;            sum(avg_queued_parallel_stmts) avg_queued_parallel_stmts\r\n&gt;      from (\r\n&gt;         select bucket_id,\r\n&gt;                consumer_group_name,  \r\n&gt;                consumer_group_id,\r\n&gt;                -- avg\r\n&gt;                avg(avg_cpu_utilization) avg_cpu_utilization,\r\n&gt;                avg(cpu_usage_per_sec) cpu_usage_per_sec,\r\n&gt;                avg(avg_running_stmts) avg_running_stmts,\r\n&gt;                avg(avg_active_parallel_stmts) \r\n&gt;                   avg_active_parallel_stmts,\r\n&gt;                avg(avg_queued_parallel_stmts) \r\n&gt;                   avg_queued_parallel_stmts\r\n&gt;           from table(cast(:bucket_map as sys.prvt_awrv_mapTab)) b,\r\n&gt;                (select \/*+ no_merge *\/ nvl(m.snap_id, c.snap_id) as snap_id,\r\n&gt;                        nvl(m.instance_number, c.instance_number) \r\n&gt;                                                  as instance_number,\r\n&gt;                        m.consumer_group_id consumer_group_id,\r\n&gt;                        null consumer_group_name,\r\n&gt;                        case \r\n&gt;                          when c.cpu_limit is null or\r\n&gt;                               c.cpu_limit = 0 then\r\n&gt;                            m.avg_cpu_utilization\r\n&gt;                          else\r\n&gt;                            (m.avg_running_sessions\/c.cpu_limit)*100\r\n&gt;                          end                       as avg_cpu_utilization,\r\n&gt;                        m.cpu_consumed_time\/(m.intsize_csec*10) cpu_usage_per_sec,\r\n&gt;                        m.avg_running_sessions + m.avg_waiting_sessions\r\n&gt;                                                    as avg_running_stmts,\r\n&gt;                        m.avg_active_parallel_stmts as avg_active_parallel_stmts,\r\n&gt;                        m.avg_queued_parallel_stmts as avg_queued_parallel_stmts\r\n&gt;                   from awr_root_rsrc_metric m,\r\n&gt;                        (SELECT \/*+ no_merge *\/ \r\n&gt;                                nvl(s.snap_id, p.snap_id) as snap_id,\r\n&gt;                                nvl(s.instance_number, p.instance_number) \r\n&gt;                                                          as instance_number,\r\n&gt;                                CASE WHEN p.cpu_count IS NULL \r\n&gt;                                     THEN nvl(s.num_cpus, s.num_cpu_cores)\r\n&gt;                                     ELSE LEAST(p.cpu_count, \r\n&gt;                                                NVL(s.num_cpus, s.num_cpu_cores))\r\n&gt;                                END as cpu_limit\r\n&gt;                           FROM   \r\n&gt;                             (SELECT \/*+ NO_MERGE *\/ snap_id, instance_number,\r\n&gt;                                     MAX(num_cpus)      num_cpus,\r\n&gt;                                     MAX(num_cpu_cores) num_cpu_cores\r\n&gt;                                FROM \r\n&gt;                                  (SELECT snap_id, instance_number,\r\n&gt;                                          CASE\r\n&gt;                                            WHEN stat_name = 'NUM_CPUS' \r\n&gt;                                            THEN value\r\n&gt;                                            ELSE NULL\r\n&gt;                                          END as num_cpus,\r\n&gt;                                          CASE\r\n&gt;                                            WHEN stat_name = 'NUM_CPU_CORES'\r\n&gt;                                            THEN value\r\n&gt;                                            ELSE NULL\r\n&gt;                                          END as num_cpu_cores\r\n&gt;                                     FROM awr_root_osstat\r\n&gt;                                    WHERE stat_name IN \r\n&gt;                                            ('NUM_CPUS','NUM_CPU_CORES'))\r\n&gt;                                   GROUP BY snap_id, instance_number) s,\r\n&gt;                             (SELECT \/*+ NO_MERGE *\/ snap_id, instance_number,\r\n&gt;                                     MAX(\r\n&gt;                                       CASE \r\n&gt;                                         WHEN resource_plan IS NULL THEN NULL \r\n&gt;                                         ELSE TO_NUMBER(cpu_count)\r\n&gt;                                       END) as cpu_count\r\n&gt;                                FROM \r\n&gt;                                  (SELECT snap_id, instance_number,\r\n&gt;                                          CASE\r\n&gt;                                            WHEN parameter_name = 'cpu_count' \r\n&gt;                                            THEN value\r\n&gt;                                            ELSE NULL\r\n&gt;                                          END cpu_count,\r\n&gt;                                          CASE\r\n&gt;                                            WHEN parameter_name = \r\n&gt;                                                   'resource_manager_plan'\r\n&gt;                                            THEN value\r\n&gt;                                            ELSE NULL\r\n&gt;                                          END resource_plan\r\n&gt;                                     FROM awr_root_parameter\r\n&gt;                                    WHERE parameter_name IN \r\n&gt;                                           ('cpu_count', 'resource_manager_plan'))\r\n&gt;                                   GROUP BY snap_id, instance_number) p\r\n&gt;                          WHERE s.snap_id = p.snap_id\r\n&gt;                            AND s.instance_number = p.instance_number) c\r\n&gt;                  where m.dbid = :m_dbid \r\n&gt;                    and m.snap_id between :m_begin_snap and :m_end_snap\r\n&gt;                    and m.con_dbid = :l_con_dbid\r\n&gt;                    and m.snap_id = c.snap_id(+)\r\n&gt;                    and m.instance_number = c.instance_number(+)) y\r\n&gt;          where b.snap_id         = y.snap_id\r\n&gt;            and b.instance_number = y.instance_number\r\n&gt;          group by bucket_id, \r\n&gt;                y.instance_number, \r\n&gt;                y.consumer_group_id, \r\n&gt;                y.consumer_group_name)\r\n&gt;       group by bucket_id, \r\n&gt;                consumer_group_id,\r\n&gt;                consumer_group_name]'; \r\n&gt; \r\n&gt;     \r\n&gt;     RMMETRICS_AWR_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var is_awr            number;\r\n&gt;       var p_contTab         prvt_awrv_instTab;\r\n&gt;       var bucket_map        prvt_awrv_mapTab;\r\n&gt;       var m_dbid            number;\r\n&gt;       var m_begin_snap      number;\r\n&gt;       var m_end_snap        number;\r\n&gt;       var l_con_dbid        number;\r\n&gt;       var p_bucket_interval number;\r\n&gt;       var p_bucket_count    number;\r\n&gt;       var b_min_time        varchar2(4000);\r\n&gt;       var b_max_time        varchar2(4000);\r\n&gt;       var b_duration        number;\r\n&gt;       begin\r\n&gt;         :is_awr            := #is_awr#;\r\n&gt;         :p_contTab         := #p_contTab#;\r\n&gt;         :bucket_map        := #bucket_map#;\r\n&gt;         :m_dbid            := #m_dbid#;\r\n&gt;         :m_begin_snap      := #m_begin_snap#;\r\n&gt;         :m_end_snap        := #m_end_snap#;\r\n&gt;         :l_con_dbid        := #l_con_dbid#;\r\n&gt;         :p_bucket_interval := #p_bucket_interval#;\r\n&gt;         :p_bucket_count    := #p_bucket_count#;\r\n&gt;         :b_min_time        := '#b_min_time#';\r\n&gt;         :b_max_time        := '#b_max_time#';\r\n&gt;         :b_duration        := #b_duration#;\r\n&gt;       end;\r\n&gt;       \/]';\r\n&gt; \r\n&gt;   BEGIN\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME IS NULL) THEN\r\n&gt;       L_IS_REALTIME := 1;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_DBID := SYS_CONTEXT('USERENV','CON_DBID');\r\n&gt;     \r\n&gt;     \r\n&gt;     IF (DBID IS NULL) THEN\r\n&gt;       L_DBID := L_CON_DBID;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (END_TIME IS NULL) THEN\r\n&gt;       L_END_TIME := SYSDATE;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (START_TIME IS NULL) THEN\r\n&gt;       \r\n&gt;       IF (L_IS_REALTIME = 1) THEN\r\n&gt;         L_START_TIME := L_END_TIME - 1\/24;\r\n&gt;       \r\n&gt;       ELSE\r\n&gt;         L_START_TIME := L_END_TIME - 1;\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (BUCKET_COUNT IS NULL) THEN\r\n&gt;       L_BUCKET_COUNT := 60;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME = 1) THEN\r\n&gt;       \r\n&gt;       \r\n&gt;       BEGIN\r\n&gt;         SELECT COUNT(VALUE)\r\n&gt;           INTO L_RESOURCE_MANAGER_ENABLED\r\n&gt;           FROM SYS.V_$SYSTEM_PARAMETER2        \r\n&gt;          WHERE NAME = 'resource_manager_plan'\r\n&gt;            AND (VALUE IS NOT NULL AND VALUE != '');\r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           L_RESOURCE_MANAGER_ENABLED := 0;\r\n&gt;       END;\r\n&gt; \r\n&gt;       \r\n&gt;       BEGIN\r\n&gt;         SELECT SUM(NUM_CPUS)\r\n&gt;           INTO L_NUM_CPUS\r\n&gt;           FROM (\r\n&gt;             SELECT HOST_NAME, SUM(NUM_CPUS) AS NUM_CPUS\r\n&gt;               FROM TABLE(GV$(CURSOR(\r\n&gt;                      SELECT I.INSTANCE_NUMBER AS INST_ID, I.HOST_NAME,\r\n&gt;                             NVL(OS.NUM_CPUS, OS.NUM_CPU_CORES) AS NUM_CPUS\r\n&gt;                        FROM SYS.V$INSTANCE I, \r\n&gt;                             (SELECT MAX(DECODE(STAT_NAME, 'NUM_CPUS', \r\n&gt;                                                VALUE, NULL)) AS NUM_CPUS,\r\n&gt;                                     MAX(DECODE(STAT_NAME, 'NUM_CPU_CORES', \r\n&gt;                                                VALUE, NULL)) AS NUM_CPU_CORES\r\n&gt;                                FROM SYS.V$OSSTAT\r\n&gt;                               WHERE STAT_NAME IN ('NUM_CPUS', 'NUM_CPU_CORES')\r\n&gt;                             ) OS)))\r\n&gt;             GROUP BY HOST_NAME);\r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           L_NUM_CPUS := 0;\r\n&gt;       END;\r\n&gt; \r\n&gt;       \r\n&gt;       L_QRY := RMMETRICS_COMMON;\r\n&gt;    \r\n&gt;       \r\n&gt;       L_QRY := REPLACE(L_QRY,'#GENERATE_BUCKETS_TAG#', \r\n&gt;                               GENERATE_BUCKETS_TAG2);\r\n&gt;       L_QRY := REPLACE(L_QRY,'#GENERATE_BUCKETID_TAG#', \r\n&gt;                               GENERATE_BUCKETID_TAG);\r\n&gt;       L_QRY := REPLACE(L_QRY,'#GENERATE_METRICS_BUCKETID#', \r\n&gt;                               RMMETRICS_RT);\r\n&gt; \r\n&gt;       IF (SHOW_SQL = 1) THEN\r\n&gt;         \r\n&gt;         L_SQL := RMMETRICS_RT_HEADER;\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := REPLACE(L_SQL, '#is_awr#', 0);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_contTab#', 'null');\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_start_time#',\r\n&gt;                                  TO_CHAR(L_START_TIME, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_end_time#',\r\n&gt;                                  TO_CHAR(L_END_TIME, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_count#', L_BUCKET_COUNT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_interval#', L_BUCKET_INTERVAL);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_min_time#', TO_CHAR(L_START_TIME, \r\n&gt;                                                         DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_max_time#', TO_CHAR(L_END_TIME, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_duration#',\r\n&gt;                                  ROUND((L_END_TIME - L_START_TIME)*DTOS));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#date_fmt#', DATE_FMT);\r\n&gt; \r\n&gt;         L_SQL := REPLACE(L_SQL, '#resource_manager_enabled#', \r\n&gt;                                 L_RESOURCE_MANAGER_ENABLED);\r\n&gt; \r\n&gt;         L_SQL := REPLACE(L_SQL, '#num_cpus#', L_NUM_CPUS);\r\n&gt; \r\n&gt;         L_RESULT_XML := I_SHOW_SQL_XML('rsrcmgrmetric', L_SQL);\r\n&gt; \r\n&gt;       ELSE\r\n&gt;         \r\n&gt;         EXECUTE IMMEDIATE L_QRY\r\n&gt;            INTO L_RESULT_XML\r\n&gt;           USING 0, L_CG_MAP,\r\n&gt;                 TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT, \r\n&gt;                 TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT, \r\n&gt;                 TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT, \r\n&gt;                 TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT, \r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_RESOURCE_MANAGER_ENABLED,\r\n&gt;                 L_NUM_CPUS, L_NUM_CPUS,\r\n&gt;                 TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT,\r\n&gt;                 TO_CHAR(L_END_TIME, DATE_FMT), DATE_FMT,\r\n&gt;                 \r\n&gt;                 L_BUCKET_INTERVAL, L_BUCKET_COUNT,\r\n&gt;                 TO_CHAR(L_START_TIME,DATE_FMT), TO_CHAR(L_END_TIME,DATE_FMT),\r\n&gt;                 (L_END_TIME - L_START_TIME)*DTOS;\r\n&gt;       END IF;\r\n&gt;     \r\n&gt;     \r\n&gt;     ELSE\r\n&gt; \r\n&gt;       IF (L_AWR_PERIOD IS NOT NULL) THEN\r\n&gt;         \r\n&gt;         CREATE_BUCKET_SNAP_MAP(L_AWR_PERIOD, L_BUCKET_MAP, \r\n&gt;                                L_BUCKET_COUNT, L_BUCKET_INTERVAL);\r\n&gt; \r\n&gt;         L_CON_ID := SYS_CONTEXT('USERENV','CON_ID');\r\n&gt; \r\n&gt;         CREATE_CONSUMER_GROUP_MAP(L_CON_ID, L_AWR_PERIOD, L_CG_MAP);\r\n&gt; \r\n&gt;         \r\n&gt;         L_QRY := RMMETRICS_COMMON;\r\n&gt;    \r\n&gt;         \r\n&gt;         L_QRY := REPLACE(L_QRY,'#GENERATE_BUCKETS_TAG#', \r\n&gt;                                 GENERATE_BUCKETS_TAG2);\r\n&gt;         L_QRY := REPLACE(L_QRY,'#GENERATE_BUCKETID_TAG#', \r\n&gt;                                 GENERATE_BUCKETID_TAG);\r\n&gt;         L_QRY := REPLACE(L_QRY,'#GENERATE_METRICS_BUCKETID#', \r\n&gt;                                 RMMETRICS_AWR);\r\n&gt; \r\n&gt;         \r\n&gt;         \r\n&gt;         IF (SYS_CONTEXT('USERENV','CON_ID') &gt; 2) THEN\r\n&gt;           L_AWR_VIEW_PREFIX := \r\n&gt;             DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(L_AWR_PERIOD.M_MIN_TIME);\r\n&gt; \r\n&gt;           DBMS_SQLTUNE_UTIL1.REPLACE_AWR_VIEW_PREFIX(L_QRY, L_AWR_VIEW_PREFIX);\r\n&gt;         END IF;\r\n&gt; \r\n&gt;         IF (SHOW_SQL = 1) THEN\r\n&gt;           \r\n&gt;           L_SQL := RMMETRICS_AWR_HEADER;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := REPLACE(L_SQL, '#is_awr#', 1);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#p_contTab#', '');\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_map#', '');\r\n&gt;           L_SQL := REPLACE(L_SQL, '#m_dbid#', L_AWR_PERIOD.M_DBID);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#m_begin_snap#', L_AWR_PERIOD.M_BEGIN_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#m_end_snap#', L_AWR_PERIOD.M_END_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#l_con_dbid#', L_CON_DBID);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#p_bucket_count#', L_BUCKET_COUNT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#p_bucket_interval#', \r\n&gt;                                    L_BUCKET_INTERVAL);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#b_min_time#', \r\n&gt;                                    TO_CHAR(L_AWR_PERIOD.M_MIN_TIME, DATE_FMT));\r\n&gt;           L_SQL := REPLACE(L_SQL, '#b_max_time#', \r\n&gt;                                    TO_CHAR(L_AWR_PERIOD.M_MAX_TIME, DATE_FMT));\r\n&gt;           L_SQL := REPLACE(L_SQL, '#b_duration#',\r\n&gt;                                    ROUND(INTERVAL_TO_SECOND(\r\n&gt;                                            L_AWR_PERIOD.M_MAX_TIME, \r\n&gt;                                            L_AWR_PERIOD.M_MIN_TIME)));\r\n&gt; \r\n&gt;           L_RESULT_XML := I_SHOW_SQL_XML('rsrcmgrmetric', L_SQL);\r\n&gt; \r\n&gt;         ELSE\r\n&gt;           EXECUTE IMMEDIATE L_QRY\r\n&gt;            INTO L_RESULT_XML\r\n&gt;           USING 1, \r\n&gt;                 L_CG_MAP, \r\n&gt;                 L_BUCKET_MAP,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_CON_DBID,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_COUNT,\r\n&gt;                 TO_CHAR(L_AWR_PERIOD.M_MIN_TIME, DATE_FMT),\r\n&gt;                 TO_CHAR(L_AWR_PERIOD.M_MAX_TIME, DATE_FMT),\r\n&gt;                 ROUND(\r\n&gt;                   INTERVAL_TO_SECOND(\r\n&gt;                     L_AWR_PERIOD.M_MAX_TIME, L_AWR_PERIOD.M_MIN_TIME));\r\n&gt;         END IF;\r\n&gt;       END IF;\r\n&gt; \r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_RESULT_XML;\r\n&gt; \r\n&gt;   END GET_RMMETRICS_XML;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_SQL_N_PARSE_TIME_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME_UTC  IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME_UTC    IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt; \r\n&gt;     \r\n&gt;     L_QRY VARCHAR2(32767) := NULL;\r\n&gt;     L_SQL CLOB;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RESULT_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_IS_REALTIME     NUMBER             := IS_REALTIME;\r\n&gt;     L_DBID            NUMBER             := DBID;\r\n&gt;     L_START_TIME_UTC  DATE               := START_TIME_UTC;\r\n&gt;     L_END_TIME_UTC    DATE               := END_TIME_UTC;\r\n&gt;     L_BUCKET_COUNT    NUMBER             := BUCKET_COUNT;\r\n&gt;     L_BUCKET_INTERVAL NUMBER             := BUCKET_INTERVAL;\r\n&gt;     L_AWR_PERIOD      PRVT_AWRV_METADATA := AWR_PERIOD;\r\n&gt;     L_AWR_VIEW_PREFIX VARCHAR2(20)       := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_DBID NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     SQL_AND_PARSE_TIME_RT CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       with base_data as (\r\n&gt;         SELECT bucket_id,\r\n&gt;                SUM(parse_time_sec) \/ :p_bucket_interval AS parse_aas,\r\n&gt;                SUM(sql_exec_time_sec) \/ :p_bucket_interval AS sql_exec_aas,\r\n&gt;                SUM(plsql_exec_time_sec) \/ :p_bucket_interval AS plsql_exec_aas\r\n&gt;           FROM TABLE(GV$(CURSOR(\r\n&gt;                  SELECT bucket_id, \r\n&gt;                         SUM(parse_time_usec) \/ 1000000    as parse_time_sec,\r\n&gt;                         SUM(sql_exec_time_usec) \/ 1000000 as sql_exec_time_sec,\r\n&gt;                         SUM(plsql_exec_time_usec) \/ 1000000 \r\n&gt;                                                           as plsql_exec_time_sec\r\n&gt;                    FROM (\r\n&gt;                          SELECT TRUNC(((\r\n&gt;                                   cast(sample_time_utc as date) - \r\n&gt;                                   to_date(:b_start_time_utc, :date_fmt)) \r\n&gt;                                   * 86400 ) \/ :p_bucket_interval) + 1 \r\n&gt;                                     as bucket_id,\r\n&gt;                                 CASE \r\n&gt;                                   WHEN (session_type = 'FOREGROUND' \r\n&gt;                                         AND in_parse = 'Y') \r\n&gt;                                   THEN usecs_per_row \r\n&gt;                                   ELSE 0 \r\n&gt;                                 END as parse_time_usec,\r\n&gt;                                 CASE \r\n&gt;                                   WHEN (session_type = 'FOREGROUND' \r\n&gt;                                         AND in_sql_execution = 'Y') \r\n&gt;                                   THEN usecs_per_row \r\n&gt;                                   ELSE 0 \r\n&gt;                                 END as sql_exec_time_usec,\r\n&gt;                                 CASE \r\n&gt;                                   WHEN (session_type = 'FOREGROUND' \r\n&gt;                                         AND in_plsql_execution = 'Y') \r\n&gt;                                   THEN usecs_per_row \r\n&gt;                                   ELSE 0 \r\n&gt;                                 END as plsql_exec_time_usec\r\n&gt;                            FROM sys.v_$active_session_history \r\n&gt;                           WHERE sample_time_utc &gt; to_timestamp(\r\n&gt;                                                     :b_start_time_utc,\r\n&gt;                                                     :date_fmt) \r\n&gt;                             AND sample_time_utc &lt;= to_timestamp(\r\n&gt;                                                     :b_end_time_utc,:date_fmt)\r\n&gt;                         )\r\n&gt;                   WHERE bucket_id &gt; 0\r\n&gt;                   GROUP BY bucket_id\r\n&gt;                )))\r\n&gt;         GROUP BY bucket_id\r\n&gt;         ORDER BY bucket_id)\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes('sql' as \"name\"),\r\n&gt;                xmlelement(\"buckets\",\r\n&gt;                  xmlattributes(:p_bucket_interval as \"bucket_interval\",\r\n&gt;                                :p_bucket_count    as \"bucket_count\",\r\n&gt;                                :b_start_time_utc  as \"start_time_utc\",\r\n&gt;                                :b_end_time_utc    as \"end_time_utc\",\r\n&gt;                                :b_duration        as \"duration\"),\r\n&gt;                  xmlagg(xmlelement(\"bucket\",\r\n&gt;                           xmlattributes(bucket_id    as \"bucket_id\"),\r\n&gt;                   xmlforest(round(parse_aas, 2)      as \"parse_aas\",\r\n&gt;                             round(sql_exec_aas, 2)   as \"sql_aas\",\r\n&gt;                             round(plsql_exec_aas, 2) as \"plsql_aas\")))))\r\n&gt;         from base_data\r\n&gt;        where (parse_aas + sql_exec_aas + plsql_exec_aas) &gt; 0]';\r\n&gt; \r\n&gt;     \r\n&gt;     SQL_AND_PARSE_TIME_RT_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;     var date_fmt          varchar2(32);\r\n&gt;     var b_start_time_utc  varchar2(32);\r\n&gt;     var b_end_time_utc    varchar2(32);\r\n&gt;     var p_bucket_interval number;\r\n&gt;     var p_bucket_count    number;\r\n&gt;     var b_duration        number;\r\n&gt;     begin \r\n&gt;       :date_fmt            := '#date_fmt#';\r\n&gt;       :b_start_time_utc    := '#b_start_time_utc#';\r\n&gt;       :b_end_time_utc      := '#b_end_time_utc#';\r\n&gt;       :p_bucket_interval   := #p_bucket_interval#;\r\n&gt;       :p_bucket_count      := #p_bucket_count#;\r\n&gt;       :b_duration          := #b_duration#;\r\n&gt;     end;\r\n&gt;     \/]';\r\n&gt; \r\n&gt; \r\n&gt;     \r\n&gt;     SQL_AND_PARSE_TIME_AWR CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       WITH \r\n&gt;         snaps AS\r\n&gt;           (SELECT \/*+ no_merge *\/ s.instance_number, s.snap_id, \r\n&gt;                   CASE \r\n&gt;                     WHEN p.open_time_tz &gt; s.begin_interval_time_tz \r\n&gt;                     THEN CAST((p.open_time_tz at time zone 'UTC') AS DATE)\r\n&gt;                     ELSE CAST((s.begin_interval_time_tz at time zone 'UTC') \r\n&gt;                               AS DATE)\r\n&gt;                   END as begin_time_utc,\r\n&gt;                   CAST((s.end_interval_time_tz at time zone 'UTC') AS DATE) \r\n&gt;                       as end_time_utc,\r\n&gt;                   CASE \r\n&gt;                     WHEN p.open_time_tz &gt; s.begin_interval_time_tz \r\n&gt;                     THEN 0 \r\n&gt;                     ELSE 1 \r\n&gt;                   END as diff_logic\r\n&gt;              FROM awr_root_snapshot s, awr_root_pdb_in_snap p\r\n&gt;             WHERE s.dbid = :dbid\r\n&gt;               AND p.dbid = :dbid\r\n&gt;               AND s.instance_number = p.instance_number\r\n&gt;               AND s.snap_id = p.snap_id\r\n&gt;               AND s.snap_id &gt;= :begin_snap_id\r\n&gt;               AND s.snap_id &lt;= :end_snap_id\r\n&gt;               AND p.snap_id &gt;= :begin_snap_id\r\n&gt;               AND p.snap_id &lt;= :end_snap_id\r\n&gt;           ),\r\n&gt;         base_stats AS\r\n&gt;           (SELECT \/*+ no_merge *\/ s.instance_number, s.snap_id, s.stat_name, \r\n&gt;                   s.value \/ 1000000 as value_secs \r\n&gt;              FROM awr_root_con_sys_time_model s\r\n&gt;             WHERE s.dbid = :dbid\r\n&gt;               AND s.snap_id &gt;= :begin_snap_id\r\n&gt;               AND s.snap_id &lt;= :end_snap_id\r\n&gt;               AND s.stat_name IN ('parse time elapsed', \r\n&gt;                                   'sql execute elapsed time', \r\n&gt;                                   'PL\/SQL execution elapsed time')\r\n&gt;           ),\r\n&gt;         diff_stats AS \r\n&gt;           (SELECT estat.instance_number, estat.snap_id, estat.stat_name, \r\n&gt;                   s.begin_time_utc, s.end_time_utc,\r\n&gt;                   GREATEST(estat.value_secs - \r\n&gt;                            (s.diff_logic * NVL(bstat.value_secs,0)),0) \/\r\n&gt;                   ((s.end_time_utc - s.begin_time_utc)*86400)\r\n&gt;                   as value_per_sec\r\n&gt;              FROM base_stats estat, snaps s, base_stats bstat\r\n&gt;             WHERE estat.instance_number = s.instance_number\r\n&gt;               AND estat.snap_id = s.snap_id\r\n&gt;               AND estat.instance_number = bstat.instance_number(+)\r\n&gt;               AND estat.snap_id-1 = bstat.snap_id(+)\r\n&gt;               AND estat.stat_name = bstat.stat_name(+)\r\n&gt;           ),\r\n&gt;         buckets AS\r\n&gt;           (SELECT level as bucket_id,\r\n&gt;                   to_date(:begin_time_utc, :date_format) + \r\n&gt;                   ((level -1) * :bucket_interval_secs\/86400) as begin_time_utc,\r\n&gt;                   to_date(:begin_time_utc, :date_format) + \r\n&gt;                   (level * :bucket_interval_secs\/86400)      as end_time_utc\r\n&gt;              FROM sys.dual\r\n&gt;            CONNECT BY level &lt;= (to_date(:end_time_utc, :date_format) - \r\n&gt;                                 to_date(:begin_time_utc, :date_format)) \r\n&gt;                                * 86400 \/ :bucket_interval_secs\r\n&gt;           ),\r\n&gt;         final_stats AS\r\n&gt;           (SELECT bucket_id, stat_name, \r\n&gt;                   SUM(value_per_sec * bucket_ratio) as aas\r\n&gt;              FROM (\r\n&gt;                    SELECT b.bucket_id, s.stat_name, s.value_per_sec, \r\n&gt;                           (LEAST(s.end_time_utc, b.end_time_utc) - \r\n&gt;                            GREATEST(s.begin_time_utc, b.begin_time_utc))\r\n&gt;                           \/ (b.end_time_utc - b.begin_time_utc) as bucket_ratio\r\n&gt;                      FROM diff_stats s, buckets b\r\n&gt;                     WHERE s.value_per_sec &gt; 0\r\n&gt;                       AND b.end_time_utc &gt; b.begin_time_utc\r\n&gt;                       AND s.begin_time_utc &lt; b.end_time_utc\r\n&gt;                       AND s.end_time_utc &gt; b.begin_time_utc\r\n&gt;                   )\r\n&gt;            GROUP BY bucket_id, stat_name\r\n&gt;           ),\r\n&gt;         pivoted_stats AS\r\n&gt;           (SELECT * FROM final_stats\r\n&gt;            PIVOT(SUM(aas) FOR stat_name IN \r\n&gt;                              ('parse time elapsed' as parse_aas,\r\n&gt;                               'sql execute elapsed time' as sql_exec_aas,\r\n&gt;                               'PL\/SQL execution elapsed time' as plsql_exec_aas)\r\n&gt;                 )\r\n&gt;           ),\r\n&gt;         base_data AS\r\n&gt;           (SELECT bucket_id, parse_aas, sql_exec_aas, plsql_exec_aas\r\n&gt;              FROM pivoted_stats\r\n&gt;            ORDER BY bucket_id)\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes('sql' as \"name\"),\r\n&gt;                xmlelement(\"buckets\",\r\n&gt;                  xmlattributes(:bucket_interval_secs as \"bucket_interval\",\r\n&gt;                                :bucket_count         as \"bucket_count\",\r\n&gt;                                :begin_time_utc       as \"start_time_utc\",\r\n&gt;                                :end_time_utc         as \"end_time_utc\",\r\n&gt;                                :duration             as \"duration\"),\r\n&gt;                  xmlagg(xmlelement(\"bucket\",\r\n&gt;                           xmlattributes(bucket_id    as \"bucket_id\"),\r\n&gt;                   xmlforest(round(parse_aas, 2)      as \"parse_aas\",\r\n&gt;                             round(sql_exec_aas, 2)   as \"sql_aas\",\r\n&gt;                             round(plsql_exec_aas, 2) as \"plsql_aas\")))))\r\n&gt;         from base_data\r\n&gt;        where (parse_aas + sql_exec_aas + plsql_exec_aas) &gt; 0]';\r\n&gt; \r\n&gt;     \r\n&gt;     SQL_AND_PARSE_TIME_AWR_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var dbid                 number;\r\n&gt;       var begin_snap_id        number;\r\n&gt;       var end_snap_id          number;\r\n&gt;       var begin_time_utc       varchar2(4000);\r\n&gt;       var end_time_utc         varchar2(4000);\r\n&gt;       var date_format          varchar2(32);\r\n&gt;       var bucket_interval_secs number;\r\n&gt;       var bucket_count         number;\r\n&gt;       var duration             number;\r\n&gt; \r\n&gt;       begin\r\n&gt;         :dbid                 := #dbid#;\r\n&gt;         :begin_snap_id        := #begin_snap_id#;\r\n&gt;         :end_snap_id          := #end_snap_id#;\r\n&gt;         :begin_time_utc       := '#begin_time_utc#';\r\n&gt;         :end_time_utc         := '#end_time_utc#';\r\n&gt;         :date_format          := '#date_format#';\r\n&gt;         :bucket_interval_secs := #bucket_interval_secs#;\r\n&gt;         :bucket_count         := #bucket_count#;\r\n&gt;         :duration             := #duration#;\r\n&gt;     end;\r\n&gt;     \/]';\r\n&gt; \r\n&gt;   BEGIN\r\n&gt;     \r\n&gt;     IF (IS_REALTIME IS NULL) THEN\r\n&gt;       L_IS_REALTIME := 1;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_DBID := SYS_CONTEXT('USERENV','CON_DBID');\r\n&gt; \r\n&gt;     IF (DBID IS NULL) THEN\r\n&gt;       L_DBID := L_CON_DBID;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (END_TIME_UTC IS NULL) THEN\r\n&gt;       L_END_TIME_UTC := CAST(SYS_EXTRACT_UTC(SYSTIMESTAMP) AS DATE);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (START_TIME_UTC IS NULL) THEN\r\n&gt;       \r\n&gt;       IF (L_IS_REALTIME = 1) THEN\r\n&gt;         L_START_TIME_UTC := L_END_TIME_UTC - 1\/24;\r\n&gt;       \r\n&gt;       ELSE\r\n&gt;         L_START_TIME_UTC := L_END_TIME_UTC - 1;\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (BUCKET_COUNT IS NULL) THEN\r\n&gt;       L_BUCKET_COUNT := 60;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME = 1) THEN\r\n&gt;       \r\n&gt;       L_QRY := SQL_AND_PARSE_TIME_RT;\r\n&gt;     \r\n&gt;       \r\n&gt;       IF (SHOW_SQL = 1) THEN\r\n&gt; \r\n&gt;         L_SQL := SQL_AND_PARSE_TIME_RT_HEADER;\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := REPLACE(L_SQL, '#date_fmt#', DATE_FMT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_start_time_utc#',\r\n&gt;                                  TO_CHAR(L_START_TIME_UTC, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_end_time_utc#',\r\n&gt;                                  TO_CHAR(L_END_TIME_UTC, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_count#', L_BUCKET_COUNT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_interval#', L_BUCKET_INTERVAL);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_duration#',\r\n&gt;                                  ROUND(L_END_TIME_UTC-L_START_TIME_UTC)*DTOS);\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;         \r\n&gt;         L_RESULT_XML := I_SHOW_SQL_XML('sql_and_parse_time', L_SQL);\r\n&gt; \r\n&gt;       ELSE\r\n&gt;         \r\n&gt;         EXECUTE IMMEDIATE L_QRY\r\n&gt;                      INTO L_RESULT_XML\r\n&gt;                     USING L_BUCKET_INTERVAL,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           \r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           \r\n&gt;                           L_BUCKET_INTERVAL, L_BUCKET_COUNT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT),\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT),\r\n&gt;                           ROUND((L_END_TIME_UTC - L_START_TIME_UTC)*DTOS);\r\n&gt;       END IF;\r\n&gt;  \r\n&gt;     \r\n&gt;     ELSE\r\n&gt;       IF (L_AWR_PERIOD IS NOT NULL) THEN\r\n&gt; \r\n&gt;         \r\n&gt;         L_QRY := SQL_AND_PARSE_TIME_AWR;\r\n&gt; \r\n&gt;         \r\n&gt;         \r\n&gt;         IF (SYS_CONTEXT('USERENV','CON_ID') &gt; 2) THEN\r\n&gt;           L_AWR_VIEW_PREFIX := \r\n&gt;             DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(L_AWR_PERIOD.M_MIN_TIME);\r\n&gt; \r\n&gt;           DBMS_SQLTUNE_UTIL1.REPLACE_AWR_VIEW_PREFIX(L_QRY, L_AWR_VIEW_PREFIX);\r\n&gt;         END IF;\r\n&gt; \r\n&gt;         IF (SHOW_SQL = 1) THEN\r\n&gt;           \r\n&gt;           L_SQL := SQL_AND_PARSE_TIME_AWR_HEADER;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := REPLACE(L_SQL, '#dbid#', L_AWR_PERIOD.M_DBID);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#begin_snap_id#', L_AWR_PERIOD.M_BEGIN_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#end_snap_id#', L_AWR_PERIOD.M_END_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#begin_time_utc#', \r\n&gt;                                    TO_CHAR(L_START_TIME_UTC, DATE_FMT)); \r\n&gt;           L_SQL := REPLACE(L_SQL, '#end_time_utc#', \r\n&gt;                                    TO_CHAR(L_END_TIME_UTC, DATE_FMT));\r\n&gt;           L_SQL := REPLACE(L_SQL, '#date_format#', DATE_FMT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_count#', L_BUCKET_COUNT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_interval_secs#', \r\n&gt;                                    L_BUCKET_INTERVAL);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#duration#', ROUND(INTERVAL_TO_SECOND(\r\n&gt;                                    L_END_TIME_UTC, L_START_TIME_UTC)));\r\n&gt; \r\n&gt;           L_RESULT_XML := I_SHOW_SQL_XML('sql_and_parse_time', L_SQL);\r\n&gt; \r\n&gt;         ELSE\r\n&gt;           EXECUTE IMMEDIATE L_QRY\r\n&gt;            INTO L_RESULT_XML\r\n&gt;           USING L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_COUNT,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC,DATE_FMT),\r\n&gt;                 TO_CHAR(L_END_TIME_UTC,DATE_FMT),\r\n&gt;                 ROUND(\r\n&gt;                   INTERVAL_TO_SECOND(L_END_TIME_UTC, L_START_TIME_UTC));\r\n&gt; \r\n&gt;         END IF;\r\n&gt; \r\n&gt;       END IF;\r\n&gt; \r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_RESULT_XML;\r\n&gt; \r\n&gt;   END GET_SQL_N_PARSE_TIME_XML;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_WAIT_TIME_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME_UTC  IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME_UTC    IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt; \r\n&gt;     \r\n&gt;     L_QRY VARCHAR2(32767) := NULL;\r\n&gt;     L_SQL CLOB;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RESULT_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_IS_REALTIME     NUMBER             := IS_REALTIME;\r\n&gt;     L_DBID            NUMBER             := DBID;\r\n&gt;     L_START_TIME_UTC  DATE               := START_TIME_UTC;\r\n&gt;     L_END_TIME_UTC    DATE               := END_TIME_UTC;\r\n&gt;     L_BUCKET_COUNT    NUMBER             := BUCKET_COUNT;\r\n&gt;     L_BUCKET_INTERVAL NUMBER             := BUCKET_INTERVAL;\r\n&gt;     L_AWR_PERIOD      PRVT_AWRV_METADATA := AWR_PERIOD;\r\n&gt;     L_AWR_VIEW_PREFIX VARCHAR2(20)       := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_DBID NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     WAIT_TIME_RT CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       WITH \r\n&gt;         inst_data AS\r\n&gt;           (SELECT inst_id, bucket_id, metric_name, value\r\n&gt;              FROM TABLE(GV$(CURSOR(\r\n&gt;                     SELECT USERENV('INSTANCE') as inst_id,\r\n&gt;                            bucket_id, metric_name,\r\n&gt;                            SUM(value*bucket_ratio) as value\r\n&gt;                       FROM (\r\n&gt;                             SELECT USERENV('INSTANCE') as inst_id,\r\n&gt;                                    buckets.bucket_id,\r\n&gt;                                    met.metric_name,\r\n&gt;                                    met.value,\r\n&gt;                                    (LEAST(met.end_time_utc, \r\n&gt;                                           buckets.end_time_utc) - \r\n&gt;                                     GREATEST(met.begin_time_utc, \r\n&gt;                                              buckets.begin_time_utc)) \/ \r\n&gt;                                     (met.end_time_utc - met.begin_time_utc) \r\n&gt;                                       as bucket_ratio\r\n&gt;                              FROM ( \r\n&gt;                                    SELECT \/*+ no_merge *\/ USERENV('INSTANCE') \r\n&gt;                                                               as inst_id,\r\n&gt;                                           m.begin_time-tz.time_zone \r\n&gt;                                                               as begin_time_utc,\r\n&gt;                                           m.end_time-tz.time_zone \r\n&gt;                                                               as end_time_utc,\r\n&gt;                                           CASE\r\n&gt;                                             WHEN m.metric_name = \r\n&gt;                                                    'Average Active Sessions'\r\n&gt;                                               THEN 'DBTime'\r\n&gt;                                             ELSE 'CPU'\r\n&gt;                                           END as metric_name,\r\n&gt;                                           CASE \r\n&gt;                                             WHEN m.metric_name = \r\n&gt;                                                    'CPU Usage Per Sec' \r\n&gt;                                             THEN m.value*m.intsize_csec\/10000\r\n&gt;                                             ELSE m.value*m.intsize_csec\/100\r\n&gt;                                           END as value\r\n&gt;                                      FROM sys.v_$con_sysmetric_history m,\r\n&gt;                                           (SELECT ROUND(\r\n&gt;                                                     (cast(latest_sample_time \r\n&gt;                                                           as date) - \r\n&gt;                                                      cast(sys_extract_utc(\r\n&gt;                                                             systimestamp) \r\n&gt;                                                           as date))\r\n&gt;                                                     *900,0)\/900 as time_zone\r\n&gt;                                              FROM sys.v_$ash_info) tz\r\n&gt;                                     WHERE m.group_id = 18\r\n&gt;                                       AND m.metric_name IN \r\n&gt;                                             ('Average Active Sessions',\r\n&gt;                                              'CPU Usage Per Sec')\r\n&gt;                                       AND m.begin_time-tz.time_zone &lt; \r\n&gt;                                           to_date(:b_end_time_utc, :date_fmt)\r\n&gt;                                       AND m.end_time-tz.time_zone &gt;= \r\n&gt;                                           to_date(:b_start_time_utc, :date_fmt)\r\n&gt;                                   ) met,    \r\n&gt;                                   ( \r\n&gt;                                    SELECT \/*+ no_merge *\/ level as bucket_id,\r\n&gt;                                           to_date(:b_start_time_utc,:date_fmt) +\r\n&gt;                                           ((level -1) * :p_bucket_interval \r\n&gt;                                            \/ 86400) as begin_time_utc,\r\n&gt;                                           to_date(:b_start_time_utc,:date_fmt) +\r\n&gt;                                           (level * :p_bucket_interval \/ 86400) \r\n&gt;                                                     as end_time_utc\r\n&gt;                                      FROM sys.v_$instance \r\n&gt;                                           -- note: DUAL not allowed inside GV$\r\n&gt;                                    CONNECT BY level &lt;= \r\n&gt;                                               (to_date(:b_end_time_utc,\r\n&gt;                                                        :date_fmt) - \r\n&gt;                                                to_date(:b_start_time_utc, \r\n&gt;                                                        :date_fmt)) \r\n&gt;                                               * 86400 \/ :p_bucket_interval\r\n&gt;                                   ) buckets\r\n&gt;                             WHERE buckets.begin_time_utc &lt; met.end_time_utc\r\n&gt;                               AND buckets.end_time_utc &gt; met.begin_time_utc\r\n&gt;                            )\r\n&gt;                     GROUP BY bucket_id, metric_name\r\n&gt;                     UNION ALL\r\n&gt;                     SELECT USERENV('INSTANCE') as inst_id,\r\n&gt;                            bucket_id,\r\n&gt;                            metric_name,\r\n&gt;                            SUM(value) as value\r\n&gt;                       FROM (\r\n&gt;                             SELECT TRUNC(((cast(sample_time_utc as date) - \r\n&gt;                                                 to_date(:b_start_time_utc, \r\n&gt;                                                         :date_fmt)) * 86400) \/ \r\n&gt;                                    :p_bucket_interval) + 1 AS bucket_id,\r\n&gt;                                    DECODE(session_state, 'WAITING', wait_class, \r\n&gt;                                                          'ASH_CPU') \r\n&gt;                                                            AS metric_name,\r\n&gt;                                    CASE \r\n&gt;                                      WHEN session_type = 'FOREGROUND' \r\n&gt;                                      THEN usecs_per_row\/1000000 \r\n&gt;                                      ELSE 0 \r\n&gt;                                    END AS value\r\n&gt;                               FROM sys.v_$active_session_history\r\n&gt;                              WHERE sample_time_utc &gt;= \r\n&gt;                                    to_timestamp(:b_start_time_utc, :date_fmt)\r\n&gt;                                AND sample_time_utc &lt; \r\n&gt;                                    to_timestamp(:b_end_time_utc, :date_fmt)\r\n&gt;                            )\r\n&gt;                     WHERE bucket_id &gt; 0\r\n&gt;                     GROUP BY bucket_id, metric_name\r\n&gt;           )))),\r\n&gt;         db_data AS \r\n&gt;           (SELECT bucket_id, metric_name, \r\n&gt;                   SUM(value) as value\r\n&gt;              FROM inst_data\r\n&gt;            GROUP BY bucket_id, metric_name\r\n&gt;           ),\r\n&gt;         wait_for_cpu AS\r\n&gt;           (SELECT bucket_id, 'wait for CPU' as metric_name, \r\n&gt;                   GREATEST(SUM(DECODE(metric_name, 'ASH_CPU', value, \r\n&gt;                                       -value)), 0)    AS value\r\n&gt;              FROM db_data\r\n&gt;             WHERE metric_name IN ('CPU', 'ASH_CPU')\r\n&gt;            GROUP BY bucket_id\r\n&gt;           ),\r\n&gt;         final_data AS\r\n&gt;           (SELECT bucket_id, metric_name,\r\n&gt;                   value \/ :p_bucket_interval    AS value\r\n&gt;              FROM db_data\r\n&gt;             WHERE metric_name &lt;&gt; 'ASH_CPU'\r\n&gt;               AND value &gt; 0\r\n&gt;            UNION ALL\r\n&gt;            SELECT bucket_id, metric_name, \r\n&gt;                   value \/:p_bucket_interval     AS value\r\n&gt;              FROM wait_for_cpu\r\n&gt;             WHERE value &gt; 0\r\n&gt;           ),\r\n&gt;         base_data AS\r\n&gt;           (SELECT * FROM final_data\r\n&gt;            ORDER BY bucket_id, metric_name)\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes('wait_time' as \"name\"),\r\n&gt;                xmlelement(\"buckets\",\r\n&gt;                  xmlattributes(:p_bucket_interval as \"bucket_interval\",\r\n&gt;                                :p_bucket_count    as \"bucket_count\",\r\n&gt;                                :b_start_time_utc  as \"start_time_utc\",\r\n&gt;                                :b_end_time_utc    as \"end_time_utc\",\r\n&gt;                                :b_duration        as \"duration\"),\r\n&gt;                  xmlagg(xmlelement(\"bucket\",\r\n&gt;                           xmlattributes(bucket_id as \"bucket_id\"),\r\n&gt;                           xmlagg(\r\n&gt;                             xmlelement(\"metric\",\r\n&gt;                               xmlattributes(metric_name     as \"name\",\r\n&gt;                                             round(value, 2) as \"value\")\r\n&gt;              ))))))\r\n&gt;         from base_data\r\n&gt;        where value &gt; 0 \r\n&gt;        group by bucket_id]';\r\n&gt; \r\n&gt;     WAIT_TIME_RT_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var date_fmt          varchar2(32);\r\n&gt;       var b_start_time_utc  varchar2(32);\r\n&gt;       var b_end_time_utc    varchar2(32);\r\n&gt;       var p_bucket_interval number;\r\n&gt;       var p_bucket_count    number;\r\n&gt;       var b_duration        number;\r\n&gt;       begin \r\n&gt;         :date_fmt            := '#date_fmt#';\r\n&gt;         :b_start_time_utc    := '#b_start_time_utc#';\r\n&gt;         :b_end_time_utc      := '#b_end_time_utc#';\r\n&gt;         :p_bucket_interval   := #p_bucket_interval#;\r\n&gt;         :p_bucket_count      := #p_bucket_count#;\r\n&gt;         :b_duration          := #b_duration#;\r\n&gt;       end;\r\n&gt;       \/]';\r\n&gt; \r\n&gt;     \r\n&gt;     WAIT_TIME_AWR CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       WITH \r\n&gt;         snaps AS\r\n&gt;           (SELECT \/*+ no_merge *\/ s.instance_number, s.snap_id, \r\n&gt;                   CASE \r\n&gt;                     WHEN p.open_time_tz &gt; s.begin_interval_time_tz \r\n&gt;                     THEN CAST((p.open_time_tz at time zone 'UTC') AS DATE)\r\n&gt;                     ELSE CAST((s.begin_interval_time_tz at time zone 'UTC') \r\n&gt;                               AS DATE)\r\n&gt;                   END as begin_time_utc,\r\n&gt;                   CAST((s.end_interval_time_tz at time zone 'UTC') AS DATE) \r\n&gt;                       as end_time_utc,\r\n&gt;                   CASE \r\n&gt;                     WHEN p.open_time_tz &gt; s.begin_interval_time_tz \r\n&gt;                     THEN 0 \r\n&gt;                     ELSE 1 \r\n&gt;                   END as diff_logic\r\n&gt;              FROM awr_root_snapshot s, awr_root_pdb_in_snap p\r\n&gt;             WHERE s.dbid = :dbid\r\n&gt;               AND p.dbid = :dbid\r\n&gt;               AND s.instance_number = p.instance_number\r\n&gt;               AND s.snap_id = p.snap_id\r\n&gt;               AND s.snap_id &gt;= :begin_snap_id\r\n&gt;               AND s.snap_id &lt;= :end_snap_id\r\n&gt;               AND p.snap_id &gt;= :begin_snap_id\r\n&gt;               AND p.snap_id &lt;= :end_snap_id\r\n&gt;           ),\r\n&gt;         base_stats AS\r\n&gt;           (SELECT e.instance_number, e.snap_id, e.wait_class, \r\n&gt;                   SUM(e.time_waited_micro_fg)\/1000000 as value\r\n&gt;              FROM awr_root_con_system_event e\r\n&gt;             WHERE e.dbid = :dbid\r\n&gt;               AND e.snap_id &gt;= :begin_snap_id\r\n&gt;               AND e.snap_id &lt;= :end_snap_id\r\n&gt;               AND e.wait_class &lt;&gt; 'Idle'\r\n&gt;            GROUP BY e.instance_number, e.snap_id, e.wait_class  \r\n&gt;            UNION ALL\r\n&gt;            SELECT s.instance_number, s.snap_id, \r\n&gt;                   CASE \r\n&gt;                     WHEN s.stat_name = 'DB time'\r\n&gt;                     THEN 'DBTime' \r\n&gt;                     ELSE 'CPU'\r\n&gt;                   END as wait_class,\r\n&gt;                   s.value\/1000000 as value\r\n&gt;              FROM awr_root_con_sys_time_model s\r\n&gt;             WHERE s.dbid = :dbid\r\n&gt;               AND s.snap_id &gt;= :begin_snap_id\r\n&gt;               AND s.snap_id &lt;= :end_snap_id\r\n&gt;               AND s.stat_name IN ('DB time', 'DB CPU')\r\n&gt;           ),\r\n&gt;         agg_stats AS\r\n&gt;           (SELECT \/*+ no_merge *\/ instance_number, snap_id, wait_class, \r\n&gt;                   SUM(value) as value\r\n&gt;              FROM base_stats\r\n&gt;             WHERE value &gt; 0\r\n&gt;            GROUP BY instance_number, snap_id, wait_class\r\n&gt;           ),\r\n&gt;         diff_stats AS \r\n&gt;           (SELECT estat.instance_number, estat.snap_id, estat.wait_class, \r\n&gt;                   s.begin_time_utc, s.end_time_utc,\r\n&gt;                   GREATEST(estat.value - \r\n&gt;                            (s.diff_logic * NVL(bstat.value,0)),0) \/\r\n&gt;                   ((s.end_time_utc - s.begin_time_utc)*86400)\r\n&gt;                   as value\r\n&gt;              FROM agg_stats estat, snaps s, agg_stats bstat\r\n&gt;             WHERE estat.instance_number = s.instance_number\r\n&gt;               AND estat.snap_id = s.snap_id\r\n&gt;               AND estat.instance_number = bstat.instance_number(+)\r\n&gt;               AND estat.snap_id-1 = bstat.snap_id(+)\r\n&gt;               AND estat.wait_class = bstat.wait_class(+)\r\n&gt;           ),\r\n&gt;         buckets AS\r\n&gt;           (SELECT level as bucket_id,\r\n&gt;                   to_date(:begin_time_utc, :date_format) + \r\n&gt;                   ((level -1) * :bucket_interval_secs\/86400) as begin_time_utc,\r\n&gt;                   to_date(:begin_time_utc, :date_format) + \r\n&gt;                   (level * :bucket_interval_secs\/86400) as end_time_utc\r\n&gt;              FROM sys.dual\r\n&gt;            CONNECT BY level &lt;= (to_date(:end_time_utc, :date_format) - \r\n&gt;                                 to_date(:begin_time_utc, :date_format)) \r\n&gt;                                * 86400 \/ :bucket_interval_secs\r\n&gt;           ),\r\n&gt;         db_stats AS\r\n&gt;           (SELECT bucket_id, wait_class, \r\n&gt;                   SUM(value * bucket_ratio) as value\r\n&gt;              FROM (\r\n&gt;                    SELECT b.bucket_id, s.wait_class, s.value,\r\n&gt;                           (LEAST(s.end_time_utc, b.end_time_utc) - \r\n&gt;                            GREATEST(s.begin_time_utc, b.begin_time_utc))\r\n&gt;                           \/ (b.end_time_utc - b.begin_time_utc) as bucket_ratio\r\n&gt;                      FROM diff_stats s, buckets b\r\n&gt;                     WHERE b.end_time_utc &gt; b.begin_time_utc\r\n&gt;                       AND s.begin_time_utc &lt; b.end_time_utc\r\n&gt;                       AND s.end_time_utc &gt; b.begin_time_utc\r\n&gt;                   )\r\n&gt;            GROUP BY bucket_id, wait_class\r\n&gt;           ),\r\n&gt;         wait_for_cpu AS\r\n&gt;           (SELECT bucket_id, 'wait for CPU' as wait_class,\r\n&gt;                   GREATEST(SUM(DECODE(wait_class, 'DBTime', value, -value)), \r\n&gt;                            0) as value\r\n&gt;              FROM db_stats\r\n&gt;            GROUP BY bucket_id\r\n&gt;           ),\r\n&gt;         final_stats AS \r\n&gt;           (SELECT bucket_id, wait_class, value\r\n&gt;              FROM db_stats\r\n&gt;            UNION ALL\r\n&gt;            SELECT bucket_id, wait_class, value\r\n&gt;              FROM wait_for_cpu\r\n&gt;           ),\r\n&gt;        base_data AS\r\n&gt;          (SELECT bucket_id, wait_class, value\r\n&gt;             FROM final_stats\r\n&gt;           ORDER BY 1,2)\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes('wait_time' as \"name\"),\r\n&gt;                xmlelement(\"buckets\",\r\n&gt;                  xmlattributes(:bucket_interval_secs as \"bucket_interval\",\r\n&gt;                                :bucket_count         as \"bucket_count\",\r\n&gt;                                :begin_time_utc       as \"start_time_utc\",\r\n&gt;                                :end_time_utc         as \"end_time_utc\",\r\n&gt;                                :duration             as \"duration\"),\r\n&gt;                  xmlagg(xmlelement(\"bucket\",\r\n&gt;                           xmlattributes(bucket_id as \"bucket_id\"),\r\n&gt;                           xmlagg(\r\n&gt;                             xmlelement(\"wait_class\",\r\n&gt;                               xmlattributes(wait_class      as \"name\",\r\n&gt;                                             round(value, 2) as \"value\")))))))\r\n&gt;         from base_data\r\n&gt;        where value &gt; 0 \r\n&gt;        group by bucket_id]';\r\n&gt; \r\n&gt;     WAIT_TIME_AWR_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var dbid                 number;\r\n&gt;       var begin_snap_id        number;\r\n&gt;       var end_snap_id          number;\r\n&gt;       var begin_time_utc       varchar2(4000);\r\n&gt;       var end_time_utc         varchar2(4000);\r\n&gt;       var date_format          varchar2(32);\r\n&gt;       var bucket_interval_secs number;\r\n&gt;       var bucket_count         number;\r\n&gt;       var duration             number;\r\n&gt; \r\n&gt;       begin\r\n&gt;         :dbid                 := #dbid#;\r\n&gt;         :begin_snap_id        := #begin_snap_id#;\r\n&gt;         :end_snap_id          := #end_snap_id#;\r\n&gt;         :begin_time_utc       := '#begin_time_utc#';\r\n&gt;         :end_time_utc         := '#end_time_utc#';\r\n&gt;         :date_format          := '#date_format#';\r\n&gt;         :bucket_interval_secs := #bucket_interval_secs#;\r\n&gt;         :bucket_count         := #bucket_count#;\r\n&gt;         :duration             := #duration#;\r\n&gt;     end;\r\n&gt;     \/]';\r\n&gt; \r\n&gt;   BEGIN\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME IS NULL) THEN\r\n&gt;       L_IS_REALTIME := 1;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_DBID := SYS_CONTEXT('USERENV','CON_DBID');\r\n&gt; \r\n&gt;     IF (DBID IS NULL) THEN\r\n&gt;       L_DBID := L_CON_DBID;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (END_TIME_UTC IS NULL) THEN\r\n&gt;       L_END_TIME_UTC := CAST(SYS_EXTRACT_UTC(SYSTIMESTAMP) AS DATE);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (START_TIME_UTC IS NULL) THEN\r\n&gt;       \r\n&gt;       IF (L_IS_REALTIME = 1) THEN\r\n&gt;         L_START_TIME_UTC := L_END_TIME_UTC - 1\/24;\r\n&gt;       \r\n&gt;       ELSE\r\n&gt;         L_START_TIME_UTC := L_END_TIME_UTC - 1;\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (BUCKET_COUNT IS NULL) THEN\r\n&gt;       L_BUCKET_COUNT := 60;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME = 1) THEN\r\n&gt; \r\n&gt;       L_QRY := WAIT_TIME_RT;\r\n&gt;     \r\n&gt;       \r\n&gt;       IF (SHOW_SQL = 1) THEN\r\n&gt; \r\n&gt;         L_SQL := WAIT_TIME_RT_HEADER;\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := REPLACE(L_SQL, '#date_fmt#', DATE_FMT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_start_time_utc#',\r\n&gt;                                  TO_CHAR(L_START_TIME_UTC, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_end_time_utc#',\r\n&gt;                                  TO_CHAR(L_END_TIME_UTC, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_count#', L_BUCKET_COUNT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_interval#', L_BUCKET_INTERVAL);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_duration#', \r\n&gt;                                  ROUND(L_END_TIME_UTC-L_START_TIME_UTC)*DTOS);\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;         \r\n&gt;         L_RESULT_XML := I_SHOW_SQL_XML('wait_time', L_SQL);\r\n&gt; \r\n&gt;       ELSE\r\n&gt; \r\n&gt;         \r\n&gt;         EXECUTE IMMEDIATE L_QRY\r\n&gt;                      INTO L_RESULT_XML\r\n&gt;                     USING TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           \r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           \r\n&gt;                           L_BUCKET_INTERVAL, L_BUCKET_COUNT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT),\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT),\r\n&gt;                           ROUND((L_END_TIME_UTC - L_START_TIME_UTC)*DTOS);\r\n&gt;       END IF;\r\n&gt;     \r\n&gt;     \r\n&gt;     ELSE\r\n&gt;      IF (L_AWR_PERIOD IS NOT NULL) THEN\r\n&gt; \r\n&gt;         \r\n&gt;         L_QRY := WAIT_TIME_AWR;\r\n&gt; \r\n&gt;         IF (SYS_CONTEXT('USERENV','CON_ID') &gt; 2) THEN\r\n&gt;           L_AWR_VIEW_PREFIX := \r\n&gt;             DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(L_AWR_PERIOD.M_MIN_TIME);\r\n&gt; \r\n&gt;           DBMS_SQLTUNE_UTIL1.REPLACE_AWR_VIEW_PREFIX(L_QRY, L_AWR_VIEW_PREFIX);\r\n&gt;         END IF;\r\n&gt; \r\n&gt;         IF (SHOW_SQL = 1) THEN\r\n&gt;           \r\n&gt;           L_SQL := WAIT_TIME_AWR_HEADER;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := REPLACE(L_SQL, '#dbid#', L_AWR_PERIOD.M_DBID);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#begin_snap_id#', L_AWR_PERIOD.M_BEGIN_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#end_snap_id#', L_AWR_PERIOD.M_END_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#begin_time_utc#', \r\n&gt;                                    TO_CHAR(L_START_TIME_UTC, DATE_FMT)); \r\n&gt;           L_SQL := REPLACE(L_SQL, '#end_time_utc#', \r\n&gt;                                    TO_CHAR(L_END_TIME_UTC, DATE_FMT));\r\n&gt;           L_SQL := REPLACE(L_SQL, '#date_format#', DATE_FMT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_count#', L_BUCKET_COUNT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_interval_secs#', \r\n&gt;                                    L_BUCKET_INTERVAL);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#duration#',\r\n&gt;                                    ROUND(INTERVAL_TO_SECOND(\r\n&gt;                                      L_END_TIME_UTC, L_START_TIME_UTC)));\r\n&gt; \r\n&gt;           L_RESULT_XML := I_SHOW_SQL_XML('wait_time', L_SQL);\r\n&gt; \r\n&gt;         ELSE\r\n&gt;           EXECUTE IMMEDIATE L_QRY\r\n&gt;            INTO L_RESULT_XML\r\n&gt;           USING L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 TO_CHAR(L_END_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_COUNT,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT),\r\n&gt;                 TO_CHAR(L_END_TIME_UTC, DATE_FMT),\r\n&gt;                 ROUND((L_END_TIME_UTC - L_START_TIME_UTC)*DTOS);\r\n&gt;         END IF;\r\n&gt; \r\n&gt;       END IF;\r\n&gt; \r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_RESULT_XML;\r\n&gt; \r\n&gt;   END GET_WAIT_TIME_XML;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_SYSMETRICS_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME_UTC  IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME_UTC    IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt; \r\n&gt;     \r\n&gt;     L_QRY VARCHAR2(32767) := NULL;\r\n&gt;     L_SQL CLOB;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RESULT_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_IS_REALTIME     NUMBER             := IS_REALTIME;\r\n&gt;     L_DBID            NUMBER             := DBID;\r\n&gt;     L_START_TIME_UTC  DATE               := START_TIME_UTC;\r\n&gt;     L_END_TIME_UTC    DATE               := END_TIME_UTC;\r\n&gt;     L_BUCKET_COUNT    NUMBER             := BUCKET_COUNT;\r\n&gt;     L_BUCKET_INTERVAL NUMBER             := BUCKET_INTERVAL;\r\n&gt;     L_AWR_PERIOD      PRVT_AWRV_METADATA := AWR_PERIOD;\r\n&gt;     L_AWR_VIEW_PREFIX VARCHAR2(20)       := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_DBID NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     SYSMETRIC_RT CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       WITH \r\n&gt;         inst_data AS\r\n&gt;           (SELECT inst_id, bucket_id, metric_name, value\r\n&gt;              FROM TABLE(GV$(CURSOR(\r\n&gt;                     SELECT USERENV('INSTANCE') as inst_id,\r\n&gt;                            bucket_id, metric_name,\r\n&gt;                            SUM(value*bucket_ratio) as value\r\n&gt;                       FROM (\r\n&gt;                             SELECT USERENV('INSTANCE') as inst_id,\r\n&gt;                                    buckets.bucket_id,\r\n&gt;                                    met.metric_name,\r\n&gt;                                    met.value,\r\n&gt;                                    (LEAST(met.end_time_utc, \r\n&gt;                                           buckets.end_time_utc) - \r\n&gt;                                     GREATEST(met.begin_time_utc, \r\n&gt;                                              buckets.begin_time_utc)) \/ \r\n&gt;                                     (met.end_time_utc - met.begin_time_utc) \r\n&gt;                                       as bucket_ratio\r\n&gt;                              FROM ( \r\n&gt;                                    SELECT \/*+ no_merge *\/ USERENV('INSTANCE') \r\n&gt;                                                               as inst_id,\r\n&gt;                                           m.begin_time-tz.time_zone \r\n&gt;                                                               as begin_time_utc,\r\n&gt;                                           m.end_time-tz.time_zone \r\n&gt;                                                               as end_time_utc,\r\n&gt;                                           m.metric_name,\r\n&gt;                                           CASE \r\n&gt;                                             WHEN m.metric_name = \r\n&gt;                                                    'CPU Usage Per Sec' \r\n&gt;                                             THEN m.value\/100\r\n&gt;                                             ELSE m.value\r\n&gt;                                           END as value\r\n&gt;                                      FROM sys.v_$con_sysmetric_history m,\r\n&gt;                                           (SELECT ROUND(\r\n&gt;                                                     (cast(latest_sample_time \r\n&gt;                                                           as date) - \r\n&gt;                                                      cast(sys_extract_utc(\r\n&gt;                                                             systimestamp) \r\n&gt;                                                           as date))\r\n&gt;                                                     *900,0)\/900 as time_zone\r\n&gt;                                              FROM sys.v_$ash_info) tz\r\n&gt;                                     WHERE m.group_id = 18\r\n&gt;                                       AND m.metric_name IN \r\n&gt;                                             ('Average Active Sessions',\r\n&gt;                                              'CPU Usage Per Sec',\r\n&gt;                                              'Executions Per Sec',\r\n&gt;                                              'User Calls Per Sec', \r\n&gt;                                              'Total Parse Count Per Sec',\r\n&gt;                                              'User Commits Per Sec', \r\n&gt;                                              'User Rollbacks Per Sec', \r\n&gt;                                              'Session Count',\r\n&gt;                                              'Current Logons Count', \r\n&gt;                                              'Logons Per Sec',\r\n&gt;                                              'Logons Per Txn',\r\n&gt;                                              'Redo Generated Per Sec',\r\n&gt;                                              'Redo Generated Per Txn',\r\n&gt;                                              'User Transaction Per Sec',\r\n&gt;                                              'Network Traffic Volume Per Sec',\r\n&gt;                                              'Hard Parse Count Per Sec',\r\n&gt;                                              'Parse Failure Count Per Sec',\r\n&gt;                                              'Current Open Cursors Count')\r\n&gt;                                       AND m.begin_time-tz.time_zone &lt; \r\n&gt;                                           to_date(:b_end_time_utc, :date_fmt)\r\n&gt;                                       AND m.end_time-tz.time_zone &gt;= \r\n&gt;                                           to_date(:b_start_time_utc, :date_fmt)\r\n&gt;                                   ) met,    \r\n&gt;                                   ( \r\n&gt;                                    SELECT \/*+ no_merge *\/ level as bucket_id,\r\n&gt;                                           to_date(:b_start_time_utc,:date_fmt) +\r\n&gt;                                           ((level -1) * :p_bucket_interval \r\n&gt;                                            \/ 86400) as begin_time_utc,\r\n&gt;                                           to_date(:b_start_time_utc,:date_fmt) +\r\n&gt;                                           (level * :p_bucket_interval \/ 86400) \r\n&gt;                                                     as end_time_utc\r\n&gt;                                      FROM sys.v_$instance \r\n&gt;                                           -- note: DUAL not allowed inside GV$\r\n&gt;                                    CONNECT BY level &lt;= \r\n&gt;                                               (to_date(:b_end_time_utc,\r\n&gt;                                                        :date_fmt) - \r\n&gt;                                                to_date(:b_start_time_utc, \r\n&gt;                                                        :date_fmt)) \r\n&gt;                                               * 86400 \/ :p_bucket_interval\r\n&gt;                                   ) buckets\r\n&gt;                             WHERE buckets.begin_time_utc &lt; met.end_time_utc\r\n&gt;                               AND buckets.end_time_utc &gt; met.begin_time_utc\r\n&gt;                            )\r\n&gt;                     GROUP BY bucket_id, metric_name)))),\r\n&gt;         db_data AS \r\n&gt;           (SELECT bucket_id, metric_name, \r\n&gt;                   SUM(value) as value\r\n&gt;              FROM inst_data\r\n&gt;            GROUP BY bucket_id, metric_name\r\n&gt;           ),\r\n&gt;         final_data AS\r\n&gt;           (SELECT bucket_id, metric_name,\r\n&gt;                   value AS value\r\n&gt;              FROM db_data\r\n&gt;             WHERE value &gt; 0\r\n&gt;           ),\r\n&gt;         base_data AS\r\n&gt;           (SELECT * FROM final_data\r\n&gt;            ORDER BY bucket_id, metric_name)\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes('sysmetric' as \"name\"),\r\n&gt;                xmlelement(\"buckets\",\r\n&gt;                  xmlattributes(:p_bucket_interval as \"bucket_interval\",\r\n&gt;                                :p_bucket_count    as \"bucket_count\",\r\n&gt;                                :b_start_time_utc  as \"start_time_utc\",\r\n&gt;                                :b_end_time_utc    as \"end_time_utc\",\r\n&gt;                                :b_duration        as \"duration\"),\r\n&gt;                  xmlagg(xmlelement(\"bucket\",\r\n&gt;                           xmlattributes(bucket_id as \"bucket_id\"),\r\n&gt;                           xmlagg(\r\n&gt;                             xmlelement(\"metric\",\r\n&gt;                               xmlattributes(metric_name     as \"name\",\r\n&gt;                                             round(value, 2) as \"value\")\r\n&gt;              ))))))\r\n&gt;         from base_data\r\n&gt;        where value &gt; 0 \r\n&gt;        group by bucket_id]';\r\n&gt; \r\n&gt;     SYSMETRIC_RT_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var date_fmt          varchar2(32);\r\n&gt;       var b_start_time_utc  varchar2(32);\r\n&gt;       var b_end_time_utc    varchar2(32);\r\n&gt;       var p_bucket_interval number;\r\n&gt;       var p_bucket_count    number;\r\n&gt;       var b_duration        number;\r\n&gt;       begin \r\n&gt;         :date_fmt            := '#date_fmt#';\r\n&gt;         :b_start_time_utc    := '#b_start_time_utc#';\r\n&gt;         :b_end_time_utc      := '#b_end_time_utc#';\r\n&gt;         :p_bucket_interval   := #p_bucket_interval#;\r\n&gt;         :p_bucket_count      := #p_bucket_count#;\r\n&gt;         :b_duration          := #b_duration#;\r\n&gt;       end;\r\n&gt;       \/]';\r\n&gt; \r\n&gt;     \r\n&gt;     SYSMETRIC_AWR CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       WITH \r\n&gt;         snaps AS\r\n&gt;           (SELECT \/*+ no_merge *\/ s.instance_number, s.snap_id, \r\n&gt;                   CASE \r\n&gt;                     WHEN p.open_time_tz &gt; s.begin_interval_time_tz \r\n&gt;                     THEN CAST((p.open_time_tz at time zone 'UTC') AS DATE)\r\n&gt;                     ELSE CAST((s.begin_interval_time_tz at time zone 'UTC') \r\n&gt;                               AS DATE)\r\n&gt;                   END as begin_time_utc,\r\n&gt;                   CAST((s.end_interval_time_tz at time zone 'UTC') AS DATE) \r\n&gt;                       as end_time_utc,\r\n&gt;                   CASE \r\n&gt;                     WHEN p.open_time_tz &gt; s.begin_interval_time_tz \r\n&gt;                     THEN 0 \r\n&gt;                     ELSE 1 \r\n&gt;                   END as diff_logic\r\n&gt;              FROM awr_root_snapshot s, awr_root_pdb_in_snap p\r\n&gt;             WHERE s.dbid = :dbid\r\n&gt;               AND p.dbid = :dbid\r\n&gt;               AND s.instance_number = p.instance_number\r\n&gt;               AND s.snap_id = p.snap_id\r\n&gt;               AND s.snap_id &gt;= :begin_snap_id\r\n&gt;               AND s.snap_id &lt;= :end_snap_id\r\n&gt;               AND p.snap_id &gt;= :begin_snap_id\r\n&gt;               AND p.snap_id &lt;= :end_snap_id\r\n&gt;           ),\r\n&gt;         base_stats AS\r\n&gt;           (SELECT s.instance_number, s.snap_id,\r\n&gt;                   s.metric_name,\r\n&gt;                   CASE \r\n&gt;                     WHEN s.metric_name = \r\n&gt;                            'CPU Usage Per Sec' \r\n&gt;                     THEN s.average\/100\r\n&gt;                     ELSE s.average\r\n&gt;                   END as value\r\n&gt;              FROM awr_root_con_sysmetric_summ s\r\n&gt;             WHERE s.dbid = :dbid\r\n&gt;               AND s.snap_id &gt;= :begin_snap_id\r\n&gt;               AND s.snap_id &lt;= :end_snap_id\r\n&gt;               AND s.metric_name IN ('Average Active Sessions',\r\n&gt;                                     'CPU Usage Per Sec',\r\n&gt;                                     'Executions Per Sec',\r\n&gt;                                     'User Calls Per Sec', \r\n&gt;                                     'Total Parse Count Per Sec',\r\n&gt;                                     'User Commits Per Sec', \r\n&gt;                                     'User Rollbacks Per Sec', \r\n&gt;                                     'Session Count',\r\n&gt;                                     'Current Logons Count', \r\n&gt;                                     'Logons Per Sec',\r\n&gt;                                     'Logons Per Txn',\r\n&gt;                                     'Redo Generated Per Sec',\r\n&gt;                                     'Redo Generated Per Txn',\r\n&gt;                                     'User Transaction Per Sec',\r\n&gt;                                     'Network Traffic Volume Per Sec',\r\n&gt;                                     'Hard Parse Count Per Sec',\r\n&gt;                                     'Parse Failure Count Per Sec',\r\n&gt;                                     'Current Open Cursors Count')\r\n&gt;           ),\r\n&gt;         agg_stats AS\r\n&gt;           (SELECT \/*+ no_merge *\/ instance_number, snap_id, metric_name, \r\n&gt;                   SUM(value) as value\r\n&gt;              FROM base_stats\r\n&gt;             WHERE value &gt; 0\r\n&gt;            GROUP BY instance_number, snap_id, metric_name\r\n&gt;           ),\r\n&gt;         snap_stats AS \r\n&gt;           (SELECT a.instance_number, a.snap_id, a.metric_name, a.value,  \r\n&gt;                   s.begin_time_utc, s.end_time_utc\r\n&gt;              FROM agg_stats a, snaps s\r\n&gt;             WHERE a.instance_number = s.instance_number\r\n&gt;               AND a.snap_id = s.snap_id\r\n&gt;           ),\r\n&gt;         buckets AS\r\n&gt;           (SELECT level as bucket_id,\r\n&gt;                   to_date(:begin_time_utc, :date_format) + \r\n&gt;                   ((level -1) * :bucket_interval_secs\/86400) as begin_time_utc,\r\n&gt;                   to_date(:begin_time_utc, :date_format) + \r\n&gt;                   (level * :bucket_interval_secs\/86400) as end_time_utc\r\n&gt;              FROM sys.dual\r\n&gt;            CONNECT BY level &lt;= (to_date(:end_time_utc, :date_format) - \r\n&gt;                                 to_date(:begin_time_utc, :date_format)) \r\n&gt;                                * 86400 \/ :bucket_interval_secs\r\n&gt;           ),\r\n&gt;         db_stats AS\r\n&gt;           (SELECT bucket_id, metric_name, \r\n&gt;                   SUM(value * bucket_ratio) as value\r\n&gt;              FROM (\r\n&gt;                    SELECT b.bucket_id, s.metric_name, s.value,\r\n&gt;                           (LEAST(s.end_time_utc, b.end_time_utc) - \r\n&gt;                            GREATEST(s.begin_time_utc, b.begin_time_utc))\r\n&gt;                           \/ (b.end_time_utc - b.begin_time_utc) as bucket_ratio\r\n&gt;                      FROM snap_stats s, buckets b\r\n&gt;                     WHERE b.end_time_utc &gt; b.begin_time_utc\r\n&gt;                       AND s.begin_time_utc &lt; b.end_time_utc\r\n&gt;                       AND s.end_time_utc &gt; b.begin_time_utc\r\n&gt;                   )\r\n&gt;            GROUP BY bucket_id, metric_name\r\n&gt;           ),\r\n&gt;         base_data AS \r\n&gt;           (SELECT bucket_id, metric_name, value\r\n&gt;              FROM db_stats\r\n&gt;            ORDER BY 1, 2)\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes('sysmetric' as \"name\"),\r\n&gt;                xmlelement(\"buckets\",\r\n&gt;                  xmlattributes(:bucket_interval_secs as \"bucket_interval\",\r\n&gt;                                :bucket_count         as \"bucket_count\",\r\n&gt;                                :begin_time_utc       as \"start_time_utc\",\r\n&gt;                                :end_time_utc         as \"end_time_utc\",\r\n&gt;                                :duration             as \"duration\"),\r\n&gt;                  xmlagg(xmlelement(\"bucket\",\r\n&gt;                           xmlattributes(bucket_id as \"bucket_id\"),\r\n&gt;                           xmlagg(\r\n&gt;                             xmlelement(\"metric\",\r\n&gt;                               xmlattributes(metric_name     as \"name\",\r\n&gt;                                             round(value, 2) as \"value\")))))))\r\n&gt;         from base_data\r\n&gt;        where value &gt; 0 \r\n&gt;        group by bucket_id]';\r\n&gt; \r\n&gt;     SYSMETRIC_AWR_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var dbid                 number;\r\n&gt;       var begin_snap_id        number;\r\n&gt;       var end_snap_id          number;\r\n&gt;       var begin_time_utc       varchar2(4000);\r\n&gt;       var end_time_utc         varchar2(4000);\r\n&gt;       var date_format          varchar2(32);\r\n&gt;       var bucket_interval_secs number;\r\n&gt;       var bucket_count         number;\r\n&gt;       var duration             number;\r\n&gt; \r\n&gt;       begin\r\n&gt;         :dbid                 := #dbid#;\r\n&gt;         :begin_snap_id        := #begin_snap_id#;\r\n&gt;         :end_snap_id          := #end_snap_id#;\r\n&gt;         :begin_time_utc       := '#begin_time_utc#';\r\n&gt;         :end_time_utc         := '#end_time_utc#';\r\n&gt;         :date_format          := '#date_format#';\r\n&gt;         :bucket_interval_secs := #bucket_interval_secs#;\r\n&gt;         :bucket_count         := #bucket_count#;\r\n&gt;         :duration             := #duration#;\r\n&gt;     end;\r\n&gt;     \/]';\r\n&gt; \r\n&gt;   BEGIN\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME IS NULL) THEN\r\n&gt;       L_IS_REALTIME := 1;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_DBID := SYS_CONTEXT('USERENV','CON_DBID');\r\n&gt; \r\n&gt;     IF (DBID IS NULL) THEN\r\n&gt;       L_DBID := L_CON_DBID;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (END_TIME_UTC IS NULL) THEN\r\n&gt;       L_END_TIME_UTC := CAST(SYS_EXTRACT_UTC(SYSTIMESTAMP) AS DATE);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (START_TIME_UTC IS NULL) THEN\r\n&gt;       \r\n&gt;       IF (L_IS_REALTIME = 1) THEN\r\n&gt;         L_START_TIME_UTC := L_END_TIME_UTC - 1\/24;\r\n&gt;       \r\n&gt;       ELSE\r\n&gt;         L_START_TIME_UTC := L_END_TIME_UTC - 1;\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (BUCKET_COUNT IS NULL) THEN\r\n&gt;       L_BUCKET_COUNT := 60;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME = 1) THEN\r\n&gt; \r\n&gt;       L_QRY := SYSMETRIC_RT;\r\n&gt;     \r\n&gt;       \r\n&gt;       IF (SHOW_SQL = 1) THEN\r\n&gt; \r\n&gt;         L_SQL := SYSMETRIC_RT_HEADER;\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := REPLACE(L_SQL, '#date_fmt#', DATE_FMT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_start_time_utc#',\r\n&gt;                                  TO_CHAR(L_START_TIME_UTC, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_end_time_utc#',\r\n&gt;                                  TO_CHAR(L_END_TIME_UTC, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_count#', L_BUCKET_COUNT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_interval#', L_BUCKET_INTERVAL);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_duration#', \r\n&gt;                                  ROUND(L_END_TIME_UTC-L_START_TIME_UTC)*DTOS);\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;         \r\n&gt;         L_RESULT_XML := I_SHOW_SQL_XML('sysmetric', L_SQL);\r\n&gt; \r\n&gt;       ELSE\r\n&gt; \r\n&gt;         \r\n&gt;         EXECUTE IMMEDIATE L_QRY\r\n&gt;                      INTO L_RESULT_XML\r\n&gt;                     USING TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           \r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           \r\n&gt;                           L_BUCKET_INTERVAL, L_BUCKET_COUNT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT),\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT),\r\n&gt;                           ROUND((L_END_TIME_UTC - L_START_TIME_UTC)*DTOS);\r\n&gt;       END IF;\r\n&gt;     \r\n&gt;     \r\n&gt;     ELSE\r\n&gt;      IF (L_AWR_PERIOD IS NOT NULL) THEN\r\n&gt; \r\n&gt;         \r\n&gt;         L_QRY := SYSMETRIC_AWR;\r\n&gt; \r\n&gt;         IF (SYS_CONTEXT('USERENV','CON_ID') &gt; 2) THEN\r\n&gt;           L_AWR_VIEW_PREFIX := \r\n&gt;             DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(L_AWR_PERIOD.M_MIN_TIME);\r\n&gt; \r\n&gt;           DBMS_SQLTUNE_UTIL1.REPLACE_AWR_VIEW_PREFIX(L_QRY, L_AWR_VIEW_PREFIX);\r\n&gt;         END IF;\r\n&gt; \r\n&gt;         IF (SHOW_SQL = 1) THEN\r\n&gt;           \r\n&gt;           L_SQL := SYSMETRIC_AWR_HEADER;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := REPLACE(L_SQL, '#dbid#', L_AWR_PERIOD.M_DBID);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#begin_snap_id#', L_AWR_PERIOD.M_BEGIN_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#end_snap_id#', L_AWR_PERIOD.M_END_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#begin_time_utc#', \r\n&gt;                                    TO_CHAR(L_START_TIME_UTC, DATE_FMT)); \r\n&gt;           L_SQL := REPLACE(L_SQL, '#end_time_utc#', \r\n&gt;                                    TO_CHAR(L_END_TIME_UTC, DATE_FMT));\r\n&gt;           L_SQL := REPLACE(L_SQL, '#date_format#', DATE_FMT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_count#', L_BUCKET_COUNT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_interval_secs#', \r\n&gt;                                    L_BUCKET_INTERVAL);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#duration#',\r\n&gt;                                    ROUND(INTERVAL_TO_SECOND(\r\n&gt;                                      L_END_TIME_UTC, L_START_TIME_UTC)));\r\n&gt; \r\n&gt;           L_RESULT_XML := I_SHOW_SQL_XML('sysmetric', L_SQL);\r\n&gt; \r\n&gt;         ELSE\r\n&gt;           EXECUTE IMMEDIATE L_QRY\r\n&gt;            INTO L_RESULT_XML\r\n&gt;           USING L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 TO_CHAR(L_END_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_COUNT,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT),\r\n&gt;                 TO_CHAR(L_END_TIME_UTC, DATE_FMT),\r\n&gt;                 ROUND((L_END_TIME_UTC - L_START_TIME_UTC)*DTOS);\r\n&gt;         END IF;\r\n&gt; \r\n&gt;       END IF;\r\n&gt; \r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_RESULT_XML;\r\n&gt; \r\n&gt;   END GET_SYSMETRICS_XML;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_STORAGE_METRICS_XML(\r\n&gt;     SERVICE_TYPE IN VARCHAR2 DEFAULT NULL,\r\n&gt;     SHOW_SQL     IN NUMBER   DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt;     \r\n&gt;     L_QRY VARCHAR2(32767) := NULL;\r\n&gt;     L_SQL CLOB;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RESULT_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     STORAGE_SERVERLESS CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes(\r\n&gt;                  'storage'         as \"name\",\r\n&gt;                  max(c.max_size)   as \"total\",\r\n&gt;                  max(c.total_size) as \"used\",\r\n&gt;                  decode(max(c.max_size), 0, 0,\r\n&gt;                         (max(c.total_size)\/max(c.max_size))*100) \r\n&gt;                                    as \"utilization\"))\r\n&gt;         from sys.v_$containers c\r\n&gt;        where c.con_id &gt; 2\r\n&gt;          and c.name &lt;&gt; 'PAASSEED']';\r\n&gt; \r\n&gt;     \r\n&gt;     STORAGE_DEDICATED CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes(\r\n&gt;                  'storage'         as \"name\",\r\n&gt;                  max(c.max_size)   as \"total\",\r\n&gt;                  max(c.total_size) as \"used\",\r\n&gt;                  decode(max(c.max_size), 0, 0,\r\n&gt;                         (max(c.total_size)\/max(c.max_size))*100) \r\n&gt;                                    as \"utilization\"),\r\n&gt;                xmlelement(\"tablespaces\",\r\n&gt;                  xmlagg(\r\n&gt;                    xmlelement(\"tbs\",\r\n&gt;                      xmlattributes(\r\n&gt;                        m.tablespace_name as \"name\",\r\n&gt;                        t.contents        as \"type\",\r\n&gt;                        ROUND((m.tablespace_size)*t.block_size, 3) total_space,\r\n&gt;                        ROUND((m.used_space)*t.block_size, 3) used_space,\r\n&gt;                        ROUND(m.used_percent, 2) used_pct)))))\r\n&gt;         from cdb_tablespace_usage_metrics m, \r\n&gt;              cdb_tablespaces t,\r\n&gt;              sys.v_$containers c\r\n&gt;        where t.tablespace_name = m.tablespace_name\r\n&gt;          and c.con_id &gt; 2\r\n&gt;          and c.name &lt;&gt; 'PAASSEED'\r\n&gt;          and m.con_id = c.con_id\r\n&gt;          and t.con_id = m.con_id]';\r\n&gt; \r\n&gt;   BEGIN\r\n&gt; \r\n&gt;     IF (SERVICE_TYPE IN (DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_D, \r\n&gt;                          DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_D)) THEN\r\n&gt;       L_QRY := STORAGE_DEDICATED;\r\n&gt;     ELSIF (SERVICE_TYPE IN (DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_S, \r\n&gt;                             DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_S)) THEN\r\n&gt;       L_QRY := STORAGE_SERVERLESS;\r\n&gt;     ELSE\r\n&gt;       L_QRY := STORAGE_DEDICATED;\r\n&gt;     END IF;\r\n&gt;    \r\n&gt;     \r\n&gt;     IF (SHOW_SQL = 1) THEN\r\n&gt; \r\n&gt;       \r\n&gt;       L_SQL := L_QRY;\r\n&gt; \r\n&gt;       \r\n&gt;       L_RESULT_XML := I_SHOW_SQL_XML('storage', L_SQL);\r\n&gt; \r\n&gt;     ELSE\r\n&gt; \r\n&gt;       \r\n&gt;       EXECUTE IMMEDIATE L_QRY\r\n&gt;                    INTO L_RESULT_XML;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_RESULT_XML;\r\n&gt; \r\n&gt;   END GET_STORAGE_METRICS_XML;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_SESSION_METRICS_XML(\r\n&gt;     SHOW_SQL        IN NUMBER   DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt;   \r\n&gt;     \r\n&gt;     L_SQL CLOB;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RESULT_XML        XMLTYPE := NULL;\r\n&gt;     L_FAILED_LOGONS_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     NUM_CONNECTIONS_RT CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       SELECT xmlelement(\"stattype\",\r\n&gt;                xmlattributes('session' as \"name\"),\r\n&gt;                xmlelement(\"num_connections\", count(*)))\r\n&gt;         FROM sys.gv_$session s\r\n&gt;        WHERE UPPER(s.service_name) not in \r\n&gt;              (SELECT p.name FROM sys.v_$pdbs p WHERE p.con_id=s.con_id) \r\n&gt;          AND UPPER(s.service_name) not in ('SYS$BACKGROUND','SYS$USERS') \r\n&gt;          AND s.type='USER'\r\n&gt;          AND s.sid not in \r\n&gt;              (SELECT ps.sid FROM sys.gv_$px_session ps)]';\r\n&gt; \r\n&gt;     \r\n&gt;     NUM_FAILED_LOGONS_RT CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       SELECT xmlelement(\"failed_logons\", count(*))\r\n&gt;         FROM cdb_unified_audit_trail\r\n&gt;        WHERE action_name = 'LOGON'\r\n&gt;          AND return_code != 0]';\r\n&gt; \r\n&gt;   BEGIN\r\n&gt;      \r\n&gt;     \r\n&gt;     IF (SHOW_SQL = 1) THEN\r\n&gt; \r\n&gt;       L_SQL := NUM_CONNECTIONS_RT || NUM_FAILED_LOGONS_RT;\r\n&gt; \r\n&gt;       \r\n&gt;       L_RESULT_XML := I_SHOW_SQL_XML('session', L_SQL);\r\n&gt; \r\n&gt;     ELSE\r\n&gt; \r\n&gt;       \r\n&gt;       EXECUTE IMMEDIATE NUM_CONNECTIONS_RT\r\n&gt;                    INTO L_RESULT_XML;\r\n&gt; \r\n&gt;       EXECUTE IMMEDIATE NUM_FAILED_LOGONS_RT\r\n&gt;                    INTO L_FAILED_LOGONS_XML;\r\n&gt; \r\n&gt;       IF (L_FAILED_LOGONS_XML IS NOT NULL) THEN\r\n&gt;         L_RESULT_XML := L_RESULT_XML.APPENDCHILDXML(XML_ROOT, \r\n&gt;                                                     L_FAILED_LOGONS_XML);\r\n&gt;       END IF;\r\n&gt; \r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_RESULT_XML;\r\n&gt; \r\n&gt;   END GET_SESSION_METRICS_XML;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION REPORT_WORKLOAD(\r\n&gt;     SERVICE_TYPE   IN VARCHAR2 DEFAULT NULL,\r\n&gt;     IS_REALTIME    IN NUMBER   DEFAULT 1,\r\n&gt;     DBID           IN NUMBER   DEFAULT NULL,\r\n&gt;     START_TIME     IN DATE     DEFAULT NULL,\r\n&gt;     END_TIME       IN DATE     DEFAULT NULL,\r\n&gt;     REPORT_LEVEL   IN VARCHAR2 DEFAULT NULL,\r\n&gt;     SHOW_SQL       IN NUMBER   DEFAULT 0)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt;     \r\n&gt;     L_ELAPSED NUMBER;\r\n&gt;     L_CPU     NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     L_REF_PARAMS DBMS_REPORT.REF_STRING_IDSPEC;\r\n&gt; \r\n&gt;     \r\n&gt;     L_ORIG_ENV DBMS_REPORT.FORMAT_PARAM_VALUES;\r\n&gt;     L_SET_ENV  BOOLEAN;\r\n&gt; \r\n&gt;     \r\n&gt;     L_REPORT_XML          XMLTYPE := NULL;\r\n&gt;     L_RM_METRICS_XML      XMLTYPE := NULL;\r\n&gt;     L_SYS_METRICS_XML     XMLTYPE := NULL;\r\n&gt;     L_SQL_TIME_XML        XMLTYPE := NULL;\r\n&gt;     L_WAIT_TIME_XML       XMLTYPE := NULL;\r\n&gt;     L_STORAGE_METRICS_XML XMLTYPE := NULL;\r\n&gt;     L_SESSION_METRICS_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_SERVICE_TYPE   VARCHAR2(32767) := SERVICE_TYPE;\r\n&gt;     L_IS_REALTIME    NUMBER          := IS_REALTIME;\r\n&gt;     L_DBID           NUMBER          := DBID;\r\n&gt;     L_START_TIME     DATE            := START_TIME;\r\n&gt;     L_END_TIME       DATE            := END_TIME;\r\n&gt;     L_REPORT_LEVEL   VARCHAR2(32767) := REPORT_LEVEL;\r\n&gt;     L_TZ             VARCHAR2(10)    := NULL;\r\n&gt;     L_START_TIME_UTC DATE            := NULL;\r\n&gt;     L_END_TIME_UTC   DATE            := NULL;\r\n&gt;     L_BEGIN_SNAP_ID  NUMBER          := NULL;\r\n&gt;     L_END_SNAP_ID    NUMBER          := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_BUCKET_COUNT    NUMBER;\r\n&gt;     L_BUCKET_INTERVAL NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     L_AWR_PERIOD PRVT_AWRV_METADATA;\r\n&gt; \r\n&gt;     L_SNAP_QRY        VARCHAR2(32767) := NULL;\r\n&gt;     L_AWR_VIEW_PREFIX VARCHAR2(20)    := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt; \r\n&gt;     \r\n&gt;     L_ERRMSG    VARCHAR2(32767);\r\n&gt;     L_ERROR_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RSRCMGR_DETAIL   NUMBER;\r\n&gt;     L_SYSMETRIC_DETAIL NUMBER;\r\n&gt;     L_SQL_TIME_DETAIL  NUMBER;\r\n&gt;     L_WAIT_TIME_DETAIL NUMBER;\r\n&gt;     L_STORAGE_DETAIL   NUMBER;\r\n&gt;     L_SESSION_DETAIL   NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     FUNCTION I_PARSE_REPORT_LEVEL(\r\n&gt;       P_REPORT_LEVEL     IN  VARCHAR2,\r\n&gt;       P_RSRCMGR_DETAIL   OUT NUMBER,\r\n&gt;       P_SYSMETRIC_DETAIL OUT NUMBER,\r\n&gt;       P_SQL_TIME_DETAIL  OUT NUMBER,\r\n&gt;       P_WAIT_TIME_DETAIL OUT NUMBER,\r\n&gt;       P_STORAGE_DETAIL   OUT NUMBER,\r\n&gt;       P_SESSION_DETAIL   OUT NUMBER)\r\n&gt;     RETURN BOOLEAN\r\n&gt;     IS\r\n&gt;       L_REPORT_LEVEL VARCHAR2(32767) := \r\n&gt;         REPLACE(LOWER(P_REPORT_LEVEL), ' ', NULL);\r\n&gt;       L_POS          NUMBER := 1;\r\n&gt;       L_SETVAL       NUMBER;\r\n&gt;     BEGIN\r\n&gt;       \r\n&gt;       P_RSRCMGR_DETAIL   := 1; \r\n&gt;       P_SYSMETRIC_DETAIL := 1; \r\n&gt;       P_SQL_TIME_DETAIL  := 1; \r\n&gt;       P_WAIT_TIME_DETAIL := 1; \r\n&gt;       P_STORAGE_DETAIL   := 1; \r\n&gt;       P_SESSION_DETAIL   := 1; \r\n&gt; \r\n&gt;        \r\n&gt;       IF (L_REPORT_LEVEL IS NULL) THEN\r\n&gt;         RETURN TRUE;\r\n&gt;       END IF;\r\n&gt; \r\n&gt;       \r\n&gt;       L_POS := 1;\r\n&gt; \r\n&gt;       \r\n&gt;       IF (SUBSTR(L_REPORT_LEVEL, L_POS, 3) = 'all') THEN\r\n&gt;         \r\n&gt;         \r\n&gt;         L_POS := L_POS + 3;\r\n&gt;       \r\n&gt;       ELSIF (SUBSTR(L_REPORT_LEVEL, L_POS, 4) = 'none') THEN\r\n&gt;         P_RSRCMGR_DETAIL := 0;\r\n&gt;         P_SYSMETRIC_DETAIL := 0;\r\n&gt;         P_SQL_TIME_DETAIL := 0;\r\n&gt;         P_WAIT_TIME_DETAIL := 0;\r\n&gt;         P_STORAGE_DETAIL := 0;\r\n&gt;         P_SESSION_DETAIL := 0;\r\n&gt;         L_POS := L_POS + 4;\r\n&gt;       END IF;\r\n&gt; \r\n&gt;       \r\n&gt;       WHILE (L_POS &lt; LENGTH(L_REPORT_LEVEL))\r\n&gt;       LOOP\r\n&gt;         IF (SUBSTR(L_REPORT_LEVEL, L_POS, 1) = '-') THEN\r\n&gt;           L_SETVAL   := 0;\r\n&gt;           L_POS      := L_POS + 1;\r\n&gt;         ELSE\r\n&gt;           L_SETVAL   := 1;\r\n&gt;           IF (SUBSTR(L_REPORT_LEVEL, L_POS, 1) = '+') THEN\r\n&gt;             L_POS := L_POS + 1;\r\n&gt;           END IF;\r\n&gt;         END IF;\r\n&gt; \r\n&gt;         CASE\r\n&gt;           \r\n&gt;           WHEN (SUBSTR(L_REPORT_LEVEL, L_POS, 7) = 'rsrcmgr') THEN\r\n&gt;             P_RSRCMGR_DETAIL := L_SETVAL;\r\n&gt;             L_POS := L_POS + 7;\r\n&gt; \r\n&gt;           \r\n&gt;           WHEN (SUBSTR(L_REPORT_LEVEL, L_POS, 9) = 'sysmetric') THEN\r\n&gt;             P_SYSMETRIC_DETAIL := L_SETVAL;\r\n&gt;             L_POS := L_POS + 9;\r\n&gt; \r\n&gt;           \r\n&gt;           WHEN (SUBSTR(L_REPORT_LEVEL, L_POS, 3) = 'sql') THEN\r\n&gt;             P_SQL_TIME_DETAIL := L_SETVAL;\r\n&gt;             L_POS := L_POS + 3;\r\n&gt; \r\n&gt;           \r\n&gt;           WHEN (SUBSTR(L_REPORT_LEVEL, L_POS, 4) = 'wait') THEN\r\n&gt;             P_WAIT_TIME_DETAIL := L_SETVAL;\r\n&gt;             L_POS := L_POS + 4;\r\n&gt; \r\n&gt;           \r\n&gt;           WHEN (SUBSTR(L_REPORT_LEVEL, L_POS, 7) = 'storage') THEN\r\n&gt;             P_STORAGE_DETAIL := L_SETVAL;\r\n&gt;             L_POS := L_POS + 7;\r\n&gt; \r\n&gt;           \r\n&gt;           WHEN (SUBSTR(L_REPORT_LEVEL, L_POS, 7) = 'session') THEN\r\n&gt;             P_SESSION_DETAIL := L_SETVAL;\r\n&gt;             L_POS := L_POS + 7;\r\n&gt;             \r\n&gt;           ELSE\r\n&gt;             \r\n&gt;             RETURN FALSE;\r\n&gt;         END CASE;\r\n&gt;       END LOOP;\r\n&gt; \r\n&gt;       \r\n&gt;       RETURN TRUE;\r\n&gt;       \r\n&gt;     END I_PARSE_REPORT_LEVEL;\r\n&gt; \r\n&gt;   BEGIN\r\n&gt;     \r\n&gt;     \r\n&gt;     L_ORIG_ENV := DBMS_REPORT.FORMAT_PARAM_VALUES();\r\n&gt;     L_SET_ENV  := DBMS_REPORT.SETUP_REPORT_ENV(L_ORIG_ENV);\r\n&gt; \r\n&gt;     \r\n&gt;     DBMS_REPORT.GET_TIMING_INFO(0, L_ELAPSED, L_CPU);\r\n&gt; \r\n&gt;     \r\n&gt; \r\n&gt;     \r\n&gt;     IF (SERVICE_TYPE IS NOT NULL) THEN\r\n&gt;       L_REF_PARAMS('service_type') := SERVICE_TYPE;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (IS_REALTIME IS NOT NULL) THEN\r\n&gt;       L_REF_PARAMS('is_realtime') := IS_REALTIME;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (DBID IS NOT NULL) THEN\r\n&gt;       L_REF_PARAMS('dbid') := DBID;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (START_TIME IS NOT NULL) THEN\r\n&gt;       L_REF_PARAMS('start_time') :=\r\n&gt;         TO_CHAR(START_TIME,DBMS_REPORT.DATE_FMT_MOD);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (END_TIME IS NOT NULL) THEN\r\n&gt;       L_REF_PARAMS('end_time') :=\r\n&gt;         TO_CHAR(END_TIME,DBMS_REPORT.DATE_FMT_MOD);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (REPORT_LEVEL IS NOT NULL) THEN\r\n&gt;       L_REF_PARAMS('report_level') := REPORT_LEVEL;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (SHOW_SQL IS NOT NULL) THEN\r\n&gt;       L_REF_PARAMS('show_sql') := SHOW_SQL; \r\n&gt;     END IF;\r\n&gt;    \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     IF (IS_REALTIME IS NULL) THEN\r\n&gt;       L_IS_REALTIME := 1;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (DBID IS NULL) THEN\r\n&gt;       L_DBID := SYS_CONTEXT('USERENV','CON_DBID');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (REPORT_LEVEL IS NULL) THEN\r\n&gt;       L_REPORT_LEVEL := 'all';\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (END_TIME IS NULL) THEN\r\n&gt;       L_END_TIME := SYSDATE;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (START_TIME IS NULL) THEN\r\n&gt;       \r\n&gt;       IF (L_IS_REALTIME = 1) THEN\r\n&gt;         L_START_TIME := L_END_TIME - 1\/24;\r\n&gt;       \r\n&gt;       ELSE\r\n&gt;         L_START_TIME := L_END_TIME - 1;\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     L_TZ := DBMS_SQLTUNE_UTIL2.GET_TZ_OFFSET();\r\n&gt;     L_END_TIME_UTC := CAST(SYS_EXTRACT_UTC(\r\n&gt;                             TO_TIMESTAMP_TZ(\r\n&gt;                               TO_CHAR(L_END_TIME, 'yyyy-mm-dd hh24:mi:ss') \r\n&gt;                               || L_TZ,\r\n&gt;                               'yyyy-mm-dd hh24:mi:ssTZH:TZM')) AS DATE);\r\n&gt; \r\n&gt; \r\n&gt;     \r\n&gt;     L_START_TIME_UTC := CAST(SYS_EXTRACT_UTC(\r\n&gt;                               TO_TIMESTAMP_TZ(\r\n&gt;                                 TO_CHAR(L_START_TIME, 'yyyy-mm-dd hh24:mi:ss') \r\n&gt;                                 || L_TZ,\r\n&gt;                                 'yyyy-mm-dd hh24:mi:ssTZH:TZM')) AS DATE);\r\n&gt; \r\n&gt;     \r\n&gt;     IF (L_IS_REALTIME = 1) THEN\r\n&gt;       CALCULATE_BUCKETS(L_BUCKET_COUNT, L_BUCKET_INTERVAL, \r\n&gt;                         (L_END_TIME - L_START_TIME)*DTOS,\r\n&gt;                         G_METRIC_SOURCE_HISTORY);\r\n&gt;     ELSE\r\n&gt;       \r\n&gt;       CALCULATE_BUCKETS(L_BUCKET_COUNT, L_BUCKET_INTERVAL, \r\n&gt;                         (L_END_TIME - L_START_TIME)*DTOS,\r\n&gt;                         NULL);\r\n&gt; \r\n&gt;       \r\n&gt;       L_SNAP_QRY := q'[\r\n&gt;         SELECT MIN(snap_id)-1, MAX(snap_id)\r\n&gt;           FROM awr_root_snapshot\r\n&gt;          WHERE dbid = :l_dbid\r\n&gt;            AND cast((end_interval_time_tz at time zone 'UTC') as DATE)\r\n&gt;                 &gt; to_date(:l_start_time_utc, :date_fmt)\r\n&gt;            AND cast((begin_interval_time_tz at time zone 'UTC') as DATE)\r\n&gt;                 &lt; to_date(:l_end_time_utc, :date_fmt)]';\r\n&gt; \r\n&gt;       IF (SYS_CONTEXT('USERENV','CON_ID') &gt; 2) THEN\r\n&gt;         L_AWR_VIEW_PREFIX := \r\n&gt;           DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(L_START_TIME);\r\n&gt; \r\n&gt;         DBMS_SQLTUNE_UTIL1.REPLACE_AWR_VIEW_PREFIX(L_SNAP_QRY, \r\n&gt;                                                    L_AWR_VIEW_PREFIX);\r\n&gt;       END IF;\r\n&gt; \r\n&gt;       IF (L_AWR_VIEW_PREFIX = DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT) THEN\r\n&gt;         L_DBID := SYS_CONTEXT('USERENV','DBID');\r\n&gt;       END IF;\r\n&gt; \r\n&gt;       BEGIN\r\n&gt;         EXECUTE IMMEDIATE L_SNAP_QRY\r\n&gt;         INTO L_BEGIN_SNAP_ID, L_END_SNAP_ID\r\n&gt;         USING L_DBID, \r\n&gt;               TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;               TO_CHAR(L_END_TIME_UTC, DATE_FMT), DATE_FMT;\r\n&gt;       EXCEPTION\r\n&gt;         WHEN NO_DATA_FOUND THEN\r\n&gt;           L_BEGIN_SNAP_ID := NULL;\r\n&gt;           L_END_SNAP_ID := NULL;\r\n&gt;       END;\r\n&gt; \r\n&gt;       \r\n&gt;       \r\n&gt;       L_AWR_PERIOD := PRVT_AWRV_METADATA(P_START_TIME =&gt; L_START_TIME, \r\n&gt;                                          P_END_TIME =&gt; L_END_TIME,\r\n&gt;                                          P_DBID =&gt; L_DBID);\r\n&gt; \r\n&gt;       L_AWR_PERIOD.M_BEGIN_SNAP := L_BEGIN_SNAP_ID;\r\n&gt;       L_AWR_PERIOD.M_END_SNAP := L_END_SNAP_ID;\r\n&gt;       L_AWR_PERIOD.M_MIN_TIME := L_START_TIME;\r\n&gt;       L_AWR_PERIOD.M_MAX_TIME := L_END_TIME;\r\n&gt; \r\n&gt;       \r\n&gt;       IF (L_AWR_PERIOD.M_BEGIN_SNAP IS NULL OR\r\n&gt;           L_AWR_PERIOD.M_BEGIN_SNAP = L_AWR_PERIOD.M_END_SNAP)\r\n&gt;       THEN\r\n&gt; \r\n&gt;         L_ERRMSG := '[' || L_AWR_PERIOD.M_DBID || ']' ||\r\n&gt;                     '[' || L_AWR_PERIOD.M_INST_ID_LOW || '.' ||\r\n&gt;                            L_AWR_PERIOD.M_INST_ID_HIGH || ']' ||\r\n&gt;                     '[' || L_AWR_PERIOD.M_BEGIN_SNAP || '.' || \r\n&gt;                            L_AWR_PERIOD.M_END_SNAP || ']' ||\r\n&gt;                     '[' || TO_CHAR(L_AWR_PERIOD.M_MIN_TIME, \r\n&gt;                                    DBMS_REPORT.DATE_FMT) || '-' ||\r\n&gt;                            TO_CHAR(L_AWR_PERIOD.M_MAX_TIME, \r\n&gt;                                    DBMS_REPORT.DATE_FMT) || ']';\r\n&gt;         \r\n&gt;         L_AWR_PERIOD := NULL;\r\n&gt; \r\n&gt;         \r\n&gt;         L_ERROR_XML := ERROR_XML('report_workload',\r\n&gt;                                  -20800,\r\n&gt;                                  'Insufficient awr data', \r\n&gt;                                  L_ERRMSG);\r\n&gt;       ELSE\r\n&gt; \r\n&gt;         L_ERRMSG := NULL;\r\n&gt;         L_ERROR_XML := NULL;\r\n&gt; \r\n&gt;       END IF;\r\n&gt; \r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (NOT I_PARSE_REPORT_LEVEL(L_REPORT_LEVEL, L_RSRCMGR_DETAIL, \r\n&gt;                                  L_SYSMETRIC_DETAIL, L_SQL_TIME_DETAIL,\r\n&gt;                                  L_WAIT_TIME_DETAIL, L_STORAGE_DETAIL,\r\n&gt;                                  L_SESSION_DETAIL)) THEN\r\n&gt;       SYS.DBMS_SYS_ERROR.RAISE_SYSTEM_ERROR(SYS_ERR_PARAM, 'report_level');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (L_RSRCMGR_DETAIL = 1) THEN\r\n&gt;       L_RM_METRICS_XML := GET_RMMETRICS_XML(L_IS_REALTIME, \r\n&gt;                                             L_DBID,\r\n&gt;                                             L_START_TIME,\r\n&gt;                                             L_END_TIME,\r\n&gt;                                             L_BUCKET_COUNT,\r\n&gt;                                             L_BUCKET_INTERVAL,\r\n&gt;                                             L_AWR_PERIOD,\r\n&gt;                                             SHOW_SQL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (L_SYSMETRIC_DETAIL = 1) THEN        \r\n&gt;         L_SYS_METRICS_XML := GET_SYSMETRICS_XML(L_IS_REALTIME,\r\n&gt;                                                 L_DBID,\r\n&gt;                                                 L_START_TIME_UTC,\r\n&gt;                                                 L_END_TIME_UTC,\r\n&gt;                                                 L_BUCKET_COUNT,\r\n&gt;                                                 L_BUCKET_INTERVAL,\r\n&gt;                                                 L_AWR_PERIOD,\r\n&gt;                                                 SHOW_SQL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     IF (L_SQL_TIME_DETAIL = 1) THEN\r\n&gt;       L_SQL_TIME_XML := GET_SQL_N_PARSE_TIME_XML(L_IS_REALTIME,\r\n&gt;                                                  L_DBID,\r\n&gt;                                                  L_START_TIME_UTC,\r\n&gt;                                                  L_END_TIME_UTC,\r\n&gt;                                                  L_BUCKET_COUNT,\r\n&gt;                                                  L_BUCKET_INTERVAL,\r\n&gt;                                                  L_AWR_PERIOD,\r\n&gt;                                                  SHOW_SQL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (L_WAIT_TIME_DETAIL = 1) THEN\r\n&gt;       L_WAIT_TIME_XML := GET_WAIT_TIME_XML(L_IS_REALTIME,\r\n&gt;                                            L_DBID,\r\n&gt;                                            L_START_TIME_UTC,\r\n&gt;                                            L_END_TIME_UTC,\r\n&gt;                                            L_BUCKET_COUNT,\r\n&gt;                                            L_BUCKET_INTERVAL,\r\n&gt;                                            L_AWR_PERIOD,\r\n&gt;                                            SHOW_SQL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (L_STORAGE_DETAIL = 1) THEN\r\n&gt;       L_STORAGE_METRICS_XML := GET_STORAGE_METRICS_XML(L_SERVICE_TYPE,\r\n&gt;                                                        SHOW_SQL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     IF (L_SESSION_DETAIL = 1) THEN\r\n&gt;       L_SESSION_METRICS_XML := GET_SESSION_METRICS_XML(SHOW_SQL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     DBMS_REPORT.GET_TIMING_INFO(1, L_ELAPSED, L_CPU);\r\n&gt; \r\n&gt;     \r\n&gt;     \r\n&gt;     L_REPORT_XML :=\r\n&gt;       PRVT_REPORT_TAGS.BUILD_REPORT_TAG(\r\n&gt;                          DBMS_REPORT.BUILD_REPORT_REFERENCE_STRUCT(\r\n&gt;                            'awrv','topsql', L_REF_PARAMS),\r\n&gt;                          L_ELAPSED, L_CPU);\r\n&gt; \r\n&gt;     \r\n&gt;     \r\n&gt;     IF (L_RM_METRICS_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, L_RM_METRICS_XML);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (L_SYS_METRICS_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, L_SYS_METRICS_XML);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (L_SQL_TIME_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, L_SQL_TIME_XML);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (L_WAIT_TIME_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, L_WAIT_TIME_XML);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (L_STORAGE_METRICS_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, \r\n&gt;                                                   L_STORAGE_METRICS_XML);\r\n&gt;     END IF;\r\n&gt;     \r\n&gt;     IF (L_SESSION_METRICS_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, \r\n&gt;                                                   L_SESSION_METRICS_XML);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (L_ERROR_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, \r\n&gt;                                                   L_ERROR_XML);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     &lt;&lt;DONE&gt;&gt;\r\n&gt;     \r\n&gt;     \r\n&gt;     IF (L_REPORT_XML IS NULL) THEN\r\n&gt;       \r\n&gt;       L_REPORT_XML :=\r\n&gt;         PRVT_REPORT_TAGS.BUILD_REPORT_TAG(\r\n&gt;           DBMS_REPORT.BUILD_REPORT_REFERENCE_STRUCT(\r\n&gt;             'awrv','topsql',L_REF_PARAMS),\r\n&gt;           NULL, NULL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (L_SET_ENV) THEN\r\n&gt;       \r\n&gt;       DBMS_REPORT.RESTORE_REPORT_ENV(L_ORIG_ENV);\r\n&gt;     END IF;\r\n&gt;  \r\n&gt;     \r\n&gt;     RETURN L_REPORT_XML;\r\n&gt; \r\n&gt;   END REPORT_WORKLOAD;\r\n&gt; \r\n&gt; \r\n<\/pre>\n<div id=\"SYS.PRVT_AWRV_METADATA.TYPE BODY.18.0.0.0_RU\">SYS.PRVT_AWRV_METADATA &#8211; TYPE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">288,290c288,294\r\n&lt;         IF (M_RESOLVED_DB_TYPE \r\n&lt;           IN (DBMS_SQLTUNE_UTIL2.DB_TYPE_PDB, \r\n&lt;                 DBMS_SQLTUNE_UTIL2.DB_TYPE_IMP))\r\n---\r\n&gt; \r\n&gt;         IF (M_RESOLVED_DB_TYPE IN\r\n&gt;               (DBMS_SQLTUNE_UTIL2.DB_TYPE_PDB, \r\n&gt;                DBMS_SQLTUNE_UTIL2.DB_TYPE_IMP)\r\n&gt;             AND\r\n&gt;             DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(P_START_TIME) = \r\n&gt;               DBMS_SQLTUNE_UTIL1.AWR_VIEW_PDB)\r\n432c436,438\r\n&lt;     IF (SYS.DBMS_SQLTUNE_UTIL0.CDB_IS_PDB(L_CON_NAME, L_CON_ID)) THEN  \r\n---\r\n&gt;     IF (SYS.DBMS_SQLTUNE_UTIL0.CDB_IS_PDB(L_CON_NAME, L_CON_ID) AND\r\n&gt;         DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(P_START_TIME) = \r\n&gt;           DBMS_SQLTUNE_UTIL1.AWR_VIEW_PDB) THEN  \r\n<\/pre>\n<div id=\"SYS.WRI$_REPT_AWRV.TYPE BODY.18.0.0.0_RU\">SYS.WRI$_REPT_AWRV &#8211; TYPE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">62a63,65\r\n&gt;     P_INCLUDE_SQLS     NUMBER := 1;\r\n&gt;     P_JET              NUMBER := 0;\r\n&gt;     L_SERVICE_TYPE     VARCHAR2(32);\r\n532,537d534\r\n&lt;       P_LAST_REFRESH_TIME := TO_DATE(\r\n&lt;                                DBMS_REPORT.GET_PARAM(PARAMS,\r\n&lt;                                                       'last_refresh_time',\r\n&lt;                                                       NULLABLE=&gt;TRUE),\r\n&lt;                                DBMS_REPORT.DATE_FMT_MOD);\r\n&lt; \r\n539,540c536\r\n&lt;       P_INST_ID := TO_NUMBER(\r\n&lt;                      DBMS_REPORT.GET_PARAM(PARAMS,'inst_id',NULLABLE=&gt;TRUE));\r\n---\r\n&gt;       P_DBID := TO_NUMBER(DBMS_REPORT.GET_PARAM(PARAMS,'dbid',NULLABLE=&gt;TRUE));\r\n543c539,540\r\n&lt;       P_DBID := TO_NUMBER(DBMS_REPORT.GET_PARAM(PARAMS,'dbid',NULLABLE=&gt;TRUE));\r\n---\r\n&gt;       P_INST_ID := TO_NUMBER(\r\n&gt;                        DBMS_REPORT.GET_PARAM(PARAMS,'inst_id',NULLABLE=&gt;TRUE));\r\n553a551\r\n&gt;       L_SERVICE_TYPE := DBMS_SQLTUNE_UTIL2.GET_CLOUD_SERVICE_TYPE();\r\n556,557c554\r\n&lt;       P_TOP_N_DETAIL := TO_NUMBER(DBMS_REPORT.GET_PARAM(PARAMS,'top_n_detail',\r\n&lt;                                                    NULLABLE=&gt;TRUE));\r\n---\r\n&gt;       P_JET := TO_NUMBER(DBMS_REPORT.GET_PARAM(PARAMS,'is_jet', NULLABLE=&gt;TRUE));\r\n560,564d556\r\n&lt;       P_OUTER_START_TIME := TO_DATE(\r\n&lt;                               DBMS_REPORT.GET_PARAM(PARAMS,'outer_start_time',\r\n&lt;                                                     NULLABLE=&gt;TRUE),\r\n&lt;                               DBMS_REPORT.DATE_FMT_MOD);\r\n&lt; \r\n566,569c558,577\r\n&lt;       P_OUTER_END_TIME := TO_DATE(\r\n&lt;                       DBMS_REPORT.GET_PARAM(PARAMS,'outer_end_time',\r\n&lt;                                                     NULLABLE=&gt;TRUE),\r\n&lt;                             DBMS_REPORT.DATE_FMT_MOD);\r\n---\r\n&gt;       IF (P_JET = 1 OR\r\n&gt;           (L_SERVICE_TYPE IN \r\n&gt;             (DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_S,\r\n&gt;              DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_D,\r\n&gt;              DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_S,\r\n&gt;              DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_D)\r\n&gt;            AND SYS_CONTEXT('USERENV', 'CON_ID') &gt; 2)) THEN\r\n&gt; \r\n&gt;         \r\n&gt;         P_REPORT_LEVEL := DBMS_REPORT.GET_PARAM(PARAMS,'report_level',\r\n&gt;                                                 NULLABLE=&gt;TRUE);\r\n&gt; \r\n&gt;         REPORT_XML := PRVT_AWR_VIEWER.REPORT_WORKLOAD(\r\n&gt;                         SERVICE_TYPE =&gt; L_SERVICE_TYPE,\r\n&gt;                         IS_REALTIME  =&gt; P_IS_REALTIME,\r\n&gt;                         START_TIME   =&gt; P_START_TIME,\r\n&gt;                         END_TIME     =&gt; P_END_TIME,\r\n&gt;                         DBID         =&gt; P_DBID,\r\n&gt;                         REPORT_LEVEL =&gt; P_REPORT_LEVEL,\r\n&gt;                         SHOW_SQL     =&gt; P_SHOW_SQL);\r\n572,573c580\r\n&lt;       P_DIM_NAME := DBMS_REPORT.GET_PARAM(PARAMS,'dim_name',NULLABLE=&gt;TRUE);\r\n&lt;       P_DIM_STAT := DBMS_REPORT.GET_PARAM(PARAMS,'dim_stat',NULLABLE=&gt;TRUE);\r\n---\r\n&gt;       ELSE\r\n575,587c582,601\r\n&lt;       REPORT_XML := PRVT_AWR_VIEWER.REPORT_TOPSQL_XML(\r\n&lt;                       START_TIME        =&gt; P_START_TIME,\r\n&lt;                       END_TIME          =&gt; P_END_TIME,\r\n&lt;                       LAST_REFRESH_TIME =&gt; P_LAST_REFRESH_TIME,\r\n&lt;                       INST_ID           =&gt; P_INST_ID,\r\n&lt;                       DBID              =&gt; P_DBID,\r\n&lt;                       IS_REALTIME       =&gt; P_IS_REALTIME,\r\n&lt;                       TOP_N_DETAIL      =&gt; P_TOP_N_DETAIL,\r\n&lt;                       OUTER_START_TIME  =&gt; P_OUTER_START_TIME,\r\n&lt;                       OUTER_END_TIME    =&gt; P_OUTER_END_TIME,\r\n&lt;                       DIM_NAME          =&gt; P_DIM_NAME,\r\n&lt;                       DIM_STAT          =&gt; P_DIM_STAT,\r\n&lt;                       SHOW_SQL          =&gt; P_SHOW_SQL);\r\n---\r\n&gt;         \r\n&gt;         P_INCLUDE_SQLS := TO_NUMBER(\r\n&gt;                             DBMS_REPORT.GET_PARAM(PARAMS,'include_sqls', \r\n&gt;                                                   NULLABLE=&gt;TRUE));\r\n&gt; \r\n&gt;         P_LAST_REFRESH_TIME := TO_DATE(\r\n&gt;                                  DBMS_REPORT.GET_PARAM(PARAMS,\r\n&gt;                                                         'last_refresh_time',\r\n&gt;                                                         NULLABLE=&gt;TRUE),\r\n&gt;                                  DBMS_REPORT.DATE_FMT_MOD);\r\n&gt; \r\n&gt;         \r\n&gt;         P_TOP_N_DETAIL := TO_NUMBER(DBMS_REPORT.GET_PARAM(PARAMS,'top_n_detail',\r\n&gt;                                                      NULLABLE=&gt;TRUE));\r\n&gt; \r\n&gt;         \r\n&gt;         P_OUTER_START_TIME := TO_DATE(\r\n&gt;                                 DBMS_REPORT.GET_PARAM(PARAMS,'outer_start_time',\r\n&gt;                                                       NULLABLE=&gt;TRUE),\r\n&gt;                                 DBMS_REPORT.DATE_FMT_MOD);\r\n588a603,627\r\n&gt;         \r\n&gt;         P_OUTER_END_TIME := TO_DATE(\r\n&gt;                               DBMS_REPORT.GET_PARAM(PARAMS,'outer_end_time',\r\n&gt;                                                     NULLABLE=&gt;TRUE),\r\n&gt;                               DBMS_REPORT.DATE_FMT_MOD);\r\n&gt; \r\n&gt;         \r\n&gt;         P_DIM_NAME := DBMS_REPORT.GET_PARAM(PARAMS,'dim_name',NULLABLE=&gt;TRUE);\r\n&gt;         P_DIM_STAT := DBMS_REPORT.GET_PARAM(PARAMS,'dim_stat',NULLABLE=&gt;TRUE);\r\n&gt; \r\n&gt;         REPORT_XML := PRVT_AWR_VIEWER.REPORT_TOPSQL_XML(\r\n&gt;                         START_TIME        =&gt; P_START_TIME,\r\n&gt;                         END_TIME          =&gt; P_END_TIME,\r\n&gt;                         LAST_REFRESH_TIME =&gt; P_LAST_REFRESH_TIME,\r\n&gt;                         INST_ID           =&gt; P_INST_ID,\r\n&gt;                         DBID              =&gt; P_DBID,\r\n&gt;                         IS_REALTIME       =&gt; P_IS_REALTIME,\r\n&gt;                         TOP_N_DETAIL      =&gt; P_TOP_N_DETAIL,\r\n&gt;                         OUTER_START_TIME  =&gt; P_OUTER_START_TIME,\r\n&gt;                         OUTER_END_TIME    =&gt; P_OUTER_END_TIME,\r\n&gt;                         DIM_NAME          =&gt; P_DIM_NAME,\r\n&gt;                         DIM_STAT          =&gt; P_DIM_STAT,\r\n&gt;                         INCLUDE_SQLS      =&gt; P_INCLUDE_SQLS,\r\n&gt;                         SHOW_SQL          =&gt; P_SHOW_SQL);\r\n&gt;       END IF;\r\n<\/pre>\n<h3><strong>19.0.0.0<\/strong><\/h3>\n<div id=\"DVSYS.DBMS_MACADM.PACKAGE BODY.18.0.0.0_RU\">DVSYS.DBMS_MACADM &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">2570a2571,2576\r\n&gt;     \r\n&gt;     \r\n&gt;     ELSIF (TMP2) LIKE '%_LOG_SEGMENT_DUMP_PATCH%' THEN\r\n&gt;       RETURN 'Y';\r\n&gt;     ELSIF (TMP2) LIKE '%_LOG_SEGMENT_DUMP_PARAMETER%' THEN\r\n&gt;       RETURN 'Y';\r\n<\/pre>\n<div id=\"MDSYS.SDO_JOIN.FUNCTION.18.0.0.0_RU\">MDSYS.SDO_JOIN &#8211; FUNCTION (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">495,498c495,503\r\n&lt;         FULLTABNM1 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NITABNAME1), FALSE) ||\r\n&lt;           ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN1), FALSE) || ' ) ';\r\n---\r\n&gt;         IF ( IPTN1 IS NULL ) THEN\r\n&gt;           FULLTABNM1 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NITABNAME1), FALSE);\r\n&gt;         ELSE\r\n&gt;           FULLTABNM1 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NITABNAME1), FALSE) ||\r\n&gt;             ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN1), FALSE) || ' ) ';\r\n&gt;         END IF;\r\n506,509c511,519\r\n&lt;         FULLTABNM2 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NITABNAME2), FALSE) ||\r\n&lt;           ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN2), FALSE) || ' ) ';\r\n---\r\n&gt;         IF ( IPTN2 IS NULL ) THEN\r\n&gt;           FULLTABNM2 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NITABNAME2), FALSE);\r\n&gt;         ELSE\r\n&gt;           FULLTABNM2 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NITABNAME2), FALSE) ||\r\n&gt;             ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN2), FALSE) || ' ) ';\r\n&gt;         END IF;\r\n517,520c527,535\r\n&lt;         FULLTABNM1 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(ITABNAME1), FALSE) ||\r\n&lt;           ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN1), FALSE) || ' ) ';\r\n---\r\n&gt;         IF ( IPTN1 IS NULL ) THEN\r\n&gt;           FULLTABNM1 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(ITABNAME1), FALSE);\r\n&gt;         ELSE\r\n&gt;           FULLTABNM1 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(ITABNAME1), FALSE) ||\r\n&gt;             ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN1), FALSE) || ' ) ';\r\n&gt;         END IF;\r\n528,531c543,551\r\n&lt;         FULLTABNM2 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(ITABNAME2), FALSE) ||\r\n&lt;           ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN2), FALSE) || ' ) ';\r\n---\r\n&gt;         IF ( IPTN2 IS NULL ) THEN\r\n&gt;           FULLTABNM2 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(ITABNAME2), FALSE);\r\n&gt;         ELSE\r\n&gt;           FULLTABNM2 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(ITABNAME2), FALSE) ||\r\n&gt;             ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN2), FALSE) || ' ) ';\r\n&gt;         END IF;\r\n<\/pre>\n<div id=\"SYS.DBMS_BACKUP_RESTORE.PACKAGE.18.0.0.0_18.9RUR\">SYS.DBMS_BACKUP_RESTORE &#8211; PACKAGE (18.9RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">12c12\r\n&lt;   bannerVersion CONSTANT VARCHAR2(15) := '18.09.01.00';\r\n---\r\n&gt;   bannerVersion CONSTANT VARCHAR2(15) := '18.09.02.00';\r\n24,26c24,26\r\n&lt;   fsn  CONSTANT NUMBER := instr('18.09.01.00', '.');\r\n&lt;   msn  CONSTANT NUMBER := instr('18.09.01.00', '.', fsn + 1);\r\n&lt;   psn  CONSTANT NUMBER := instr('18.09.01.00', '.', msn + 1);\r\n---\r\n&gt;   fsn  CONSTANT NUMBER := instr('18.09.02.00', '.');\r\n&gt;   msn  CONSTANT NUMBER := instr('18.09.02.00', '.', fsn + 1);\r\n&gt;   psn  CONSTANT NUMBER := instr('18.09.02.00', '.', msn + 1);\r\n29c29\r\n&lt;                            to_number(substr('18.09.01.00', 1, fsn - 1));\r\n---\r\n&gt;                            to_number(substr('18.09.02.00', 1, fsn - 1));\r\n31c31\r\n&lt;                to_number(substr('18.09.01.00', fsn + 1, msn - fsn - 1));\r\n---\r\n&gt;                to_number(substr('18.09.02.00', fsn + 1, msn - fsn - 1));\r\n33c33\r\n&lt;               to_number(substr('18.09.01.00',  msn + 1, psn - msn - 1));\r\n---\r\n&gt;               to_number(substr('18.09.02.00',  msn + 1, psn - msn - 1));\r\n35c35\r\n&lt;                              to_number(substr('18.09.01.00',  psn + 1));\r\n---\r\n&gt;                              to_number(substr('18.09.02.00',  psn + 1));\r\n<\/pre>\n<div id=\"SYS.DBMS_BACKUP_RESTORE.PACKAGE.18.0.0.0_18.10RUR\">SYS.DBMS_BACKUP_RESTORE &#8211; PACKAGE (18.10RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">12c12\r\n&lt;   bannerVersion CONSTANT VARCHAR2(15) := '18.10.00.00';\r\n---\r\n&gt;   bannerVersion CONSTANT VARCHAR2(15) := '18.10.01.00';\r\n24,26c24,26\r\n&lt;   fsn  CONSTANT NUMBER := instr('18.10.00.00', '.');\r\n&lt;   msn  CONSTANT NUMBER := instr('18.10.00.00', '.', fsn + 1);\r\n&lt;   psn  CONSTANT NUMBER := instr('18.10.00.00', '.', msn + 1);\r\n---\r\n&gt;   fsn  CONSTANT NUMBER := instr('18.10.01.00', '.');\r\n&gt;   msn  CONSTANT NUMBER := instr('18.10.01.00', '.', fsn + 1);\r\n&gt;   psn  CONSTANT NUMBER := instr('18.10.01.00', '.', msn + 1);\r\n29c29\r\n&lt;                            to_number(substr('18.10.00.00', 1, fsn - 1));\r\n---\r\n&gt;                            to_number(substr('18.10.01.00', 1, fsn - 1));\r\n31c31\r\n&lt;                to_number(substr('18.10.00.00', fsn + 1, msn - fsn - 1));\r\n---\r\n&gt;                to_number(substr('18.10.01.00', fsn + 1, msn - fsn - 1));\r\n33c33\r\n&lt;               to_number(substr('18.10.00.00',  msn + 1, psn - msn - 1));\r\n---\r\n&gt;               to_number(substr('18.10.01.00',  msn + 1, psn - msn - 1));\r\n35c35\r\n&lt;                              to_number(substr('18.10.00.00',  psn + 1));\r\n---\r\n&gt;                              to_number(substr('18.10.01.00',  psn + 1));\r\n<\/pre>\n<div id=\"SYS.DBMS_BACKUP_RESTORE.PACKAGE.18.0.0.0_RU\">SYS.DBMS_BACKUP_RESTORE &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">12c12\r\n&lt;   bannerVersion CONSTANT VARCHAR2(15) := '18.10.00.00';\r\n---\r\n&gt;   bannerVersion CONSTANT VARCHAR2(15) := '18.11.00.00';\r\n24,26c24,26\r\n&lt;   fsn  CONSTANT NUMBER := instr('18.10.00.00', '.');\r\n&lt;   msn  CONSTANT NUMBER := instr('18.10.00.00', '.', fsn + 1);\r\n&lt;   psn  CONSTANT NUMBER := instr('18.10.00.00', '.', msn + 1);\r\n---\r\n&gt;   fsn  CONSTANT NUMBER := instr('18.11.00.00', '.');\r\n&gt;   msn  CONSTANT NUMBER := instr('18.11.00.00', '.', fsn + 1);\r\n&gt;   psn  CONSTANT NUMBER := instr('18.11.00.00', '.', msn + 1);\r\n29c29\r\n&lt;                            to_number(substr('18.10.00.00', 1, fsn - 1));\r\n---\r\n&gt;                            to_number(substr('18.11.00.00', 1, fsn - 1));\r\n31c31\r\n&lt;                to_number(substr('18.10.00.00', fsn + 1, msn - fsn - 1));\r\n---\r\n&gt;                to_number(substr('18.11.00.00', fsn + 1, msn - fsn - 1));\r\n33c33\r\n&lt;               to_number(substr('18.10.00.00',  msn + 1, psn - msn - 1));\r\n---\r\n&gt;               to_number(substr('18.11.00.00',  msn + 1, psn - msn - 1));\r\n35c35\r\n&lt;                              to_number(substr('18.10.00.00',  psn + 1));\r\n---\r\n&gt;                              to_number(substr('18.11.00.00',  psn + 1));\r\n<\/pre>\n<div id=\"SYS.DBMS_REGISTRY.PACKAGE.18.0.0.0_18.9RUR\">SYS.DBMS_REGISTRY &#8211; PACKAGE (18.9RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">13c13\r\n&lt;                                '18.9.1.0.0';\r\n---\r\n&gt;                                '18.9.2.0.0';\r\n<\/pre>\n<div id=\"SYS.DBMS_REGISTRY.PACKAGE.18.0.0.0_18.10RUR\">SYS.DBMS_REGISTRY &#8211; PACKAGE (18.10RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">13c13\r\n&lt;                                '18.10.0.0.0';\r\n---\r\n&gt;                                '18.10.1.0.0';\r\n<\/pre>\n<div id=\"SYS.DBMS_REGISTRY.PACKAGE.18.0.0.0_RU\">SYS.DBMS_REGISTRY &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">13c13\r\n&lt;                                '18.10.0.0.0';\r\n---\r\n&gt;                                '18.11.0.0.0';\r\n<\/pre>\n<div id=\"SYS.DBMS_REPORT.PACKAGE.18.0.0.0_RU\">SYS.DBMS_REPORT &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">667c667,672\r\n&lt;   --\r\n---\r\n&gt;   --    p_cloud_service_type\r\n&gt;   --                     (OUT)  - 0 NONE\r\n&gt;   --                              1 DWCS (Autonomous Data Warehouse)\r\n&gt;   --                              2 EECS (Exadata Express Cloud Service)\r\n&gt;   --                              3 PAAS (Platform As A Service (MDBCS))\r\n&gt;   --                              4 OLTP (ATP)\r\n678c683,684\r\n&lt;     p_packs                 OUT      NUMBER\r\n---\r\n&gt;     p_packs                 OUT      NUMBER,\r\n&gt;     p_cloud_service_type    OUT      NUMBER\r\n<\/pre>\n<div id=\"SYS.DBMS_SQLTUNE_UTIL2.PACKAGE.18.0.0.0_RU\">SYS.DBMS_SQLTUNE_UTIL2 &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">15a16,23\r\n&gt;   -- Cloud Service Type Constants\r\n&gt;   CLOUD_SERVICE_TYPE_NONE    CONSTANT VARCHAR2(30) := 'NONE';\r\n&gt;   CLOUD_SERVICE_TYPE_ADW_D   CONSTANT VARCHAR2(30) := 'ADW-D';\r\n&gt;   CLOUD_SERVICE_TYPE_ADW_S   CONSTANT VARCHAR2(30) := 'ADW-S';\r\n&gt;   CLOUD_SERVICE_TYPE_ATP_D   CONSTANT VARCHAR2(30) := 'ATP-D';\r\n&gt;   CLOUD_SERVICE_TYPE_ATP_S   CONSTANT VARCHAR2(30) := 'ATP-S';\r\n&gt;   CLOUD_SERVICE_TYPE_OTHER   CONSTANT VARCHAR2(30) := 'OTHER';\r\n&gt; \r\n313a322,381\r\n&gt; \r\n&gt;   -------------------------- get_cloud_service_type  --------------------------\r\n&gt;   -- NAME:\r\n&gt;   --     get_cloud_service_type\r\n&gt;   --\r\n&gt;   -- DESCRIPTION:\r\n&gt;   --     return value of _cloud_service_type parameter for cloud service type\r\n&gt;   --\r\n&gt;   -- RETURN:\r\n&gt;   --   CLOUD_SERVICE_TYPE_NONE    =&gt;  'NONE';\r\n&gt;   --   CLOUD_SERVICE_TYPE_ADW_D   =&gt;  'ADW-D';\r\n&gt;   --   CLOUD_SERVICE_TYPE_ADW_S   =&gt;  'ADW-S';\r\n&gt;   --   CLOUD_SERVICE_TYPE_ATP_D   =&gt;  'ATP-D';\r\n&gt;   --   CLOUD_SERVICE_TYPE_ATP_S   =&gt;  'ATP-S';\r\n&gt;   --   CLOUD_SERVICE_TYPE_OTHER   =&gt;  'OTHER';\r\n&gt;   -----------------------------------------------------------------------------\r\n&gt;   FUNCTION get_cloud_service_type\r\n&gt;   RETURN varchar2;\r\n&gt; \r\n&gt;   -------------------------- get_tz_offset  -----------------------------------\r\n&gt;   -- NAME:\r\n&gt;   --     get_tz_offset\r\n&gt;   --\r\n&gt;   -- DESCRIPTION:\r\n&gt;   --     get timezone offset from systimestamp\r\n&gt;   --\r\n&gt;   -- RETURN:\r\n&gt;   --     timezone offset in TZ_HOUR:TZ_MINUTE format\r\n&gt;   -----------------------------------------------------------------------------\r\n&gt;   FUNCTION get_tz_offset\r\n&gt;   RETURN VARCHAR2;\r\n&gt; \r\n&gt;   ----------------------------- chooseAwrForPdb -------------------------\r\n&gt;   -- NAME:\r\n&gt;   --     chooseAwrForPdb\r\n&gt;   --\r\n&gt;   -- DESCRIPTION:\r\n&gt;   --     This function determines the location\/prefix of the AWR view to use\r\n&gt;   --     for the database considering the following conditions:\r\n&gt;   --     1. Check whether local awr_pdb has snapshots.\r\n&gt;   --        If not, return AWR_VIEW_ROOT\r\n&gt;   --     2. If local awr has some snapshots use AWR_VIEW_PDB\r\n&gt;   --     3. If by change local awr was stopped\/disabled for some time\r\n&gt;   --         (say for eg., last 3 hrs not local awr snapshots)\r\n&gt;   --         then use AWR_VIEW_ROOT\r\n&gt;   --\r\n&gt;   --\r\n&gt;   -- NOTE: The beginTime and endTime used are in DB Timezone.\r\n&gt;   --       Unlike the case of ASH, no need to convert to UTC,\r\n&gt;   --       since end_interval_time in awr_root, awr_pdb  are in same TZ\r\n&gt;   --\r\n&gt;   -- PARAMETERS:\r\n&gt;   --     dbid            (IN)  - database id\r\n&gt;   --\r\n&gt;   -- RETURN:\r\n&gt;   --     Returned type can be 'AWR_ROOT' or 'AWR_PDB'.\r\n&gt;   --\r\n&gt;   -----------------------------------------------------------------------------\r\n&gt;   FUNCTION chooseAwrForPdb(beginTime IN DATE)\r\n&gt;   RETURN VARCHAR2;\r\n<\/pre>\n<div id=\"SYS.PRVT_AWR_VIEWER.PACKAGE.18.0.0.0_RU\">SYS.PRVT_AWR_VIEWER &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">417a418,419\r\n&gt;   \r\n&gt;   \r\n429a432\r\n&gt;     INCLUDE_SQLS      IN NUMBER         DEFAULT NULL,\r\n882a886,904\r\n&gt;   PROCEDURE CREATE_CONSUMER_GROUP_MAP(\r\n&gt;     P_CON_ID     IN     NUMBER,\r\n&gt;     P_AWR_PERIOD IN OUT NOCOPY PRVT_AWRV_METADATA,\r\n&gt;     P_CGRP_MAP   IN OUT NOCOPY PRVT_AWRV_INSTTAB);\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n911a934,1153\r\n&gt;   RETURN XMLTYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_RMMETRICS_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME      IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME        IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT 0)\r\n&gt;   RETURN XMLTYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_SQL_N_PARSE_TIME_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME_UTC  IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME_UTC    IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_WAIT_TIME_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME_UTC  IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME_UTC    IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_SYSMETRICS_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME_UTC  IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME_UTC    IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_STORAGE_METRICS_XML(\r\n&gt;     SERVICE_TYPE IN VARCHAR2 DEFAULT NULL,\r\n&gt;     SHOW_SQL     IN NUMBER   DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_SESSION_METRICS_XML(\r\n&gt;     SHOW_SQL        IN NUMBER   DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION REPORT_WORKLOAD(\r\n&gt;     SERVICE_TYPE   IN VARCHAR2 DEFAULT NULL,\r\n&gt;     IS_REALTIME    IN NUMBER   DEFAULT 1,\r\n&gt;     DBID           IN NUMBER   DEFAULT NULL,\r\n&gt;     START_TIME     IN DATE     DEFAULT NULL,\r\n&gt;     END_TIME       IN DATE     DEFAULT NULL,\r\n&gt;     REPORT_LEVEL   IN VARCHAR2 DEFAULT NULL,\r\n&gt;     SHOW_SQL       IN NUMBER   DEFAULT 0)\r\n<\/pre>\n<div id=\"SYS.DBMS_RCVMAN.PACKAGE BODY.18.0.0.0_18.9RUR\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY (18.9RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">122c122\r\n&lt; CATALOGVERSION CONSTANT VARCHAR2(11) := '18.09.01.00'; \r\n---\r\n&gt; CATALOGVERSION CONSTANT VARCHAR2(11) := '18.09.02.00'; \r\n<\/pre>\n<div id=\"SYS.DBMS_RCVMAN.PACKAGE BODY.18.0.0.0_RU\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">122c122\r\n&lt; CATALOGVERSION CONSTANT VARCHAR2(11) := '18.10.00.00'; \r\n---\r\n&gt; CATALOGVERSION CONSTANT VARCHAR2(11) := '18.11.00.00'; \r\n6266c6266\r\n&lt;           DECODE(A.NEXT_CHANGE#, HIGHSCNVAL, -2, A.STAMP) STAMP,\r\n---\r\n&gt;           DECODE(A.ARCHIVED, 'NO', -2, A.STAMP) STAMP,\r\n6472c6472\r\n&lt;           DECODE(A.NEXT_CHANGE#, HIGHSCNVAL, -2, A.STAMP) STAMP,\r\n---\r\n&gt;           DECODE(A.ARCHIVED, 'NO', -2, A.STAMP) STAMP,\r\n6634c6634\r\n&lt;           DECODE(A.NEXT_CHANGE#, HIGHSCNVAL, -2, A.STAMP) STAMP,\r\n---\r\n&gt;           DECODE(A.ARCHIVED, 'NO', -2, A.STAMP) STAMP,\r\n6721c6721\r\n&lt;           DECODE(A.NEXT_CHANGE#, HIGHSCNVAL, -2, A.STAMP) STAMP,\r\n---\r\n&gt;           DECODE(A.ARCHIVED, 'NO', -2, A.STAMP) STAMP,\r\n7871,7884d7870\r\n&lt; WITH\r\n&lt; MY_DBINC AS\r\n&lt;    (SELECT RESETLOGS_TIME, \r\n&lt;            RESETLOGS_CHANGE#,\r\n&lt;            PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&lt;     FROM V$DATABASE_INCARNATION             \r\n&lt;     START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&lt;           AND  RESETLOGS_TIME    = THIS_RESET_TIME  \r\n&lt;     CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&lt;     UNION ALL\r\n&lt;     SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&lt;            THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&lt;            NULL             NEXT_RESETLOGS_CHANGE#\r\n&lt;     FROM DUAL)\r\n7924c7910,7922\r\n&lt;            FROM V$DATAFILE_COPY CDF, MY_DBINC\r\n---\r\n&gt;            FROM V$DATAFILE_COPY CDF, \r\n&gt;             (SELECT RESETLOGS_TIME,\r\n&gt;               RESETLOGS_CHANGE#,\r\n&gt;              PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&gt;              FROM V$DATABASE_INCARNATION\r\n&gt;              START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&gt;               AND  RESETLOGS_TIME    = THIS_RESET_TIME\r\n&gt;               CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&gt;               UNION ALL\r\n&gt;               SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&gt;                THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&gt;                 NULL             NEXT_RESETLOGS_CHANGE#\r\n&gt;                FROM DUAL) MY_DBINC\r\n8079c8077,8089\r\n&lt;             FROM V$DATAFILE_COPY CDF, MY_DBINC\r\n---\r\n&gt;             FROM V$DATAFILE_COPY CDF, \r\n&gt;             (SELECT RESETLOGS_TIME,\r\n&gt;               RESETLOGS_CHANGE#,\r\n&gt;              PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&gt;              FROM V$DATABASE_INCARNATION\r\n&gt;              START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&gt;               AND  RESETLOGS_TIME    = THIS_RESET_TIME\r\n&gt;               CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&gt;               UNION ALL\r\n&gt;               SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&gt;                THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&gt;                 NULL             NEXT_RESETLOGS_CHANGE#\r\n&gt;                FROM DUAL) MY_DBINC\r\n<\/pre>\n<div id=\"SYS.DBMS_RCVMAN.PACKAGE BODY.18.0.0.0_18.10RUR\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY (18.10RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">122c122\r\n&lt; CATALOGVERSION CONSTANT VARCHAR2(11) := '18.10.00.00'; \r\n---\r\n&gt; CATALOGVERSION CONSTANT VARCHAR2(11) := '18.10.01.00'; \r\n<\/pre>\n<div id=\"SYS.DBMS_REPORT.PACKAGE BODY.18.0.0.0_RU\">SYS.DBMS_REPORT &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1055a1056,1060\r\n&gt;   EXCEPTION\r\n&gt;     WHEN OTHERS THEN\r\n&gt;       CONTENT_TYPE := CONTENT_TYPE_XML;\r\n&gt;       RETURN XMLTYPE('&lt;mesg type=\"oraerr\"&gt;'|| SQLERRM || \r\n&gt;                      '&lt;\/mesg&gt;').GETCLOBVAL();\r\n2011a2017,2021\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n2021c2031,2032\r\n&lt;     P_PACKS                 OUT      NUMBER\r\n---\r\n&gt;     P_PACKS                 OUT      NUMBER,\r\n&gt;     P_CLOUD_SERVICE_TYPE    OUT      NUMBER\r\n2257a2269,2299\r\n&gt;     \r\n&gt;     IF (V_RESOLVED_DB_TYPE\r\n&gt;         IN (DBMS_SQLTUNE_UTIL2.DB_TYPE_PDB, DBMS_SQLTUNE_UTIL2.DB_TYPE_IMP)) \r\n&gt;     THEN\r\n&gt;         SELECT CASE MAX(VALUE)\r\n&gt;                  WHEN 'DWCS' THEN 1\r\n&gt;                  WHEN 'EECS' THEN 2\r\n&gt;                  WHEN 'PAAS' THEN 3\r\n&gt;                  WHEN 'OLTP' THEN 4\r\n&gt;                  ELSE 0\r\n&gt;                END\r\n&gt;           INTO P_CLOUD_SERVICE_TYPE\r\n&gt;           FROM SYS.AWR_PDB_PARAMETER\r\n&gt;          WHERE DBID = P_DBID\r\n&gt;            AND SNAP_ID = V_END_SNAP\r\n&gt;            AND PARAMETER_NAME = '_cloud_service_type';\r\n&gt;     ELSE\r\n&gt;         SELECT CASE MAX(VALUE)\r\n&gt;                  WHEN 'DWCS' THEN 1\r\n&gt;                  WHEN 'EECS' THEN 2\r\n&gt;                  WHEN 'PAAS' THEN 3\r\n&gt;                  WHEN 'OLTP' THEN 4\r\n&gt;                  ELSE 0\r\n&gt;                END\r\n&gt;           INTO P_CLOUD_SERVICE_TYPE\r\n&gt;           FROM SYS.AWR_ROOT_PARAMETER\r\n&gt;          WHERE DBID = P_DBID\r\n&gt;            AND SNAP_ID = V_END_SNAP\r\n&gt;            AND PARAMETER_NAME = '_cloud_service_type';\r\n&gt;     END IF;\r\n&gt;       \r\n<\/pre>\n<div id=\"SYS.DBMS_SQLTUNE.PACKAGE BODY.18.0.0.0_RU\">SYS.DBMS_SQLTUNE &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">25990a25991,26033\r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt; \r\n&gt;     IF ( (LOCAL_DB = 1) \r\n&gt;           AND\r\n&gt;          (DBMS_SQLTUNE_UTIL2.GET_CLOUD_SERVICE_TYPE() IN \r\n&gt;           (DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_D,\r\n&gt;            DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_S,\r\n&gt;            DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_S,\r\n&gt;            DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_D))\r\n&gt;           AND \r\n&gt;          (DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(START_TIME) = \r\n&gt;                         DBMS_SQLTUNE_UTIL1.AWR_VIEW_PDB)\r\n&gt;        )\r\n&gt;     THEN  \r\n&gt;         TARGET_DBID := CON_DBID;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n<\/pre>\n<div id=\"SYS.DBMS_SQLTUNE_UTIL2.PACKAGE BODY.18.0.0.0_RU\">SYS.DBMS_SQLTUNE_UTIL2 &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">593a594,750\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_CLOUD_SERVICE_TYPE\r\n&gt;   RETURN VARCHAR2\r\n&gt;   IS\r\n&gt;     CLOUD_SERVICE_TYPE VARCHAR2(32);\r\n&gt;   BEGIN\r\n&gt; \r\n&gt;     SELECT \r\n&gt;       CASE \r\n&gt;         WHEN UPPER(SYS_CONTEXT('USERENV','CLOUD_SERVICE'))='PAAS' THEN\r\n&gt;           CASE \r\n&gt;             WHEN UPPER(MAX(PROPERTY_VALUE)) LIKE '%ADW.ORACLECLOUD.COM' THEN\r\n&gt;               CLOUD_SERVICE_TYPE_ADW_D\r\n&gt;       \t    WHEN UPPER(MAX(PROPERTY_VALUE)) LIKE '%ATP.ORACLECLOUD.COM' THEN \r\n&gt;               CLOUD_SERVICE_TYPE_ATP_D\r\n&gt;       \t    ELSE CLOUD_SERVICE_TYPE_OTHER\r\n&gt;           END\r\n&gt;         WHEN UPPER(SYS_CONTEXT('USERENV','CLOUD_SERVICE'))='DWCS' THEN \r\n&gt;           CLOUD_SERVICE_TYPE_ADW_S\r\n&gt;         WHEN UPPER(SYS_CONTEXT('USERENV','CLOUD_SERVICE'))='OLTP' THEN \r\n&gt;           CLOUD_SERVICE_TYPE_ATP_S\r\n&gt;         ELSE\r\n&gt;           UPPER(NVL(SYS_CONTEXT('USERENV','CLOUD_SERVICE'), \r\n&gt;                 CLOUD_SERVICE_TYPE_NONE))\r\n&gt;       END\r\n&gt;     INTO CLOUD_SERVICE_TYPE\r\n&gt;     FROM DATABASE_PROPERTIES\r\n&gt;     WHERE UPPER(PROPERTY_NAME) = 'GLOBAL_DB_NAME';\r\n&gt; \r\n&gt;     RETURN CLOUD_SERVICE_TYPE;\r\n&gt; \r\n&gt;   END GET_CLOUD_SERVICE_TYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_TZ_OFFSET\r\n&gt;   RETURN VARCHAR2\r\n&gt;   IS\r\n&gt;     L_TZ VARCHAR2(10);\r\n&gt;   BEGIN\r\n&gt;     \r\n&gt;     \r\n&gt;     L_TZ := EXTRACT(TIMEZONE_HOUR FROM SYSTIMESTAMP) || ':' ||\r\n&gt;                    EXTRACT(TIMEZONE_MINUTE FROM SYSTIMESTAMP);\r\n&gt;     RETURN L_TZ;\r\n&gt;   END GET_TZ_OFFSET;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION CHOOSEAWRFORPDB(\r\n&gt;         BEGINTIME IN DATE) \r\n&gt;   RETURN VARCHAR2\r\n&gt;   IS\r\n&gt;     L_AWR_LOCATION VARCHAR2(32) := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt;     L_SQLTEXT   VARCHAR2(4000);\r\n&gt;     L_PDB_TIME  DATE;\r\n&gt;     L_ROOT_TIME DATE;\r\n&gt; \r\n&gt;   BEGIN\r\n&gt;     \r\n&gt;     \r\n&gt;     L_SQLTEXT := \r\n&gt;       'SELECT CAST(MAX(end_interval_time) AS DATE)\r\n&gt;        FROM   AWR_PDB_SNAPSHOT\r\n&gt;        WHERE  dbid = :1';\r\n&gt;     EXECUTE IMMEDIATE L_SQLTEXT \r\n&gt;     INTO L_PDB_TIME\r\n&gt;     USING SYS_CONTEXT('USERENV', 'CON_DBID');\r\n&gt; \r\n&gt;     IF L_PDB_TIME IS NULL THEN\r\n&gt;       \r\n&gt;       L_AWR_LOCATION := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt;       RETURN L_AWR_LOCATION;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF L_PDB_TIME &gt;= BEGINTIME THEN\r\n&gt;       \r\n&gt;       L_AWR_LOCATION := DBMS_SQLTUNE_UTIL1.AWR_VIEW_PDB;\r\n&gt;       RETURN L_AWR_LOCATION;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     L_SQLTEXT := \r\n&gt;       'SELECT CAST(MAX(end_interval_time) AS DATE)\r\n&gt;        FROM   AWR_ROOT_SNAPSHOT\r\n&gt;        WHERE  dbid = :1';\r\n&gt;     EXECUTE IMMEDIATE L_SQLTEXT\r\n&gt;     INTO L_ROOT_TIME\r\n&gt;     USING SYS_CONTEXT('USERENV', 'DBID');\r\n&gt;     \r\n&gt;     IF ((L_ROOT_TIME IS NOT NULL) AND \r\n&gt;         (L_ROOT_TIME &gt;= BEGINTIME) \r\n&gt;        ) \r\n&gt;     THEN\r\n&gt;       \r\n&gt;       L_AWR_LOCATION := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt;       RETURN L_AWR_LOCATION;\r\n&gt; \r\n&gt;     ELSE \r\n&gt;         \r\n&gt;         L_AWR_LOCATION := DBMS_SQLTUNE_UTIL1.AWR_VIEW_PDB;\r\n&gt;         RETURN L_AWR_LOCATION;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_AWR_LOCATION;\r\n&gt; \r\n&gt;   END CHOOSEAWRFORPDB;\r\n&gt; \r\n<\/pre>\n<div id=\"SYS.PRVTEMX_PERF.PACKAGE BODY.18.0.0.0_RU\">SYS.PRVTEMX_PERF &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">7a8,13\r\n&gt;   AWR_PREFIX_ROOT   VARCHAR2(16) := 'sys.awr_root';\r\n&gt;   AWR_PREFIX_PDB    VARCHAR2(16) := 'sys.awr_pdb';\r\n&gt;   G_CLOUD_SERVICE_TYPE CONSTANT VARCHAR2(32) := \r\n&gt;                     DBMS_SQLTUNE_UTIL2.GET_CLOUD_SERVICE_TYPE();\r\n&gt; \r\n&gt;   \r\n379c385\r\n&lt;             from sys.dba_hist_active_sess_history a\r\n---\r\n&gt;             from #AWR_VIEW_PREFIX#_active_sess_history a\r\n462c468\r\n&lt;                             from sys.dba_hist_pdb_instance)) c');\r\n---\r\n&gt;                             from #AWR_VIEW_PREFIX#_pdb_instance)) c');\r\n485,502c491,550\r\n&lt;       SELECT MIN(SNAP_ID)\r\n&lt;         INTO L_BEGIN_SNAP\r\n&lt;         FROM SYS.DBA_HIST_ASH_SNAPSHOT\r\n&lt;        WHERE DBID            = L_DBID\r\n&lt;          AND INSTANCE_NUMBER = P_INST_ID\r\n&lt;          AND (END_INTERVAL_TIME   BETWEEN P_START_TIME AND P_END_TIME\r\n&lt;            OR BEGIN_INTERVAL_TIME BETWEEN P_START_TIME AND P_END_TIME\r\n&lt;            OR P_START_TIME BETWEEN BEGIN_INTERVAL_TIME AND END_INTERVAL_TIME);\r\n&lt; \r\n&lt;          \r\n&lt;       SELECT MAX(SNAP_ID)\r\n&lt;         INTO L_END_SNAP\r\n&lt;         FROM SYS.DBA_HIST_ASH_SNAPSHOT\r\n&lt;        WHERE DBID            = L_DBID\r\n&lt;          AND INSTANCE_NUMBER = P_INST_ID\r\n&lt;          AND (END_INTERVAL_TIME   BETWEEN P_START_TIME AND P_END_TIME\r\n&lt;            OR BEGIN_INTERVAL_TIME BETWEEN P_START_TIME AND P_END_TIME\r\n&lt;            OR P_END_TIME BETWEEN BEGIN_INTERVAL_TIME AND END_INTERVAL_TIME);\r\n---\r\n&gt;       \r\n&gt;       IF ((G_CLOUD_SERVICE_TYPE IN \r\n&gt;             (DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_D,\r\n&gt;              DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_S,\r\n&gt;              DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_S,\r\n&gt;              DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_D))\r\n&gt;           AND \r\n&gt;             (L_IS_ROOT = FALSE))\r\n&gt;       THEN  \r\n&gt;           L_QRY := REPLACE(L_QRY,'#AWR_VIEW_PREFIX#', AWR_PREFIX_PDB);\r\n&gt; \r\n&gt;           \r\n&gt;           SELECT MIN(SNAP_ID)\r\n&gt;             INTO L_BEGIN_SNAP\r\n&gt;             FROM SYS.AWR_PDB_ASH_SNAPSHOT\r\n&gt;            WHERE DBID            = L_DBID\r\n&gt;              AND INSTANCE_NUMBER = P_INST_ID\r\n&gt;              AND (END_INTERVAL_TIME   BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR BEGIN_INTERVAL_TIME BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR P_START_TIME BETWEEN \r\n&gt;                                BEGIN_INTERVAL_TIME AND END_INTERVAL_TIME);\r\n&gt; \r\n&gt;              \r\n&gt;           SELECT MAX(SNAP_ID)\r\n&gt;             INTO L_END_SNAP\r\n&gt;             FROM SYS.AWR_PDB_ASH_SNAPSHOT\r\n&gt;            WHERE DBID            = L_DBID\r\n&gt;              AND INSTANCE_NUMBER = P_INST_ID\r\n&gt;              AND (END_INTERVAL_TIME   BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR BEGIN_INTERVAL_TIME BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR P_END_TIME BETWEEN \r\n&gt;                              BEGIN_INTERVAL_TIME AND END_INTERVAL_TIME);\r\n&gt; \r\n&gt;       ELSE \r\n&gt;           \r\n&gt;           L_QRY := REPLACE(L_QRY,'#AWR_VIEW_PREFIX#', AWR_PREFIX_ROOT);\r\n&gt; \r\n&gt;           \r\n&gt;           SELECT MIN(SNAP_ID)\r\n&gt;             INTO L_BEGIN_SNAP\r\n&gt;             FROM SYS.AWR_ROOT_ASH_SNAPSHOT\r\n&gt;            WHERE DBID            = L_DBID\r\n&gt;              AND INSTANCE_NUMBER = P_INST_ID\r\n&gt;              AND (END_INTERVAL_TIME   BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR BEGIN_INTERVAL_TIME BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR P_START_TIME BETWEEN \r\n&gt;                                BEGIN_INTERVAL_TIME AND END_INTERVAL_TIME);\r\n&gt; \r\n&gt;              \r\n&gt;           SELECT MAX(SNAP_ID)\r\n&gt;             INTO L_END_SNAP\r\n&gt;             FROM SYS.AWR_ROOT_ASH_SNAPSHOT\r\n&gt;            WHERE DBID            = L_DBID\r\n&gt;              AND INSTANCE_NUMBER = P_INST_ID\r\n&gt;              AND (END_INTERVAL_TIME   BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR BEGIN_INTERVAL_TIME BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR P_END_TIME BETWEEN \r\n&gt;                              BEGIN_INTERVAL_TIME AND END_INTERVAL_TIME);\r\n&gt; \r\n&gt;       END IF;\r\n<\/pre>\n<div id=\"SYS.PRVTEMX_RSRCMGR.PACKAGE BODY.18.0.0.0_RU\">SYS.PRVTEMX_RSRCMGR &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">2530,2578d2529\r\n&lt;   PROCEDURE I_CREATE_AWR_CG_MAP(\r\n&lt;     P_CON_ID     IN     NUMBER,\r\n&lt;     P_AWR_PERIOD IN OUT NOCOPY PRVT_AWRV_METADATA,\r\n&lt;     P_CGRP_MAP   IN OUT NOCOPY PRVT_AWRV_INSTTAB)\r\n&lt;   IS\r\n&lt;     \r\n&lt;     SQLSTMT_MAP CONSTANT VARCHAR2(32767) := q'[\r\n&lt;       select sys.prvt_awrv_inst(id, name)\r\n&lt;         from (\r\n&lt;           select distinct \r\n&lt;                  consumer_group_id id, \r\n&lt;                  consumer_group_name name \r\n&lt;             from sys.awr_root_rsrc_consumer_group s\r\n&lt;            where s.dbid             = :m_dbid\r\n&lt;              and s.snap_id          &gt; :m_begin_snap\r\n&lt;              and s.snap_id         &lt;= :m_end_snap\r\n&lt;              and s.con_dbid         = :m_con_dbid\r\n&lt;              and ]' || P_AWR_PERIOD.GET_INST_CLAUSE('s') ||')';\r\n&lt;          \r\n&lt;   BEGIN\r\n&lt;     IF (P_CON_ID = 0 OR P_CON_ID &gt; 2) THEN\r\n&lt;       EXECUTE IMMEDIATE SQLSTMT_MAP\r\n&lt;         BULK COLLECT INTO P_CGRP_MAP\r\n&lt;         USING P_AWR_PERIOD.M_DBID,\r\n&lt;               P_AWR_PERIOD.M_BEGIN_SNAP, P_AWR_PERIOD.M_END_SNAP,\r\n&lt;               SYS.DBMS_SQLTUNE_UTIL0.CDBCON_ID_TO_DBID(P_CON_ID),\r\n&lt;               P_AWR_PERIOD.M_INST_ID_LOW, P_AWR_PERIOD.M_INST_ID_HIGH,\r\n&lt;               P_AWR_PERIOD.M_INST_ID_LIST;\r\n&lt;     ELSE\r\n&lt;       \r\n&lt;       P_CGRP_MAP := PRVT_AWRV_INSTTAB();\r\n&lt;     END IF;\r\n&lt;   END I_CREATE_AWR_CG_MAP;\r\n&lt; \r\n&lt; \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n&lt;   \r\n2883c2834,2835\r\n&lt;         I_CREATE_AWR_CG_MAP(L_CON_ID, AWR_PERIOD, L_DIM_MAP);  \r\n---\r\n&gt;         PRVT_AWR_VIEWER.CREATE_CONSUMER_GROUP_MAP(\r\n&gt;           L_CON_ID, AWR_PERIOD, L_DIM_MAP);  \r\n<\/pre>\n<div id=\"SYS.PRVT_AWR_VIEWER.PACKAGE BODY.18.0.0.0_RU\">SYS.PRVT_AWR_VIEWER &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1183a1184,1273\r\n&gt;   \r\n&gt;   \r\n&gt;   RMMETRICS_COMMON CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       with rmmetrics_data as (-- autonomous DB workload main query\r\n&gt;         select bucket_id, \r\n&gt;                new_id consumer_group_id,\r\n&gt;                case \r\n&gt;                  when rn = 1 and :is_awr = 1\r\n&gt;                    then (select \/*+ cardinality(t 1) *\/ instance_name\r\n&gt;                            from table(cast(:p_contTab \r\n&gt;                                       as sys.prvt_awrv_instTab)) t\r\n&gt;                           where t.inst_id = consumer_group_id)\r\n&gt;                  when rn = 1 \r\n&gt;                    then consumer_group_name \r\n&gt;                  else null \r\n&gt;                end consumer_group_name,\r\n&gt;                avg_cpu_utilization,\r\n&gt;                cpu_usage_per_sec,\r\n&gt;                avg_running_stmts,\r\n&gt;                avg_active_parallel_stmts,\r\n&gt;                avg_queued_parallel_stmts\r\n&gt;           from ( -- generate an id since default ids can be high numbers\r\n&gt;             select bucket_id,\r\n&gt;                    consumer_group_id,\r\n&gt;                    consumer_group_name,\r\n&gt;                    avg_cpu_utilization,\r\n&gt;                    cpu_usage_per_sec,\r\n&gt;                    avg_running_stmts,\r\n&gt;                    avg_active_parallel_stmts,\r\n&gt;                    avg_queued_parallel_stmts,\r\n&gt;                    row_number() over (partition by consumer_group_id, \r\n&gt;                                                consumer_group_name\r\n&gt;                                       order by bucket_id, \r\n&gt;                                                consumer_group_id, \r\n&gt;                                                consumer_group_name) rn,\r\n&gt;                    -- generate an id\r\n&gt;                    dense_rank() over (order by consumer_group_id, \r\n&gt;                                                consumer_group_name) new_id\r\n&gt;               from (#GENERATE_METRICS_BUCKETID#) rsrc\r\n&gt;               where avg_cpu_utilization + cpu_usage_per_sec + \r\n&gt;                     avg_running_stmts +\r\n&gt;                     avg_active_parallel_stmts + avg_queued_parallel_stmts &gt; 0) \r\n&gt;        )\r\n&gt; \r\n&gt;       -- construct xml\r\n&gt;       select xmlagg(\r\n&gt;                nvl2(buckets,\r\n&gt;                     xmlelement(\"stattype\",\r\n&gt;                      xmlattributes('rsrcmgrmetric' as \"name\"),\r\n&gt;                      xmlelement(\"stat_info\",\r\n&gt;                        nvl(stat_id, \r\n&gt;                            xmlelement(\"stat\", \r\n&gt;                              xmlattributes(\r\n&gt;                                consumer_group_id as \"id\", \r\n&gt;                                consumer_group_id as \"name\")))),\r\n&gt;                      #GENERATE_BUCKETS_TAG#),\r\n&gt;                     null))\r\n&gt;         from ( -- aggregate buckets\r\n&gt;           select #GENERATE_BUCKETID_TAG#,\r\n&gt;                  xmlagg(stat_id)  stat_id, \r\n&gt;                  max(consumer_group_id) consumer_group_id\r\n&gt;             from ( -- aggregate stats in each bucket\r\n&gt;               select bucket_id, \r\n&gt;                      max(consumer_group_id) consumer_group_id,\r\n&gt;                      xmlagg(stat_id order by consumer_group_id) stat_id,\r\n&gt;                      xmlagg(xmlelement(\"stat\",\r\n&gt;                       xmlattributes(consumer_group_id as \"id\",\r\n&gt;                             round(avg_cpu_utilization, 2)         as \"cpu\",\r\n&gt;                             round(cpu_usage_per_sec, 2)           as \"cpuUsage\",\r\n&gt;                             round(avg_running_stmts, 2)           as \"rst\",\r\n&gt;                             round(avg_active_parallel_stmts, 2)   as \"apst\",\r\n&gt;                             round(avg_queued_parallel_stmts, 2)   as \"qpst\"\r\n&gt;                         )\r\n&gt;                       )\r\n&gt;                       order by consumer_group_id)  stats\r\n&gt;                 from ( -- generate id name map\r\n&gt;                   select bucket_id, consumer_group_id,\r\n&gt;                          nvl2(consumer_group_name,\r\n&gt;                               xmlelement(\"stat\",\r\n&gt;                                xmlattributes(consumer_group_id as \"id\",\r\n&gt;                                  consumer_group_name as \"name\")),\r\n&gt;                               null)      stat_id,\r\n&gt;                          avg_cpu_utilization,\r\n&gt;                          cpu_usage_per_sec,\r\n&gt;                          avg_running_stmts,\r\n&gt;                          avg_active_parallel_stmts,\r\n&gt;                          avg_queued_parallel_stmts\r\n&gt;                    from rmmetrics_data)\r\n&gt;                group by bucket_id))]';\r\n&gt; \r\n1311a1402,1461\r\n&gt;   PROCEDURE CREATE_CONSUMER_GROUP_MAP(\r\n&gt;     P_CON_ID     IN     NUMBER,\r\n&gt;     P_AWR_PERIOD IN OUT NOCOPY PRVT_AWRV_METADATA,\r\n&gt;     P_CGRP_MAP   IN OUT NOCOPY PRVT_AWRV_INSTTAB)\r\n&gt;   IS\r\n&gt; \r\n&gt;     L_QRY VARCHAR2(32767) := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     SQLSTMT_MAP CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       select sys.prvt_awrv_inst(id, name)\r\n&gt;         from (\r\n&gt;           select distinct \r\n&gt;                  consumer_group_id id, \r\n&gt;                  consumer_group_name name \r\n&gt;             from sys.awr_root_rsrc_consumer_group s\r\n&gt;            where s.dbid             = :m_dbid\r\n&gt;              and s.snap_id          &gt; :m_begin_snap\r\n&gt;              and s.snap_id         &lt;= :m_end_snap\r\n&gt;              and s.con_dbid         = :m_con_dbid\r\n&gt;              and ]' || P_AWR_PERIOD.GET_INST_CLAUSE('s') ||')';\r\n&gt; \r\n&gt;   BEGIN\r\n&gt; \r\n&gt;     L_QRY := SQLSTMT_MAP;\r\n&gt; \r\n&gt;     DBMS_SQLTUNE_UTIL1.REPLACE_AWR_VIEW_PREFIX(\r\n&gt;       L_QRY, P_AWR_PERIOD.M_AWR_VIEW_PREFIX);\r\n&gt; \r\n&gt;     \r\n&gt;     IF (P_CON_ID = 0 OR P_CON_ID &gt; 2) THEN\r\n&gt;       EXECUTE IMMEDIATE L_QRY\r\n&gt;         BULK COLLECT INTO P_CGRP_MAP\r\n&gt;         USING P_AWR_PERIOD.M_DBID,\r\n&gt;               P_AWR_PERIOD.M_BEGIN_SNAP, P_AWR_PERIOD.M_END_SNAP,\r\n&gt;               SYS.DBMS_SQLTUNE_UTIL0.CDBCON_ID_TO_DBID(P_CON_ID),\r\n&gt;               P_AWR_PERIOD.M_INST_ID_LOW, P_AWR_PERIOD.M_INST_ID_HIGH,\r\n&gt;               P_AWR_PERIOD.M_INST_ID_LIST;\r\n&gt;     \r\n&gt;     ELSE\r\n&gt;       \r\n&gt;       P_CGRP_MAP := PRVT_AWRV_INSTTAB();\r\n&gt;     END IF;\r\n&gt; \r\n&gt;   END CREATE_CONSUMER_GROUP_MAP;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n16404a16555,16556\r\n&gt;   \r\n&gt;   \r\n16416a16569\r\n&gt;     INCLUDE_SQLS      IN NUMBER         DEFAULT NULL,\r\n16601c16754\r\n&lt;     IF (L_DIM_STAT IS NULL AND L_DIM_NAME IS NULL) THEN \r\n---\r\n&gt;     IF (INCLUDE_SQLS = 0) THEN\r\n16602a16756,16758\r\n&gt;       L_TOPSQL_XML := NULL;\r\n&gt;     \r\n&gt;     ELSE\r\n16604,16626c16760\r\n&lt;       IF (IS_REALTIME IS NULL OR IS_REALTIME = G_TIMEPICKER_HISTORICAL) THEN\r\n&lt;         \r\n&lt;       IF (L_START_TIME IS NOT NULL AND L_END_TIME IS NOT NULL AND\r\n&lt;           (L_END_TIME - L_START_TIME)*24*60 &lt; L_SNAPINT_MINS) \r\n&lt;       THEN\r\n&lt;         L_USEASH := TRUE;\r\n&lt;       END IF;\r\n&lt;       \r\n&lt;       \r\n&lt;       ELSE\r\n&lt;         L_USEASH := TRUE;\r\n&lt;       END IF;\r\n&lt; \r\n&lt; \r\n&lt;     IF (L_USEASH) THEN\r\n&lt;       SELECT XMLELEMENT(\"region_data\",\r\n&lt;               XMLAGG(\r\n&lt;                 XMLELEMENT(\"stattype\",\r\n&lt;                  XMLATTRIBUTES('topsql' AS \"name\",\r\n&lt;                                 '10' AS \"topn\",\r\n&lt;                                 'ash'   AS \"source\"))))\r\n&lt;         INTO L_TOPSQL_XML\r\n&lt;         FROM SYS.DUAL;\r\n---\r\n&gt;       IF (L_DIM_STAT IS NULL AND L_DIM_NAME IS NULL) THEN \r\n16629,16630c16763,16773\r\n&lt;         IF (L_END_TIME IS NULL) THEN\r\n&lt;           L_END_TIME := SYSDATE;\r\n---\r\n&gt;         IF (IS_REALTIME IS NULL OR IS_REALTIME = G_TIMEPICKER_HISTORICAL) THEN\r\n&gt;           \r\n&gt;           IF (L_START_TIME IS NOT NULL AND L_END_TIME IS NOT NULL AND\r\n&gt;              (L_END_TIME - L_START_TIME)*24*60 &lt; L_SNAPINT_MINS) \r\n&gt;           THEN\r\n&gt;             L_USEASH := TRUE;\r\n&gt;           END IF;\r\n&gt;           \r\n&gt;           \r\n&gt;         ELSE\r\n&gt;           L_USEASH := TRUE;\r\n16633,16635d16775\r\n&lt;         IF (L_START_TIME IS NULL) THEN\r\n&lt;           L_START_TIME := L_END_TIME - 1\/24;\r\n&lt;         END IF;\r\n16637,16646c16777,16805\r\n&lt;         L_TOPSQL_XML := L_TOPSQL_XML.APPENDCHILDXML('\/*\/stattype',\r\n&lt;                         SYS.DBMS_ASH_INTERNAL.REPORT_ASHVIEWER_XML(\r\n&lt;                            DBID       =&gt; L_DBID,\r\n&lt;                            INST_ID    =&gt; L_INST_ID,\r\n&lt;                            BEGIN_TIME =&gt; \r\n&lt;                              TO_CHAR(L_START_TIME,'hh24:mi:ss mm\/dd\/yyyy'),\r\n&lt;                            END_TIME   =&gt; \r\n&lt;                              TO_CHAR(L_END_TIME,'hh24:mi:ss mm\/dd\/yyyy'),\r\n&lt;                            REPORT_LEVEL=&gt;'&lt;sqlid,wait_class&gt;{treemap}', \r\n&lt;                            PARENT_REPORT =&gt; 'topsql'));\r\n---\r\n&gt;         IF (L_USEASH) THEN\r\n&gt;           SELECT XMLELEMENT(\"region_data\",\r\n&gt;                    XMLAGG(\r\n&gt;                      XMLELEMENT(\"stattype\",\r\n&gt;                        XMLATTRIBUTES('topsql' AS \"name\",\r\n&gt;                                      '10' AS \"topn\",\r\n&gt;                                      'ash'   AS \"source\"))))\r\n&gt;             INTO L_TOPSQL_XML\r\n&gt;             FROM SYS.DUAL;\r\n&gt; \r\n&gt;             \r\n&gt;             IF (L_END_TIME IS NULL) THEN\r\n&gt;               L_END_TIME := SYSDATE;\r\n&gt;             END IF;\r\n&gt; \r\n&gt;             IF (L_START_TIME IS NULL) THEN\r\n&gt;               L_START_TIME := L_END_TIME - 1\/24;\r\n&gt;             END IF;\r\n&gt; \r\n&gt;             L_TOPSQL_XML := L_TOPSQL_XML.APPENDCHILDXML('\/*\/stattype',\r\n&gt;                               SYS.DBMS_ASH_INTERNAL.REPORT_ASHVIEWER_XML(\r\n&gt;                                 DBID          =&gt; L_DBID,\r\n&gt;                                 INST_ID       =&gt; L_INST_ID,\r\n&gt;                                 BEGIN_TIME    =&gt; \r\n&gt;                                   TO_CHAR(L_START_TIME,'hh24:mi:ss mm\/dd\/yyyy'),\r\n&gt;                                 END_TIME      =&gt; \r\n&gt;                                   TO_CHAR(L_END_TIME,'hh24:mi:ss mm\/dd\/yyyy'),\r\n&gt;                                 REPORT_LEVEL  =&gt;'&lt;sqlid,wait_class&gt;{treemap}', \r\n&gt;                                 PARENT_REPORT =&gt; 'topsql'));\r\n16648c16807\r\n&lt;     ELSE\r\n---\r\n&gt;         ELSE\r\n16650,16673c16809,16834\r\n&lt;       \r\n&lt;       L_TOPSQL_XML := I_REP_AWRDATA_XML(\r\n&lt;                         START_TIME       =&gt; L_START_TIME,\r\n&lt;                         END_TIME         =&gt; L_END_TIME,\r\n&lt;                         TIMEPICKER_START =&gt; NULL,\r\n&lt;                         TIMEPICKER_END   =&gt; NULL,\r\n&lt;                         INSTANCE_LIST    =&gt; L_INSTANCE_LIST,\r\n&lt;                         DBID             =&gt; L_DBID,\r\n&lt;                         BUCKET_MAX_COUNT =&gt; 1,  \r\n&lt;                         TIME_MODEL       =&gt; 'no',\r\n&lt;                         WAIT_CLASS       =&gt; 'no',\r\n&lt;                         WAIT_EVENT       =&gt; 'no',\r\n&lt;                         EVENT_CLASS      =&gt; 'no',\r\n&lt;                         SYSSTAT          =&gt; 'no',\r\n&lt;                         SQLSTAT          =&gt; 'EM_TOP_SQL',\r\n&lt;                         OSSTAT           =&gt; 'no',\r\n&lt;                         IOSTAT           =&gt; 'no',\r\n&lt;                         MEMORY           =&gt; 'no',\r\n&lt;                         SPACE            =&gt; 'no',\r\n&lt;                         KEY_STATISTICS   =&gt; 'no',\r\n&lt;                         INST_DETAIL      =&gt; L_SHOW_INST_DETAIL,\r\n&lt;                         MEMBERS          =&gt; 'no',\r\n&lt;                         SUMMARY          =&gt; 'no',\r\n&lt;                         SHOW_SQL         =&gt; SHOW_SQL);\r\n---\r\n&gt;           \r\n&gt;           L_TOPSQL_XML := I_REP_AWRDATA_XML(\r\n&gt;                             START_TIME       =&gt; L_START_TIME,\r\n&gt;                             END_TIME         =&gt; L_END_TIME,\r\n&gt;                             TIMEPICKER_START =&gt; NULL,\r\n&gt;                             TIMEPICKER_END   =&gt; NULL,\r\n&gt;                             INSTANCE_LIST    =&gt; L_INSTANCE_LIST,\r\n&gt;                             DBID             =&gt; L_DBID,\r\n&gt;                             BUCKET_MAX_COUNT =&gt; 1,  \r\n&gt;                             TIME_MODEL       =&gt; 'no',\r\n&gt;                             WAIT_CLASS       =&gt; 'no',\r\n&gt;                             WAIT_EVENT       =&gt; 'no',\r\n&gt;                             EVENT_CLASS      =&gt; 'no',\r\n&gt;                             SYSSTAT          =&gt; 'no',\r\n&gt;                             SQLSTAT          =&gt; 'EM_TOP_SQL',\r\n&gt;                             OSSTAT           =&gt; 'no',\r\n&gt;                             IOSTAT           =&gt; 'no',\r\n&gt;                             MEMORY           =&gt; 'no',\r\n&gt;                             SPACE            =&gt; 'no',\r\n&gt;                             KEY_STATISTICS   =&gt; 'no',\r\n&gt;                             INST_DETAIL      =&gt; L_SHOW_INST_DETAIL,\r\n&gt;                             MEMBERS          =&gt; 'no',\r\n&gt;                             SUMMARY          =&gt; 'no',\r\n&gt;                             SHOW_SQL         =&gt; SHOW_SQL);\r\n&gt;         END IF;\r\n&gt;       END IF;\r\n16675d16835\r\n&lt;   END IF;\r\n18086a18247,20960\r\n&gt;   \r\n&gt;   \r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_RMMETRICS_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME      IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME        IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT 0)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt; \r\n&gt;     \r\n&gt;     L_QRY VARCHAR2(32767) := NULL;\r\n&gt;     L_SQL CLOB;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RESULT_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_IS_REALTIME     NUMBER        := IS_REALTIME;\r\n&gt;     L_DBID            NUMBER        := DBID;\r\n&gt;     L_START_TIME      DATE          := START_TIME;\r\n&gt;     L_END_TIME        DATE          := END_TIME;\r\n&gt;     L_BUCKET_COUNT    NUMBER        := BUCKET_COUNT;\r\n&gt;     L_BUCKET_INTERVAL NUMBER        := BUCKET_INTERVAL;\r\n&gt;     L_AWR_PERIOD PRVT_AWRV_METADATA := AWR_PERIOD;\r\n&gt;     L_AWR_VIEW_PREFIX VARCHAR2(10)  := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt; \r\n&gt;     \r\n&gt;     L_BUCKET_MAP PRVT_AWRV_MAPTAB;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_ID   NUMBER;\r\n&gt;     L_CON_DBID NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RESOURCE_MANAGER_ENABLED NUMBER := 0;\r\n&gt;     \r\n&gt;     \r\n&gt;     L_NUM_CPUS NUMBER := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CG_MAP PRVT_AWRV_INSTTAB := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     RMMETRICS_RT CONSTANT VARCHAR2(32767) := q'[\r\n&gt;     select bucket_id,\r\n&gt;            consumer_group_id, consumer_group_name,\r\n&gt;            case\r\n&gt;              when avg(avg_cpu_utilization) &gt; 100 then 100\r\n&gt;              else avg(avg_cpu_utilization) \r\n&gt;            end avg_cpu_utilization,\r\n&gt;            avg(cpu_usage_per_sec) cpu_usage_per_sec,\r\n&gt;            sum(avg_running_stmts) avg_running_stmts,\r\n&gt;            sum(avg_active_parallel_stmts) \r\n&gt;                                      avg_active_parallel_stmts,\r\n&gt;            sum(avg_queued_parallel_stmts) \r\n&gt;                                      avg_queued_parallel_stmts\r\n&gt;       from table(sys.gv$(cursor(\r\n&gt;            select trunc(\r\n&gt;                   ((extract(day from \r\n&gt;                       (cast(trunc(end_time,'mi') as timestamp) -\r\n&gt;                        cast(trunc(to_date(:b_start_time, :date_fmt),'mi') \r\n&gt;                          as timestamp))) \r\n&gt;                     * 86400 +\r\n&gt;                     extract(hour from \r\n&gt;                       (cast(trunc(end_time,'mi') as timestamp) -\r\n&gt;                        cast(trunc(to_date(:b_start_time, :date_fmt),'mi') \r\n&gt;                          as timestamp))) \r\n&gt;                     * 3600 + \r\n&gt;                     extract(minute from\r\n&gt;                       (cast(trunc(end_time,'mi') as timestamp) -\r\n&gt;                        cast(trunc(to_date(:b_start_time, :date_fmt),'mi') \r\n&gt;                          as timestamp))) \r\n&gt;                     * 60 + \r\n&gt;                     extract(second from\r\n&gt;                       (cast(trunc(end_time,'mi') as timestamp) -\r\n&gt;                        cast(trunc(to_date(:b_start_time, :date_fmt),'mi') \r\n&gt;                          as timestamp))) \r\n&gt;                    )\r\n&gt;                    \/ :p_bucket_interval)) + 1 bucket_id,\r\n&gt;                   consumer_group_name,\r\n&gt;                   consumer_group_id,\r\n&gt;                   (case \r\n&gt;                      -- resource manager enabled, use running_sessions_limit\r\n&gt;                      when :resource_manager_enabled &gt; 0 then\r\n&gt;                        (case\r\n&gt;                           -- if running_sessions_limit is not set\r\n&gt;                           when running_sessions_limit is null or\r\n&gt;                                running_sessions_limit = 0 then\r\n&gt;                             avg_cpu_utilization\r\n&gt;                           else\r\n&gt;                             (avg_running_sessions\/running_sessions_limit)*100\r\n&gt;                         end)\r\n&gt;                      -- resource manager disabled, use system cpu limit\r\n&gt;                      else\r\n&gt;                        (case\r\n&gt;                           when :num_cpus &gt; 0 then\r\n&gt;                             (avg_running_sessions\/:num_cpus)*100\r\n&gt;                           -- system cpu limit not available\r\n&gt;                           -- use running_sessions_limit\r\n&gt;                           else\r\n&gt;                             (case\r\n&gt;                                when running_sessions_limit is null or\r\n&gt;                                     running_sessions_limit = 0 then\r\n&gt;                                  avg_cpu_utilization\r\n&gt;                                else\r\n&gt;                                 (avg_running_sessions\/running_sessions_limit)*100\r\n&gt;                              end)\r\n&gt;                         end)\r\n&gt;                      end) avg_cpu_utilization,\r\n&gt;                   cpu_consumed_time\/(intsize_csec*10) cpu_usage_per_sec,\r\n&gt;                   avg_running_sessions + avg_waiting_sessions\r\n&gt;                     as avg_running_stmts,\r\n&gt;                   avg_active_parallel_stmts,\r\n&gt;                   avg_queued_parallel_stmts\r\n&gt;              from sys.v_$rsrcmgrmetric_history\r\n&gt;             where end_time &gt;= to_date(:b_start_time, :date_fmt)\r\n&gt;               and end_time &lt;  to_date(:b_end_time, :date_fmt))))\r\n&gt;          group by bucket_id, consumer_group_id, consumer_group_name]';\r\n&gt; \r\n&gt;     \r\n&gt;     RMMETRICS_RT_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var is_awr                   number;\r\n&gt;       var p_contTab                prvt_awrv_instTab;\r\n&gt;       var b_start_time             varchar2(4000);\r\n&gt;       var b_end_time               varchar2(4000);\r\n&gt;       var p_bucket_interval        number;\r\n&gt;       var p_bucket_count           number;\r\n&gt;       var b_min_time               varchar2(4000);\r\n&gt;       var b_max_time               varchar2(4000);\r\n&gt;       var b_duration               number;\r\n&gt;       var date_fmt                 varchar2(4000);\r\n&gt;       var resource_manager_enabled number;\r\n&gt;       var num_cpus                 number;\r\n&gt;       begin\r\n&gt;         :is_awr                   := #is_awr#;\r\n&gt;         :p_contTab                := #p_contTab#;\r\n&gt;         :b_start_time             := '#b_start_time#';\r\n&gt;         :b_end_time               := '#b_end_time#';\r\n&gt;         :p_bucket_interval        := #p_bucket_interval#;\r\n&gt;         :p_bucket_count           := #p_bucket_count#;\r\n&gt;         :b_min_time               := '#b_min_time#';\r\n&gt;         :b_max_time               := '#b_max_time#';\r\n&gt;         :b_duration               := #b_duration#;\r\n&gt;         :date_fmt                 := '#date_fmt#';\r\n&gt;         :resource_manager_enabled := #resource_manager_enabled#;\r\n&gt;         :num_cpus                 := #num_cpus#;\r\n&gt;       end;\r\n&gt;       \/]';\r\n&gt; \r\n&gt;     \r\n&gt;     RMMETRICS_AWR CONSTANT VARCHAR2(32767) := q'[\r\n&gt;     select bucket_id,\r\n&gt;            consumer_group_id,\r\n&gt;            consumer_group_name,\r\n&gt;            case\r\n&gt;              when sum(avg_cpu_utilization) &gt; 100 then 100\r\n&gt;              else sum(avg_cpu_utilization) \r\n&gt;            end avg_cpu_utilization,\r\n&gt;            sum(cpu_usage_per_sec) cpu_usage_per_sec,\r\n&gt;            sum(avg_running_stmts) avg_running_stmts,\r\n&gt;            sum(avg_active_parallel_stmts) avg_active_parallel_stmts,\r\n&gt;            sum(avg_queued_parallel_stmts) avg_queued_parallel_stmts\r\n&gt;      from (\r\n&gt;         select bucket_id,\r\n&gt;                consumer_group_name,  \r\n&gt;                consumer_group_id,\r\n&gt;                -- avg\r\n&gt;                avg(avg_cpu_utilization) avg_cpu_utilization,\r\n&gt;                avg(cpu_usage_per_sec) cpu_usage_per_sec,\r\n&gt;                avg(avg_running_stmts) avg_running_stmts,\r\n&gt;                avg(avg_active_parallel_stmts) \r\n&gt;                   avg_active_parallel_stmts,\r\n&gt;                avg(avg_queued_parallel_stmts) \r\n&gt;                   avg_queued_parallel_stmts\r\n&gt;           from table(cast(:bucket_map as sys.prvt_awrv_mapTab)) b,\r\n&gt;                (select \/*+ no_merge *\/ nvl(m.snap_id, c.snap_id) as snap_id,\r\n&gt;                        nvl(m.instance_number, c.instance_number) \r\n&gt;                                                  as instance_number,\r\n&gt;                        m.consumer_group_id consumer_group_id,\r\n&gt;                        null consumer_group_name,\r\n&gt;                        case \r\n&gt;                          when c.cpu_limit is null or\r\n&gt;                               c.cpu_limit = 0 then\r\n&gt;                            m.avg_cpu_utilization\r\n&gt;                          else\r\n&gt;                            (m.avg_running_sessions\/c.cpu_limit)*100\r\n&gt;                          end                       as avg_cpu_utilization,\r\n&gt;                        m.cpu_consumed_time\/(m.intsize_csec*10) cpu_usage_per_sec,\r\n&gt;                        m.avg_running_sessions + m.avg_waiting_sessions\r\n&gt;                                                    as avg_running_stmts,\r\n&gt;                        m.avg_active_parallel_stmts as avg_active_parallel_stmts,\r\n&gt;                        m.avg_queued_parallel_stmts as avg_queued_parallel_stmts\r\n&gt;                   from awr_root_rsrc_metric m,\r\n&gt;                        (SELECT \/*+ no_merge *\/ \r\n&gt;                                nvl(s.snap_id, p.snap_id) as snap_id,\r\n&gt;                                nvl(s.instance_number, p.instance_number) \r\n&gt;                                                          as instance_number,\r\n&gt;                                CASE WHEN p.cpu_count IS NULL \r\n&gt;                                     THEN nvl(s.num_cpus, s.num_cpu_cores)\r\n&gt;                                     ELSE LEAST(p.cpu_count, \r\n&gt;                                                NVL(s.num_cpus, s.num_cpu_cores))\r\n&gt;                                END as cpu_limit\r\n&gt;                           FROM   \r\n&gt;                             (SELECT \/*+ NO_MERGE *\/ snap_id, instance_number,\r\n&gt;                                     MAX(num_cpus)      num_cpus,\r\n&gt;                                     MAX(num_cpu_cores) num_cpu_cores\r\n&gt;                                FROM \r\n&gt;                                  (SELECT snap_id, instance_number,\r\n&gt;                                          CASE\r\n&gt;                                            WHEN stat_name = 'NUM_CPUS' \r\n&gt;                                            THEN value\r\n&gt;                                            ELSE NULL\r\n&gt;                                          END as num_cpus,\r\n&gt;                                          CASE\r\n&gt;                                            WHEN stat_name = 'NUM_CPU_CORES'\r\n&gt;                                            THEN value\r\n&gt;                                            ELSE NULL\r\n&gt;                                          END as num_cpu_cores\r\n&gt;                                     FROM awr_root_osstat\r\n&gt;                                    WHERE stat_name IN \r\n&gt;                                            ('NUM_CPUS','NUM_CPU_CORES'))\r\n&gt;                                   GROUP BY snap_id, instance_number) s,\r\n&gt;                             (SELECT \/*+ NO_MERGE *\/ snap_id, instance_number,\r\n&gt;                                     MAX(\r\n&gt;                                       CASE \r\n&gt;                                         WHEN resource_plan IS NULL THEN NULL \r\n&gt;                                         ELSE TO_NUMBER(cpu_count)\r\n&gt;                                       END) as cpu_count\r\n&gt;                                FROM \r\n&gt;                                  (SELECT snap_id, instance_number,\r\n&gt;                                          CASE\r\n&gt;                                            WHEN parameter_name = 'cpu_count' \r\n&gt;                                            THEN value\r\n&gt;                                            ELSE NULL\r\n&gt;                                          END cpu_count,\r\n&gt;                                          CASE\r\n&gt;                                            WHEN parameter_name = \r\n&gt;                                                   'resource_manager_plan'\r\n&gt;                                            THEN value\r\n&gt;                                            ELSE NULL\r\n&gt;                                          END resource_plan\r\n&gt;                                     FROM awr_root_parameter\r\n&gt;                                    WHERE parameter_name IN \r\n&gt;                                           ('cpu_count', 'resource_manager_plan'))\r\n&gt;                                   GROUP BY snap_id, instance_number) p\r\n&gt;                          WHERE s.snap_id = p.snap_id\r\n&gt;                            AND s.instance_number = p.instance_number) c\r\n&gt;                  where m.dbid = :m_dbid \r\n&gt;                    and m.snap_id between :m_begin_snap and :m_end_snap\r\n&gt;                    and m.con_dbid = :l_con_dbid\r\n&gt;                    and m.snap_id = c.snap_id(+)\r\n&gt;                    and m.instance_number = c.instance_number(+)) y\r\n&gt;          where b.snap_id         = y.snap_id\r\n&gt;            and b.instance_number = y.instance_number\r\n&gt;          group by bucket_id, \r\n&gt;                y.instance_number, \r\n&gt;                y.consumer_group_id, \r\n&gt;                y.consumer_group_name)\r\n&gt;       group by bucket_id, \r\n&gt;                consumer_group_id,\r\n&gt;                consumer_group_name]'; \r\n&gt; \r\n&gt;     \r\n&gt;     RMMETRICS_AWR_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var is_awr            number;\r\n&gt;       var p_contTab         prvt_awrv_instTab;\r\n&gt;       var bucket_map        prvt_awrv_mapTab;\r\n&gt;       var m_dbid            number;\r\n&gt;       var m_begin_snap      number;\r\n&gt;       var m_end_snap        number;\r\n&gt;       var l_con_dbid        number;\r\n&gt;       var p_bucket_interval number;\r\n&gt;       var p_bucket_count    number;\r\n&gt;       var b_min_time        varchar2(4000);\r\n&gt;       var b_max_time        varchar2(4000);\r\n&gt;       var b_duration        number;\r\n&gt;       begin\r\n&gt;         :is_awr            := #is_awr#;\r\n&gt;         :p_contTab         := #p_contTab#;\r\n&gt;         :bucket_map        := #bucket_map#;\r\n&gt;         :m_dbid            := #m_dbid#;\r\n&gt;         :m_begin_snap      := #m_begin_snap#;\r\n&gt;         :m_end_snap        := #m_end_snap#;\r\n&gt;         :l_con_dbid        := #l_con_dbid#;\r\n&gt;         :p_bucket_interval := #p_bucket_interval#;\r\n&gt;         :p_bucket_count    := #p_bucket_count#;\r\n&gt;         :b_min_time        := '#b_min_time#';\r\n&gt;         :b_max_time        := '#b_max_time#';\r\n&gt;         :b_duration        := #b_duration#;\r\n&gt;       end;\r\n&gt;       \/]';\r\n&gt; \r\n&gt;   BEGIN\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME IS NULL) THEN\r\n&gt;       L_IS_REALTIME := 1;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_DBID := SYS_CONTEXT('USERENV','CON_DBID');\r\n&gt;     \r\n&gt;     \r\n&gt;     IF (DBID IS NULL) THEN\r\n&gt;       L_DBID := L_CON_DBID;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (END_TIME IS NULL) THEN\r\n&gt;       L_END_TIME := SYSDATE;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (START_TIME IS NULL) THEN\r\n&gt;       \r\n&gt;       IF (L_IS_REALTIME = 1) THEN\r\n&gt;         L_START_TIME := L_END_TIME - 1\/24;\r\n&gt;       \r\n&gt;       ELSE\r\n&gt;         L_START_TIME := L_END_TIME - 1;\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (BUCKET_COUNT IS NULL) THEN\r\n&gt;       L_BUCKET_COUNT := 60;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME = 1) THEN\r\n&gt;       \r\n&gt;       \r\n&gt;       BEGIN\r\n&gt;         SELECT COUNT(VALUE)\r\n&gt;           INTO L_RESOURCE_MANAGER_ENABLED\r\n&gt;           FROM SYS.V_$SYSTEM_PARAMETER2        \r\n&gt;          WHERE NAME = 'resource_manager_plan'\r\n&gt;            AND (VALUE IS NOT NULL AND VALUE != '');\r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           L_RESOURCE_MANAGER_ENABLED := 0;\r\n&gt;       END;\r\n&gt; \r\n&gt;       \r\n&gt;       BEGIN\r\n&gt;         SELECT SUM(NUM_CPUS)\r\n&gt;           INTO L_NUM_CPUS\r\n&gt;           FROM (\r\n&gt;             SELECT HOST_NAME, SUM(NUM_CPUS) AS NUM_CPUS\r\n&gt;               FROM TABLE(GV$(CURSOR(\r\n&gt;                      SELECT I.INSTANCE_NUMBER AS INST_ID, I.HOST_NAME,\r\n&gt;                             NVL(OS.NUM_CPUS, OS.NUM_CPU_CORES) AS NUM_CPUS\r\n&gt;                        FROM SYS.V$INSTANCE I, \r\n&gt;                             (SELECT MAX(DECODE(STAT_NAME, 'NUM_CPUS', \r\n&gt;                                                VALUE, NULL)) AS NUM_CPUS,\r\n&gt;                                     MAX(DECODE(STAT_NAME, 'NUM_CPU_CORES', \r\n&gt;                                                VALUE, NULL)) AS NUM_CPU_CORES\r\n&gt;                                FROM SYS.V$OSSTAT\r\n&gt;                               WHERE STAT_NAME IN ('NUM_CPUS', 'NUM_CPU_CORES')\r\n&gt;                             ) OS)))\r\n&gt;             GROUP BY HOST_NAME);\r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           L_NUM_CPUS := 0;\r\n&gt;       END;\r\n&gt; \r\n&gt;       \r\n&gt;       L_QRY := RMMETRICS_COMMON;\r\n&gt;    \r\n&gt;       \r\n&gt;       L_QRY := REPLACE(L_QRY,'#GENERATE_BUCKETS_TAG#', \r\n&gt;                               GENERATE_BUCKETS_TAG2);\r\n&gt;       L_QRY := REPLACE(L_QRY,'#GENERATE_BUCKETID_TAG#', \r\n&gt;                               GENERATE_BUCKETID_TAG);\r\n&gt;       L_QRY := REPLACE(L_QRY,'#GENERATE_METRICS_BUCKETID#', \r\n&gt;                               RMMETRICS_RT);\r\n&gt; \r\n&gt;       IF (SHOW_SQL = 1) THEN\r\n&gt;         \r\n&gt;         L_SQL := RMMETRICS_RT_HEADER;\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := REPLACE(L_SQL, '#is_awr#', 0);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_contTab#', 'null');\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_start_time#',\r\n&gt;                                  TO_CHAR(L_START_TIME, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_end_time#',\r\n&gt;                                  TO_CHAR(L_END_TIME, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_count#', L_BUCKET_COUNT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_interval#', L_BUCKET_INTERVAL);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_min_time#', TO_CHAR(L_START_TIME, \r\n&gt;                                                         DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_max_time#', TO_CHAR(L_END_TIME, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_duration#',\r\n&gt;                                  ROUND((L_END_TIME - L_START_TIME)*DTOS));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#date_fmt#', DATE_FMT);\r\n&gt; \r\n&gt;         L_SQL := REPLACE(L_SQL, '#resource_manager_enabled#', \r\n&gt;                                 L_RESOURCE_MANAGER_ENABLED);\r\n&gt; \r\n&gt;         L_SQL := REPLACE(L_SQL, '#num_cpus#', L_NUM_CPUS);\r\n&gt; \r\n&gt;         L_RESULT_XML := I_SHOW_SQL_XML('rsrcmgrmetric', L_SQL);\r\n&gt; \r\n&gt;       ELSE\r\n&gt;         \r\n&gt;         EXECUTE IMMEDIATE L_QRY\r\n&gt;            INTO L_RESULT_XML\r\n&gt;           USING 0, L_CG_MAP,\r\n&gt;                 TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT, \r\n&gt;                 TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT, \r\n&gt;                 TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT, \r\n&gt;                 TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT, \r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_RESOURCE_MANAGER_ENABLED,\r\n&gt;                 L_NUM_CPUS, L_NUM_CPUS,\r\n&gt;                 TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT,\r\n&gt;                 TO_CHAR(L_END_TIME, DATE_FMT), DATE_FMT,\r\n&gt;                 \r\n&gt;                 L_BUCKET_INTERVAL, L_BUCKET_COUNT,\r\n&gt;                 TO_CHAR(L_START_TIME,DATE_FMT), TO_CHAR(L_END_TIME,DATE_FMT),\r\n&gt;                 (L_END_TIME - L_START_TIME)*DTOS;\r\n&gt;       END IF;\r\n&gt;     \r\n&gt;     \r\n&gt;     ELSE\r\n&gt; \r\n&gt;       IF (L_AWR_PERIOD IS NOT NULL) THEN\r\n&gt;         \r\n&gt;         CREATE_BUCKET_SNAP_MAP(L_AWR_PERIOD, L_BUCKET_MAP, \r\n&gt;                                L_BUCKET_COUNT, L_BUCKET_INTERVAL);\r\n&gt; \r\n&gt;         L_CON_ID := SYS_CONTEXT('USERENV','CON_ID');\r\n&gt; \r\n&gt;         CREATE_CONSUMER_GROUP_MAP(L_CON_ID, L_AWR_PERIOD, L_CG_MAP);\r\n&gt; \r\n&gt;         \r\n&gt;         L_QRY := RMMETRICS_COMMON;\r\n&gt;    \r\n&gt;         \r\n&gt;         L_QRY := REPLACE(L_QRY,'#GENERATE_BUCKETS_TAG#', \r\n&gt;                                 GENERATE_BUCKETS_TAG2);\r\n&gt;         L_QRY := REPLACE(L_QRY,'#GENERATE_BUCKETID_TAG#', \r\n&gt;                                 GENERATE_BUCKETID_TAG);\r\n&gt;         L_QRY := REPLACE(L_QRY,'#GENERATE_METRICS_BUCKETID#', \r\n&gt;                                 RMMETRICS_AWR);\r\n&gt; \r\n&gt;         \r\n&gt;         \r\n&gt;         IF (SYS_CONTEXT('USERENV','CON_ID') &gt; 2) THEN\r\n&gt;           L_AWR_VIEW_PREFIX := \r\n&gt;             DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(L_AWR_PERIOD.M_MIN_TIME);\r\n&gt; \r\n&gt;           DBMS_SQLTUNE_UTIL1.REPLACE_AWR_VIEW_PREFIX(L_QRY, L_AWR_VIEW_PREFIX);\r\n&gt;         END IF;\r\n&gt; \r\n&gt;         IF (SHOW_SQL = 1) THEN\r\n&gt;           \r\n&gt;           L_SQL := RMMETRICS_AWR_HEADER;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := REPLACE(L_SQL, '#is_awr#', 1);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#p_contTab#', '');\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_map#', '');\r\n&gt;           L_SQL := REPLACE(L_SQL, '#m_dbid#', L_AWR_PERIOD.M_DBID);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#m_begin_snap#', L_AWR_PERIOD.M_BEGIN_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#m_end_snap#', L_AWR_PERIOD.M_END_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#l_con_dbid#', L_CON_DBID);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#p_bucket_count#', L_BUCKET_COUNT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#p_bucket_interval#', \r\n&gt;                                    L_BUCKET_INTERVAL);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#b_min_time#', \r\n&gt;                                    TO_CHAR(L_AWR_PERIOD.M_MIN_TIME, DATE_FMT));\r\n&gt;           L_SQL := REPLACE(L_SQL, '#b_max_time#', \r\n&gt;                                    TO_CHAR(L_AWR_PERIOD.M_MAX_TIME, DATE_FMT));\r\n&gt;           L_SQL := REPLACE(L_SQL, '#b_duration#',\r\n&gt;                                    ROUND(INTERVAL_TO_SECOND(\r\n&gt;                                            L_AWR_PERIOD.M_MAX_TIME, \r\n&gt;                                            L_AWR_PERIOD.M_MIN_TIME)));\r\n&gt; \r\n&gt;           L_RESULT_XML := I_SHOW_SQL_XML('rsrcmgrmetric', L_SQL);\r\n&gt; \r\n&gt;         ELSE\r\n&gt;           EXECUTE IMMEDIATE L_QRY\r\n&gt;            INTO L_RESULT_XML\r\n&gt;           USING 1, \r\n&gt;                 L_CG_MAP, \r\n&gt;                 L_BUCKET_MAP,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_CON_DBID,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_COUNT,\r\n&gt;                 TO_CHAR(L_AWR_PERIOD.M_MIN_TIME, DATE_FMT),\r\n&gt;                 TO_CHAR(L_AWR_PERIOD.M_MAX_TIME, DATE_FMT),\r\n&gt;                 ROUND(\r\n&gt;                   INTERVAL_TO_SECOND(\r\n&gt;                     L_AWR_PERIOD.M_MAX_TIME, L_AWR_PERIOD.M_MIN_TIME));\r\n&gt;         END IF;\r\n&gt;       END IF;\r\n&gt; \r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_RESULT_XML;\r\n&gt; \r\n&gt;   END GET_RMMETRICS_XML;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_SQL_N_PARSE_TIME_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME_UTC  IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME_UTC    IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt; \r\n&gt;     \r\n&gt;     L_QRY VARCHAR2(32767) := NULL;\r\n&gt;     L_SQL CLOB;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RESULT_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_IS_REALTIME     NUMBER             := IS_REALTIME;\r\n&gt;     L_DBID            NUMBER             := DBID;\r\n&gt;     L_START_TIME_UTC  DATE               := START_TIME_UTC;\r\n&gt;     L_END_TIME_UTC    DATE               := END_TIME_UTC;\r\n&gt;     L_BUCKET_COUNT    NUMBER             := BUCKET_COUNT;\r\n&gt;     L_BUCKET_INTERVAL NUMBER             := BUCKET_INTERVAL;\r\n&gt;     L_AWR_PERIOD      PRVT_AWRV_METADATA := AWR_PERIOD;\r\n&gt;     L_AWR_VIEW_PREFIX VARCHAR2(20)       := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_DBID NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     SQL_AND_PARSE_TIME_RT CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       with base_data as (\r\n&gt;         SELECT bucket_id,\r\n&gt;                SUM(parse_time_sec) \/ :p_bucket_interval AS parse_aas,\r\n&gt;                SUM(sql_exec_time_sec) \/ :p_bucket_interval AS sql_exec_aas,\r\n&gt;                SUM(plsql_exec_time_sec) \/ :p_bucket_interval AS plsql_exec_aas\r\n&gt;           FROM TABLE(GV$(CURSOR(\r\n&gt;                  SELECT bucket_id, \r\n&gt;                         SUM(parse_time_usec) \/ 1000000    as parse_time_sec,\r\n&gt;                         SUM(sql_exec_time_usec) \/ 1000000 as sql_exec_time_sec,\r\n&gt;                         SUM(plsql_exec_time_usec) \/ 1000000 \r\n&gt;                                                           as plsql_exec_time_sec\r\n&gt;                    FROM (\r\n&gt;                          SELECT TRUNC(((\r\n&gt;                                   cast(sample_time_utc as date) - \r\n&gt;                                   to_date(:b_start_time_utc, :date_fmt)) \r\n&gt;                                   * 86400 ) \/ :p_bucket_interval) + 1 \r\n&gt;                                     as bucket_id,\r\n&gt;                                 CASE \r\n&gt;                                   WHEN (session_type = 'FOREGROUND' \r\n&gt;                                         AND in_parse = 'Y') \r\n&gt;                                   THEN usecs_per_row \r\n&gt;                                   ELSE 0 \r\n&gt;                                 END as parse_time_usec,\r\n&gt;                                 CASE \r\n&gt;                                   WHEN (session_type = 'FOREGROUND' \r\n&gt;                                         AND in_sql_execution = 'Y') \r\n&gt;                                   THEN usecs_per_row \r\n&gt;                                   ELSE 0 \r\n&gt;                                 END as sql_exec_time_usec,\r\n&gt;                                 CASE \r\n&gt;                                   WHEN (session_type = 'FOREGROUND' \r\n&gt;                                         AND in_plsql_execution = 'Y') \r\n&gt;                                   THEN usecs_per_row \r\n&gt;                                   ELSE 0 \r\n&gt;                                 END as plsql_exec_time_usec\r\n&gt;                            FROM sys.v_$active_session_history \r\n&gt;                           WHERE sample_time_utc &gt; to_timestamp(\r\n&gt;                                                     :b_start_time_utc,\r\n&gt;                                                     :date_fmt) \r\n&gt;                             AND sample_time_utc &lt;= to_timestamp(\r\n&gt;                                                     :b_end_time_utc,:date_fmt)\r\n&gt;                         )\r\n&gt;                   WHERE bucket_id &gt; 0\r\n&gt;                   GROUP BY bucket_id\r\n&gt;                )))\r\n&gt;         GROUP BY bucket_id\r\n&gt;         ORDER BY bucket_id)\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes('sql' as \"name\"),\r\n&gt;                xmlelement(\"buckets\",\r\n&gt;                  xmlattributes(:p_bucket_interval as \"bucket_interval\",\r\n&gt;                                :p_bucket_count    as \"bucket_count\",\r\n&gt;                                :b_start_time_utc  as \"start_time_utc\",\r\n&gt;                                :b_end_time_utc    as \"end_time_utc\",\r\n&gt;                                :b_duration        as \"duration\"),\r\n&gt;                  xmlagg(xmlelement(\"bucket\",\r\n&gt;                           xmlattributes(bucket_id    as \"bucket_id\"),\r\n&gt;                   xmlforest(round(parse_aas, 2)      as \"parse_aas\",\r\n&gt;                             round(sql_exec_aas, 2)   as \"sql_aas\",\r\n&gt;                             round(plsql_exec_aas, 2) as \"plsql_aas\")))))\r\n&gt;         from base_data\r\n&gt;        where (parse_aas + sql_exec_aas + plsql_exec_aas) &gt; 0]';\r\n&gt; \r\n&gt;     \r\n&gt;     SQL_AND_PARSE_TIME_RT_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;     var date_fmt          varchar2(32);\r\n&gt;     var b_start_time_utc  varchar2(32);\r\n&gt;     var b_end_time_utc    varchar2(32);\r\n&gt;     var p_bucket_interval number;\r\n&gt;     var p_bucket_count    number;\r\n&gt;     var b_duration        number;\r\n&gt;     begin \r\n&gt;       :date_fmt            := '#date_fmt#';\r\n&gt;       :b_start_time_utc    := '#b_start_time_utc#';\r\n&gt;       :b_end_time_utc      := '#b_end_time_utc#';\r\n&gt;       :p_bucket_interval   := #p_bucket_interval#;\r\n&gt;       :p_bucket_count      := #p_bucket_count#;\r\n&gt;       :b_duration          := #b_duration#;\r\n&gt;     end;\r\n&gt;     \/]';\r\n&gt; \r\n&gt; \r\n&gt;     \r\n&gt;     SQL_AND_PARSE_TIME_AWR CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       WITH \r\n&gt;         snaps AS\r\n&gt;           (SELECT \/*+ no_merge *\/ s.instance_number, s.snap_id, \r\n&gt;                   CASE \r\n&gt;                     WHEN p.open_time_tz &gt; s.begin_interval_time_tz \r\n&gt;                     THEN CAST((p.open_time_tz at time zone 'UTC') AS DATE)\r\n&gt;                     ELSE CAST((s.begin_interval_time_tz at time zone 'UTC') \r\n&gt;                               AS DATE)\r\n&gt;                   END as begin_time_utc,\r\n&gt;                   CAST((s.end_interval_time_tz at time zone 'UTC') AS DATE) \r\n&gt;                       as end_time_utc,\r\n&gt;                   CASE \r\n&gt;                     WHEN p.open_time_tz &gt; s.begin_interval_time_tz \r\n&gt;                     THEN 0 \r\n&gt;                     ELSE 1 \r\n&gt;                   END as diff_logic\r\n&gt;              FROM awr_root_snapshot s, awr_root_pdb_in_snap p\r\n&gt;             WHERE s.dbid = :dbid\r\n&gt;               AND p.dbid = :dbid\r\n&gt;               AND s.instance_number = p.instance_number\r\n&gt;               AND s.snap_id = p.snap_id\r\n&gt;               AND s.snap_id &gt;= :begin_snap_id\r\n&gt;               AND s.snap_id &lt;= :end_snap_id\r\n&gt;               AND p.snap_id &gt;= :begin_snap_id\r\n&gt;               AND p.snap_id &lt;= :end_snap_id\r\n&gt;           ),\r\n&gt;         base_stats AS\r\n&gt;           (SELECT \/*+ no_merge *\/ s.instance_number, s.snap_id, s.stat_name, \r\n&gt;                   s.value \/ 1000000 as value_secs \r\n&gt;              FROM awr_root_con_sys_time_model s\r\n&gt;             WHERE s.dbid = :dbid\r\n&gt;               AND s.snap_id &gt;= :begin_snap_id\r\n&gt;               AND s.snap_id &lt;= :end_snap_id\r\n&gt;               AND s.stat_name IN ('parse time elapsed', \r\n&gt;                                   'sql execute elapsed time', \r\n&gt;                                   'PL\/SQL execution elapsed time')\r\n&gt;           ),\r\n&gt;         diff_stats AS \r\n&gt;           (SELECT estat.instance_number, estat.snap_id, estat.stat_name, \r\n&gt;                   s.begin_time_utc, s.end_time_utc,\r\n&gt;                   GREATEST(estat.value_secs - \r\n&gt;                            (s.diff_logic * NVL(bstat.value_secs,0)),0) \/\r\n&gt;                   ((s.end_time_utc - s.begin_time_utc)*86400)\r\n&gt;                   as value_per_sec\r\n&gt;              FROM base_stats estat, snaps s, base_stats bstat\r\n&gt;             WHERE estat.instance_number = s.instance_number\r\n&gt;               AND estat.snap_id = s.snap_id\r\n&gt;               AND estat.instance_number = bstat.instance_number(+)\r\n&gt;               AND estat.snap_id-1 = bstat.snap_id(+)\r\n&gt;               AND estat.stat_name = bstat.stat_name(+)\r\n&gt;           ),\r\n&gt;         buckets AS\r\n&gt;           (SELECT level as bucket_id,\r\n&gt;                   to_date(:begin_time_utc, :date_format) + \r\n&gt;                   ((level -1) * :bucket_interval_secs\/86400) as begin_time_utc,\r\n&gt;                   to_date(:begin_time_utc, :date_format) + \r\n&gt;                   (level * :bucket_interval_secs\/86400)      as end_time_utc\r\n&gt;              FROM sys.dual\r\n&gt;            CONNECT BY level &lt;= (to_date(:end_time_utc, :date_format) - \r\n&gt;                                 to_date(:begin_time_utc, :date_format)) \r\n&gt;                                * 86400 \/ :bucket_interval_secs\r\n&gt;           ),\r\n&gt;         final_stats AS\r\n&gt;           (SELECT bucket_id, stat_name, \r\n&gt;                   SUM(value_per_sec * bucket_ratio) as aas\r\n&gt;              FROM (\r\n&gt;                    SELECT b.bucket_id, s.stat_name, s.value_per_sec, \r\n&gt;                           (LEAST(s.end_time_utc, b.end_time_utc) - \r\n&gt;                            GREATEST(s.begin_time_utc, b.begin_time_utc))\r\n&gt;                           \/ (b.end_time_utc - b.begin_time_utc) as bucket_ratio\r\n&gt;                      FROM diff_stats s, buckets b\r\n&gt;                     WHERE s.value_per_sec &gt; 0\r\n&gt;                       AND b.end_time_utc &gt; b.begin_time_utc\r\n&gt;                       AND s.begin_time_utc &lt; b.end_time_utc\r\n&gt;                       AND s.end_time_utc &gt; b.begin_time_utc\r\n&gt;                   )\r\n&gt;            GROUP BY bucket_id, stat_name\r\n&gt;           ),\r\n&gt;         pivoted_stats AS\r\n&gt;           (SELECT * FROM final_stats\r\n&gt;            PIVOT(SUM(aas) FOR stat_name IN \r\n&gt;                              ('parse time elapsed' as parse_aas,\r\n&gt;                               'sql execute elapsed time' as sql_exec_aas,\r\n&gt;                               'PL\/SQL execution elapsed time' as plsql_exec_aas)\r\n&gt;                 )\r\n&gt;           ),\r\n&gt;         base_data AS\r\n&gt;           (SELECT bucket_id, parse_aas, sql_exec_aas, plsql_exec_aas\r\n&gt;              FROM pivoted_stats\r\n&gt;            ORDER BY bucket_id)\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes('sql' as \"name\"),\r\n&gt;                xmlelement(\"buckets\",\r\n&gt;                  xmlattributes(:bucket_interval_secs as \"bucket_interval\",\r\n&gt;                                :bucket_count         as \"bucket_count\",\r\n&gt;                                :begin_time_utc       as \"start_time_utc\",\r\n&gt;                                :end_time_utc         as \"end_time_utc\",\r\n&gt;                                :duration             as \"duration\"),\r\n&gt;                  xmlagg(xmlelement(\"bucket\",\r\n&gt;                           xmlattributes(bucket_id    as \"bucket_id\"),\r\n&gt;                   xmlforest(round(parse_aas, 2)      as \"parse_aas\",\r\n&gt;                             round(sql_exec_aas, 2)   as \"sql_aas\",\r\n&gt;                             round(plsql_exec_aas, 2) as \"plsql_aas\")))))\r\n&gt;         from base_data\r\n&gt;        where (parse_aas + sql_exec_aas + plsql_exec_aas) &gt; 0]';\r\n&gt; \r\n&gt;     \r\n&gt;     SQL_AND_PARSE_TIME_AWR_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var dbid                 number;\r\n&gt;       var begin_snap_id        number;\r\n&gt;       var end_snap_id          number;\r\n&gt;       var begin_time_utc       varchar2(4000);\r\n&gt;       var end_time_utc         varchar2(4000);\r\n&gt;       var date_format          varchar2(32);\r\n&gt;       var bucket_interval_secs number;\r\n&gt;       var bucket_count         number;\r\n&gt;       var duration             number;\r\n&gt; \r\n&gt;       begin\r\n&gt;         :dbid                 := #dbid#;\r\n&gt;         :begin_snap_id        := #begin_snap_id#;\r\n&gt;         :end_snap_id          := #end_snap_id#;\r\n&gt;         :begin_time_utc       := '#begin_time_utc#';\r\n&gt;         :end_time_utc         := '#end_time_utc#';\r\n&gt;         :date_format          := '#date_format#';\r\n&gt;         :bucket_interval_secs := #bucket_interval_secs#;\r\n&gt;         :bucket_count         := #bucket_count#;\r\n&gt;         :duration             := #duration#;\r\n&gt;     end;\r\n&gt;     \/]';\r\n&gt; \r\n&gt;   BEGIN\r\n&gt;     \r\n&gt;     IF (IS_REALTIME IS NULL) THEN\r\n&gt;       L_IS_REALTIME := 1;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_DBID := SYS_CONTEXT('USERENV','CON_DBID');\r\n&gt; \r\n&gt;     IF (DBID IS NULL) THEN\r\n&gt;       L_DBID := L_CON_DBID;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (END_TIME_UTC IS NULL) THEN\r\n&gt;       L_END_TIME_UTC := CAST(SYS_EXTRACT_UTC(SYSTIMESTAMP) AS DATE);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (START_TIME_UTC IS NULL) THEN\r\n&gt;       \r\n&gt;       IF (L_IS_REALTIME = 1) THEN\r\n&gt;         L_START_TIME_UTC := L_END_TIME_UTC - 1\/24;\r\n&gt;       \r\n&gt;       ELSE\r\n&gt;         L_START_TIME_UTC := L_END_TIME_UTC - 1;\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (BUCKET_COUNT IS NULL) THEN\r\n&gt;       L_BUCKET_COUNT := 60;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME = 1) THEN\r\n&gt;       \r\n&gt;       L_QRY := SQL_AND_PARSE_TIME_RT;\r\n&gt;     \r\n&gt;       \r\n&gt;       IF (SHOW_SQL = 1) THEN\r\n&gt; \r\n&gt;         L_SQL := SQL_AND_PARSE_TIME_RT_HEADER;\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := REPLACE(L_SQL, '#date_fmt#', DATE_FMT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_start_time_utc#',\r\n&gt;                                  TO_CHAR(L_START_TIME_UTC, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_end_time_utc#',\r\n&gt;                                  TO_CHAR(L_END_TIME_UTC, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_count#', L_BUCKET_COUNT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_interval#', L_BUCKET_INTERVAL);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_duration#',\r\n&gt;                                  ROUND(L_END_TIME_UTC-L_START_TIME_UTC)*DTOS);\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;         \r\n&gt;         L_RESULT_XML := I_SHOW_SQL_XML('sql_and_parse_time', L_SQL);\r\n&gt; \r\n&gt;       ELSE\r\n&gt;         \r\n&gt;         EXECUTE IMMEDIATE L_QRY\r\n&gt;                      INTO L_RESULT_XML\r\n&gt;                     USING L_BUCKET_INTERVAL,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           \r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           \r\n&gt;                           L_BUCKET_INTERVAL, L_BUCKET_COUNT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT),\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT),\r\n&gt;                           ROUND((L_END_TIME_UTC - L_START_TIME_UTC)*DTOS);\r\n&gt;       END IF;\r\n&gt;  \r\n&gt;     \r\n&gt;     ELSE\r\n&gt;       IF (L_AWR_PERIOD IS NOT NULL) THEN\r\n&gt; \r\n&gt;         \r\n&gt;         L_QRY := SQL_AND_PARSE_TIME_AWR;\r\n&gt; \r\n&gt;         \r\n&gt;         \r\n&gt;         IF (SYS_CONTEXT('USERENV','CON_ID') &gt; 2) THEN\r\n&gt;           L_AWR_VIEW_PREFIX := \r\n&gt;             DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(L_AWR_PERIOD.M_MIN_TIME);\r\n&gt; \r\n&gt;           DBMS_SQLTUNE_UTIL1.REPLACE_AWR_VIEW_PREFIX(L_QRY, L_AWR_VIEW_PREFIX);\r\n&gt;         END IF;\r\n&gt; \r\n&gt;         IF (SHOW_SQL = 1) THEN\r\n&gt;           \r\n&gt;           L_SQL := SQL_AND_PARSE_TIME_AWR_HEADER;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := REPLACE(L_SQL, '#dbid#', L_AWR_PERIOD.M_DBID);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#begin_snap_id#', L_AWR_PERIOD.M_BEGIN_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#end_snap_id#', L_AWR_PERIOD.M_END_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#begin_time_utc#', \r\n&gt;                                    TO_CHAR(L_START_TIME_UTC, DATE_FMT)); \r\n&gt;           L_SQL := REPLACE(L_SQL, '#end_time_utc#', \r\n&gt;                                    TO_CHAR(L_END_TIME_UTC, DATE_FMT));\r\n&gt;           L_SQL := REPLACE(L_SQL, '#date_format#', DATE_FMT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_count#', L_BUCKET_COUNT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_interval_secs#', \r\n&gt;                                    L_BUCKET_INTERVAL);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#duration#', ROUND(INTERVAL_TO_SECOND(\r\n&gt;                                    L_END_TIME_UTC, L_START_TIME_UTC)));\r\n&gt; \r\n&gt;           L_RESULT_XML := I_SHOW_SQL_XML('sql_and_parse_time', L_SQL);\r\n&gt; \r\n&gt;         ELSE\r\n&gt;           EXECUTE IMMEDIATE L_QRY\r\n&gt;            INTO L_RESULT_XML\r\n&gt;           USING L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_COUNT,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC,DATE_FMT),\r\n&gt;                 TO_CHAR(L_END_TIME_UTC,DATE_FMT),\r\n&gt;                 ROUND(\r\n&gt;                   INTERVAL_TO_SECOND(L_END_TIME_UTC, L_START_TIME_UTC));\r\n&gt; \r\n&gt;         END IF;\r\n&gt; \r\n&gt;       END IF;\r\n&gt; \r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_RESULT_XML;\r\n&gt; \r\n&gt;   END GET_SQL_N_PARSE_TIME_XML;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_WAIT_TIME_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME_UTC  IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME_UTC    IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt; \r\n&gt;     \r\n&gt;     L_QRY VARCHAR2(32767) := NULL;\r\n&gt;     L_SQL CLOB;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RESULT_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_IS_REALTIME     NUMBER             := IS_REALTIME;\r\n&gt;     L_DBID            NUMBER             := DBID;\r\n&gt;     L_START_TIME_UTC  DATE               := START_TIME_UTC;\r\n&gt;     L_END_TIME_UTC    DATE               := END_TIME_UTC;\r\n&gt;     L_BUCKET_COUNT    NUMBER             := BUCKET_COUNT;\r\n&gt;     L_BUCKET_INTERVAL NUMBER             := BUCKET_INTERVAL;\r\n&gt;     L_AWR_PERIOD      PRVT_AWRV_METADATA := AWR_PERIOD;\r\n&gt;     L_AWR_VIEW_PREFIX VARCHAR2(20)       := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_DBID NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     WAIT_TIME_RT CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       WITH \r\n&gt;         inst_data AS\r\n&gt;           (SELECT inst_id, bucket_id, metric_name, value\r\n&gt;              FROM TABLE(GV$(CURSOR(\r\n&gt;                     SELECT USERENV('INSTANCE') as inst_id,\r\n&gt;                            bucket_id, metric_name,\r\n&gt;                            SUM(value*bucket_ratio) as value\r\n&gt;                       FROM (\r\n&gt;                             SELECT USERENV('INSTANCE') as inst_id,\r\n&gt;                                    buckets.bucket_id,\r\n&gt;                                    met.metric_name,\r\n&gt;                                    met.value,\r\n&gt;                                    (LEAST(met.end_time_utc, \r\n&gt;                                           buckets.end_time_utc) - \r\n&gt;                                     GREATEST(met.begin_time_utc, \r\n&gt;                                              buckets.begin_time_utc)) \/ \r\n&gt;                                     (met.end_time_utc - met.begin_time_utc) \r\n&gt;                                       as bucket_ratio\r\n&gt;                              FROM ( \r\n&gt;                                    SELECT \/*+ no_merge *\/ USERENV('INSTANCE') \r\n&gt;                                                               as inst_id,\r\n&gt;                                           m.begin_time-tz.time_zone \r\n&gt;                                                               as begin_time_utc,\r\n&gt;                                           m.end_time-tz.time_zone \r\n&gt;                                                               as end_time_utc,\r\n&gt;                                           CASE\r\n&gt;                                             WHEN m.metric_name = \r\n&gt;                                                    'Average Active Sessions'\r\n&gt;                                               THEN 'DBTime'\r\n&gt;                                             ELSE 'CPU'\r\n&gt;                                           END as metric_name,\r\n&gt;                                           CASE \r\n&gt;                                             WHEN m.metric_name = \r\n&gt;                                                    'CPU Usage Per Sec' \r\n&gt;                                             THEN m.value*m.intsize_csec\/10000\r\n&gt;                                             ELSE m.value*m.intsize_csec\/100\r\n&gt;                                           END as value\r\n&gt;                                      FROM sys.v_$con_sysmetric_history m,\r\n&gt;                                           (SELECT ROUND(\r\n&gt;                                                     (cast(latest_sample_time \r\n&gt;                                                           as date) - \r\n&gt;                                                      cast(sys_extract_utc(\r\n&gt;                                                             systimestamp) \r\n&gt;                                                           as date))\r\n&gt;                                                     *900,0)\/900 as time_zone\r\n&gt;                                              FROM sys.v_$ash_info) tz\r\n&gt;                                     WHERE m.group_id = 18\r\n&gt;                                       AND m.metric_name IN \r\n&gt;                                             ('Average Active Sessions',\r\n&gt;                                              'CPU Usage Per Sec')\r\n&gt;                                       AND m.begin_time-tz.time_zone &lt; \r\n&gt;                                           to_date(:b_end_time_utc, :date_fmt)\r\n&gt;                                       AND m.end_time-tz.time_zone &gt;= \r\n&gt;                                           to_date(:b_start_time_utc, :date_fmt)\r\n&gt;                                   ) met,    \r\n&gt;                                   ( \r\n&gt;                                    SELECT \/*+ no_merge *\/ level as bucket_id,\r\n&gt;                                           to_date(:b_start_time_utc,:date_fmt) +\r\n&gt;                                           ((level -1) * :p_bucket_interval \r\n&gt;                                            \/ 86400) as begin_time_utc,\r\n&gt;                                           to_date(:b_start_time_utc,:date_fmt) +\r\n&gt;                                           (level * :p_bucket_interval \/ 86400) \r\n&gt;                                                     as end_time_utc\r\n&gt;                                      FROM sys.v_$instance \r\n&gt;                                           -- note: DUAL not allowed inside GV$\r\n&gt;                                    CONNECT BY level &lt;= \r\n&gt;                                               (to_date(:b_end_time_utc,\r\n&gt;                                                        :date_fmt) - \r\n&gt;                                                to_date(:b_start_time_utc, \r\n&gt;                                                        :date_fmt)) \r\n&gt;                                               * 86400 \/ :p_bucket_interval\r\n&gt;                                   ) buckets\r\n&gt;                             WHERE buckets.begin_time_utc &lt; met.end_time_utc\r\n&gt;                               AND buckets.end_time_utc &gt; met.begin_time_utc\r\n&gt;                            )\r\n&gt;                     GROUP BY bucket_id, metric_name\r\n&gt;                     UNION ALL\r\n&gt;                     SELECT USERENV('INSTANCE') as inst_id,\r\n&gt;                            bucket_id,\r\n&gt;                            metric_name,\r\n&gt;                            SUM(value) as value\r\n&gt;                       FROM (\r\n&gt;                             SELECT TRUNC(((cast(sample_time_utc as date) - \r\n&gt;                                                 to_date(:b_start_time_utc, \r\n&gt;                                                         :date_fmt)) * 86400) \/ \r\n&gt;                                    :p_bucket_interval) + 1 AS bucket_id,\r\n&gt;                                    DECODE(session_state, 'WAITING', wait_class, \r\n&gt;                                                          'ASH_CPU') \r\n&gt;                                                            AS metric_name,\r\n&gt;                                    CASE \r\n&gt;                                      WHEN session_type = 'FOREGROUND' \r\n&gt;                                      THEN usecs_per_row\/1000000 \r\n&gt;                                      ELSE 0 \r\n&gt;                                    END AS value\r\n&gt;                               FROM sys.v_$active_session_history\r\n&gt;                              WHERE sample_time_utc &gt;= \r\n&gt;                                    to_timestamp(:b_start_time_utc, :date_fmt)\r\n&gt;                                AND sample_time_utc &lt; \r\n&gt;                                    to_timestamp(:b_end_time_utc, :date_fmt)\r\n&gt;                            )\r\n&gt;                     WHERE bucket_id &gt; 0\r\n&gt;                     GROUP BY bucket_id, metric_name\r\n&gt;           )))),\r\n&gt;         db_data AS \r\n&gt;           (SELECT bucket_id, metric_name, \r\n&gt;                   SUM(value) as value\r\n&gt;              FROM inst_data\r\n&gt;            GROUP BY bucket_id, metric_name\r\n&gt;           ),\r\n&gt;         wait_for_cpu AS\r\n&gt;           (SELECT bucket_id, 'wait for CPU' as metric_name, \r\n&gt;                   GREATEST(SUM(DECODE(metric_name, 'ASH_CPU', value, \r\n&gt;                                       -value)), 0)    AS value\r\n&gt;              FROM db_data\r\n&gt;             WHERE metric_name IN ('CPU', 'ASH_CPU')\r\n&gt;            GROUP BY bucket_id\r\n&gt;           ),\r\n&gt;         final_data AS\r\n&gt;           (SELECT bucket_id, metric_name,\r\n&gt;                   value \/ :p_bucket_interval    AS value\r\n&gt;              FROM db_data\r\n&gt;             WHERE metric_name &lt;&gt; 'ASH_CPU'\r\n&gt;               AND value &gt; 0\r\n&gt;            UNION ALL\r\n&gt;            SELECT bucket_id, metric_name, \r\n&gt;                   value \/:p_bucket_interval     AS value\r\n&gt;              FROM wait_for_cpu\r\n&gt;             WHERE value &gt; 0\r\n&gt;           ),\r\n&gt;         base_data AS\r\n&gt;           (SELECT * FROM final_data\r\n&gt;            ORDER BY bucket_id, metric_name)\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes('wait_time' as \"name\"),\r\n&gt;                xmlelement(\"buckets\",\r\n&gt;                  xmlattributes(:p_bucket_interval as \"bucket_interval\",\r\n&gt;                                :p_bucket_count    as \"bucket_count\",\r\n&gt;                                :b_start_time_utc  as \"start_time_utc\",\r\n&gt;                                :b_end_time_utc    as \"end_time_utc\",\r\n&gt;                                :b_duration        as \"duration\"),\r\n&gt;                  xmlagg(xmlelement(\"bucket\",\r\n&gt;                           xmlattributes(bucket_id as \"bucket_id\"),\r\n&gt;                           xmlagg(\r\n&gt;                             xmlelement(\"metric\",\r\n&gt;                               xmlattributes(metric_name     as \"name\",\r\n&gt;                                             round(value, 2) as \"value\")\r\n&gt;              ))))))\r\n&gt;         from base_data\r\n&gt;        where value &gt; 0 \r\n&gt;        group by bucket_id]';\r\n&gt; \r\n&gt;     WAIT_TIME_RT_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var date_fmt          varchar2(32);\r\n&gt;       var b_start_time_utc  varchar2(32);\r\n&gt;       var b_end_time_utc    varchar2(32);\r\n&gt;       var p_bucket_interval number;\r\n&gt;       var p_bucket_count    number;\r\n&gt;       var b_duration        number;\r\n&gt;       begin \r\n&gt;         :date_fmt            := '#date_fmt#';\r\n&gt;         :b_start_time_utc    := '#b_start_time_utc#';\r\n&gt;         :b_end_time_utc      := '#b_end_time_utc#';\r\n&gt;         :p_bucket_interval   := #p_bucket_interval#;\r\n&gt;         :p_bucket_count      := #p_bucket_count#;\r\n&gt;         :b_duration          := #b_duration#;\r\n&gt;       end;\r\n&gt;       \/]';\r\n&gt; \r\n&gt;     \r\n&gt;     WAIT_TIME_AWR CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       WITH \r\n&gt;         snaps AS\r\n&gt;           (SELECT \/*+ no_merge *\/ s.instance_number, s.snap_id, \r\n&gt;                   CASE \r\n&gt;                     WHEN p.open_time_tz &gt; s.begin_interval_time_tz \r\n&gt;                     THEN CAST((p.open_time_tz at time zone 'UTC') AS DATE)\r\n&gt;                     ELSE CAST((s.begin_interval_time_tz at time zone 'UTC') \r\n&gt;                               AS DATE)\r\n&gt;                   END as begin_time_utc,\r\n&gt;                   CAST((s.end_interval_time_tz at time zone 'UTC') AS DATE) \r\n&gt;                       as end_time_utc,\r\n&gt;                   CASE \r\n&gt;                     WHEN p.open_time_tz &gt; s.begin_interval_time_tz \r\n&gt;                     THEN 0 \r\n&gt;                     ELSE 1 \r\n&gt;                   END as diff_logic\r\n&gt;              FROM awr_root_snapshot s, awr_root_pdb_in_snap p\r\n&gt;             WHERE s.dbid = :dbid\r\n&gt;               AND p.dbid = :dbid\r\n&gt;               AND s.instance_number = p.instance_number\r\n&gt;               AND s.snap_id = p.snap_id\r\n&gt;               AND s.snap_id &gt;= :begin_snap_id\r\n&gt;               AND s.snap_id &lt;= :end_snap_id\r\n&gt;               AND p.snap_id &gt;= :begin_snap_id\r\n&gt;               AND p.snap_id &lt;= :end_snap_id\r\n&gt;           ),\r\n&gt;         base_stats AS\r\n&gt;           (SELECT e.instance_number, e.snap_id, e.wait_class, \r\n&gt;                   SUM(e.time_waited_micro_fg)\/1000000 as value\r\n&gt;              FROM awr_root_con_system_event e\r\n&gt;             WHERE e.dbid = :dbid\r\n&gt;               AND e.snap_id &gt;= :begin_snap_id\r\n&gt;               AND e.snap_id &lt;= :end_snap_id\r\n&gt;               AND e.wait_class &lt;&gt; 'Idle'\r\n&gt;            GROUP BY e.instance_number, e.snap_id, e.wait_class  \r\n&gt;            UNION ALL\r\n&gt;            SELECT s.instance_number, s.snap_id, \r\n&gt;                   CASE \r\n&gt;                     WHEN s.stat_name = 'DB time'\r\n&gt;                     THEN 'DBTime' \r\n&gt;                     ELSE 'CPU'\r\n&gt;                   END as wait_class,\r\n&gt;                   s.value\/1000000 as value\r\n&gt;              FROM awr_root_con_sys_time_model s\r\n&gt;             WHERE s.dbid = :dbid\r\n&gt;               AND s.snap_id &gt;= :begin_snap_id\r\n&gt;               AND s.snap_id &lt;= :end_snap_id\r\n&gt;               AND s.stat_name IN ('DB time', 'DB CPU')\r\n&gt;           ),\r\n&gt;         agg_stats AS\r\n&gt;           (SELECT \/*+ no_merge *\/ instance_number, snap_id, wait_class, \r\n&gt;                   SUM(value) as value\r\n&gt;              FROM base_stats\r\n&gt;             WHERE value &gt; 0\r\n&gt;            GROUP BY instance_number, snap_id, wait_class\r\n&gt;           ),\r\n&gt;         diff_stats AS \r\n&gt;           (SELECT estat.instance_number, estat.snap_id, estat.wait_class, \r\n&gt;                   s.begin_time_utc, s.end_time_utc,\r\n&gt;                   GREATEST(estat.value - \r\n&gt;                            (s.diff_logic * NVL(bstat.value,0)),0) \/\r\n&gt;                   ((s.end_time_utc - s.begin_time_utc)*86400)\r\n&gt;                   as value\r\n&gt;              FROM agg_stats estat, snaps s, agg_stats bstat\r\n&gt;             WHERE estat.instance_number = s.instance_number\r\n&gt;               AND estat.snap_id = s.snap_id\r\n&gt;               AND estat.instance_number = bstat.instance_number(+)\r\n&gt;               AND estat.snap_id-1 = bstat.snap_id(+)\r\n&gt;               AND estat.wait_class = bstat.wait_class(+)\r\n&gt;           ),\r\n&gt;         buckets AS\r\n&gt;           (SELECT level as bucket_id,\r\n&gt;                   to_date(:begin_time_utc, :date_format) + \r\n&gt;                   ((level -1) * :bucket_interval_secs\/86400) as begin_time_utc,\r\n&gt;                   to_date(:begin_time_utc, :date_format) + \r\n&gt;                   (level * :bucket_interval_secs\/86400) as end_time_utc\r\n&gt;              FROM sys.dual\r\n&gt;            CONNECT BY level &lt;= (to_date(:end_time_utc, :date_format) - \r\n&gt;                                 to_date(:begin_time_utc, :date_format)) \r\n&gt;                                * 86400 \/ :bucket_interval_secs\r\n&gt;           ),\r\n&gt;         db_stats AS\r\n&gt;           (SELECT bucket_id, wait_class, \r\n&gt;                   SUM(value * bucket_ratio) as value\r\n&gt;              FROM (\r\n&gt;                    SELECT b.bucket_id, s.wait_class, s.value,\r\n&gt;                           (LEAST(s.end_time_utc, b.end_time_utc) - \r\n&gt;                            GREATEST(s.begin_time_utc, b.begin_time_utc))\r\n&gt;                           \/ (b.end_time_utc - b.begin_time_utc) as bucket_ratio\r\n&gt;                      FROM diff_stats s, buckets b\r\n&gt;                     WHERE b.end_time_utc &gt; b.begin_time_utc\r\n&gt;                       AND s.begin_time_utc &lt; b.end_time_utc\r\n&gt;                       AND s.end_time_utc &gt; b.begin_time_utc\r\n&gt;                   )\r\n&gt;            GROUP BY bucket_id, wait_class\r\n&gt;           ),\r\n&gt;         wait_for_cpu AS\r\n&gt;           (SELECT bucket_id, 'wait for CPU' as wait_class,\r\n&gt;                   GREATEST(SUM(DECODE(wait_class, 'DBTime', value, -value)), \r\n&gt;                            0) as value\r\n&gt;              FROM db_stats\r\n&gt;            GROUP BY bucket_id\r\n&gt;           ),\r\n&gt;         final_stats AS \r\n&gt;           (SELECT bucket_id, wait_class, value\r\n&gt;              FROM db_stats\r\n&gt;            UNION ALL\r\n&gt;            SELECT bucket_id, wait_class, value\r\n&gt;              FROM wait_for_cpu\r\n&gt;           ),\r\n&gt;        base_data AS\r\n&gt;          (SELECT bucket_id, wait_class, value\r\n&gt;             FROM final_stats\r\n&gt;           ORDER BY 1,2)\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes('wait_time' as \"name\"),\r\n&gt;                xmlelement(\"buckets\",\r\n&gt;                  xmlattributes(:bucket_interval_secs as \"bucket_interval\",\r\n&gt;                                :bucket_count         as \"bucket_count\",\r\n&gt;                                :begin_time_utc       as \"start_time_utc\",\r\n&gt;                                :end_time_utc         as \"end_time_utc\",\r\n&gt;                                :duration             as \"duration\"),\r\n&gt;                  xmlagg(xmlelement(\"bucket\",\r\n&gt;                           xmlattributes(bucket_id as \"bucket_id\"),\r\n&gt;                           xmlagg(\r\n&gt;                             xmlelement(\"wait_class\",\r\n&gt;                               xmlattributes(wait_class      as \"name\",\r\n&gt;                                             round(value, 2) as \"value\")))))))\r\n&gt;         from base_data\r\n&gt;        where value &gt; 0 \r\n&gt;        group by bucket_id]';\r\n&gt; \r\n&gt;     WAIT_TIME_AWR_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var dbid                 number;\r\n&gt;       var begin_snap_id        number;\r\n&gt;       var end_snap_id          number;\r\n&gt;       var begin_time_utc       varchar2(4000);\r\n&gt;       var end_time_utc         varchar2(4000);\r\n&gt;       var date_format          varchar2(32);\r\n&gt;       var bucket_interval_secs number;\r\n&gt;       var bucket_count         number;\r\n&gt;       var duration             number;\r\n&gt; \r\n&gt;       begin\r\n&gt;         :dbid                 := #dbid#;\r\n&gt;         :begin_snap_id        := #begin_snap_id#;\r\n&gt;         :end_snap_id          := #end_snap_id#;\r\n&gt;         :begin_time_utc       := '#begin_time_utc#';\r\n&gt;         :end_time_utc         := '#end_time_utc#';\r\n&gt;         :date_format          := '#date_format#';\r\n&gt;         :bucket_interval_secs := #bucket_interval_secs#;\r\n&gt;         :bucket_count         := #bucket_count#;\r\n&gt;         :duration             := #duration#;\r\n&gt;     end;\r\n&gt;     \/]';\r\n&gt; \r\n&gt;   BEGIN\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME IS NULL) THEN\r\n&gt;       L_IS_REALTIME := 1;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_DBID := SYS_CONTEXT('USERENV','CON_DBID');\r\n&gt; \r\n&gt;     IF (DBID IS NULL) THEN\r\n&gt;       L_DBID := L_CON_DBID;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (END_TIME_UTC IS NULL) THEN\r\n&gt;       L_END_TIME_UTC := CAST(SYS_EXTRACT_UTC(SYSTIMESTAMP) AS DATE);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (START_TIME_UTC IS NULL) THEN\r\n&gt;       \r\n&gt;       IF (L_IS_REALTIME = 1) THEN\r\n&gt;         L_START_TIME_UTC := L_END_TIME_UTC - 1\/24;\r\n&gt;       \r\n&gt;       ELSE\r\n&gt;         L_START_TIME_UTC := L_END_TIME_UTC - 1;\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (BUCKET_COUNT IS NULL) THEN\r\n&gt;       L_BUCKET_COUNT := 60;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME = 1) THEN\r\n&gt; \r\n&gt;       L_QRY := WAIT_TIME_RT;\r\n&gt;     \r\n&gt;       \r\n&gt;       IF (SHOW_SQL = 1) THEN\r\n&gt; \r\n&gt;         L_SQL := WAIT_TIME_RT_HEADER;\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := REPLACE(L_SQL, '#date_fmt#', DATE_FMT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_start_time_utc#',\r\n&gt;                                  TO_CHAR(L_START_TIME_UTC, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_end_time_utc#',\r\n&gt;                                  TO_CHAR(L_END_TIME_UTC, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_count#', L_BUCKET_COUNT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_interval#', L_BUCKET_INTERVAL);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_duration#', \r\n&gt;                                  ROUND(L_END_TIME_UTC-L_START_TIME_UTC)*DTOS);\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;         \r\n&gt;         L_RESULT_XML := I_SHOW_SQL_XML('wait_time', L_SQL);\r\n&gt; \r\n&gt;       ELSE\r\n&gt; \r\n&gt;         \r\n&gt;         EXECUTE IMMEDIATE L_QRY\r\n&gt;                      INTO L_RESULT_XML\r\n&gt;                     USING TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           \r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           \r\n&gt;                           L_BUCKET_INTERVAL, L_BUCKET_COUNT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT),\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT),\r\n&gt;                           ROUND((L_END_TIME_UTC - L_START_TIME_UTC)*DTOS);\r\n&gt;       END IF;\r\n&gt;     \r\n&gt;     \r\n&gt;     ELSE\r\n&gt;      IF (L_AWR_PERIOD IS NOT NULL) THEN\r\n&gt; \r\n&gt;         \r\n&gt;         L_QRY := WAIT_TIME_AWR;\r\n&gt; \r\n&gt;         IF (SYS_CONTEXT('USERENV','CON_ID') &gt; 2) THEN\r\n&gt;           L_AWR_VIEW_PREFIX := \r\n&gt;             DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(L_AWR_PERIOD.M_MIN_TIME);\r\n&gt; \r\n&gt;           DBMS_SQLTUNE_UTIL1.REPLACE_AWR_VIEW_PREFIX(L_QRY, L_AWR_VIEW_PREFIX);\r\n&gt;         END IF;\r\n&gt; \r\n&gt;         IF (SHOW_SQL = 1) THEN\r\n&gt;           \r\n&gt;           L_SQL := WAIT_TIME_AWR_HEADER;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := REPLACE(L_SQL, '#dbid#', L_AWR_PERIOD.M_DBID);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#begin_snap_id#', L_AWR_PERIOD.M_BEGIN_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#end_snap_id#', L_AWR_PERIOD.M_END_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#begin_time_utc#', \r\n&gt;                                    TO_CHAR(L_START_TIME_UTC, DATE_FMT)); \r\n&gt;           L_SQL := REPLACE(L_SQL, '#end_time_utc#', \r\n&gt;                                    TO_CHAR(L_END_TIME_UTC, DATE_FMT));\r\n&gt;           L_SQL := REPLACE(L_SQL, '#date_format#', DATE_FMT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_count#', L_BUCKET_COUNT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_interval_secs#', \r\n&gt;                                    L_BUCKET_INTERVAL);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#duration#',\r\n&gt;                                    ROUND(INTERVAL_TO_SECOND(\r\n&gt;                                      L_END_TIME_UTC, L_START_TIME_UTC)));\r\n&gt; \r\n&gt;           L_RESULT_XML := I_SHOW_SQL_XML('wait_time', L_SQL);\r\n&gt; \r\n&gt;         ELSE\r\n&gt;           EXECUTE IMMEDIATE L_QRY\r\n&gt;            INTO L_RESULT_XML\r\n&gt;           USING L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 TO_CHAR(L_END_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_COUNT,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT),\r\n&gt;                 TO_CHAR(L_END_TIME_UTC, DATE_FMT),\r\n&gt;                 ROUND((L_END_TIME_UTC - L_START_TIME_UTC)*DTOS);\r\n&gt;         END IF;\r\n&gt; \r\n&gt;       END IF;\r\n&gt; \r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_RESULT_XML;\r\n&gt; \r\n&gt;   END GET_WAIT_TIME_XML;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_SYSMETRICS_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME_UTC  IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME_UTC    IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt; \r\n&gt;     \r\n&gt;     L_QRY VARCHAR2(32767) := NULL;\r\n&gt;     L_SQL CLOB;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RESULT_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_IS_REALTIME     NUMBER             := IS_REALTIME;\r\n&gt;     L_DBID            NUMBER             := DBID;\r\n&gt;     L_START_TIME_UTC  DATE               := START_TIME_UTC;\r\n&gt;     L_END_TIME_UTC    DATE               := END_TIME_UTC;\r\n&gt;     L_BUCKET_COUNT    NUMBER             := BUCKET_COUNT;\r\n&gt;     L_BUCKET_INTERVAL NUMBER             := BUCKET_INTERVAL;\r\n&gt;     L_AWR_PERIOD      PRVT_AWRV_METADATA := AWR_PERIOD;\r\n&gt;     L_AWR_VIEW_PREFIX VARCHAR2(20)       := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_DBID NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     SYSMETRIC_RT CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       WITH \r\n&gt;         inst_data AS\r\n&gt;           (SELECT inst_id, bucket_id, metric_name, value\r\n&gt;              FROM TABLE(GV$(CURSOR(\r\n&gt;                     SELECT USERENV('INSTANCE') as inst_id,\r\n&gt;                            bucket_id, metric_name,\r\n&gt;                            SUM(value*bucket_ratio) as value\r\n&gt;                       FROM (\r\n&gt;                             SELECT USERENV('INSTANCE') as inst_id,\r\n&gt;                                    buckets.bucket_id,\r\n&gt;                                    met.metric_name,\r\n&gt;                                    met.value,\r\n&gt;                                    (LEAST(met.end_time_utc, \r\n&gt;                                           buckets.end_time_utc) - \r\n&gt;                                     GREATEST(met.begin_time_utc, \r\n&gt;                                              buckets.begin_time_utc)) \/ \r\n&gt;                                     (met.end_time_utc - met.begin_time_utc) \r\n&gt;                                       as bucket_ratio\r\n&gt;                              FROM ( \r\n&gt;                                    SELECT \/*+ no_merge *\/ USERENV('INSTANCE') \r\n&gt;                                                               as inst_id,\r\n&gt;                                           m.begin_time-tz.time_zone \r\n&gt;                                                               as begin_time_utc,\r\n&gt;                                           m.end_time-tz.time_zone \r\n&gt;                                                               as end_time_utc,\r\n&gt;                                           m.metric_name,\r\n&gt;                                           CASE \r\n&gt;                                             WHEN m.metric_name = \r\n&gt;                                                    'CPU Usage Per Sec' \r\n&gt;                                             THEN m.value\/100\r\n&gt;                                             ELSE m.value\r\n&gt;                                           END as value\r\n&gt;                                      FROM sys.v_$con_sysmetric_history m,\r\n&gt;                                           (SELECT ROUND(\r\n&gt;                                                     (cast(latest_sample_time \r\n&gt;                                                           as date) - \r\n&gt;                                                      cast(sys_extract_utc(\r\n&gt;                                                             systimestamp) \r\n&gt;                                                           as date))\r\n&gt;                                                     *900,0)\/900 as time_zone\r\n&gt;                                              FROM sys.v_$ash_info) tz\r\n&gt;                                     WHERE m.group_id = 18\r\n&gt;                                       AND m.metric_name IN \r\n&gt;                                             ('Average Active Sessions',\r\n&gt;                                              'CPU Usage Per Sec',\r\n&gt;                                              'Executions Per Sec',\r\n&gt;                                              'User Calls Per Sec', \r\n&gt;                                              'Total Parse Count Per Sec',\r\n&gt;                                              'User Commits Per Sec', \r\n&gt;                                              'User Rollbacks Per Sec', \r\n&gt;                                              'Session Count',\r\n&gt;                                              'Current Logons Count', \r\n&gt;                                              'Logons Per Sec',\r\n&gt;                                              'Logons Per Txn',\r\n&gt;                                              'Redo Generated Per Sec',\r\n&gt;                                              'Redo Generated Per Txn',\r\n&gt;                                              'User Transaction Per Sec',\r\n&gt;                                              'Network Traffic Volume Per Sec',\r\n&gt;                                              'Hard Parse Count Per Sec',\r\n&gt;                                              'Parse Failure Count Per Sec',\r\n&gt;                                              'Current Open Cursors Count')\r\n&gt;                                       AND m.begin_time-tz.time_zone &lt; \r\n&gt;                                           to_date(:b_end_time_utc, :date_fmt)\r\n&gt;                                       AND m.end_time-tz.time_zone &gt;= \r\n&gt;                                           to_date(:b_start_time_utc, :date_fmt)\r\n&gt;                                   ) met,    \r\n&gt;                                   ( \r\n&gt;                                    SELECT \/*+ no_merge *\/ level as bucket_id,\r\n&gt;                                           to_date(:b_start_time_utc,:date_fmt) +\r\n&gt;                                           ((level -1) * :p_bucket_interval \r\n&gt;                                            \/ 86400) as begin_time_utc,\r\n&gt;                                           to_date(:b_start_time_utc,:date_fmt) +\r\n&gt;                                           (level * :p_bucket_interval \/ 86400) \r\n&gt;                                                     as end_time_utc\r\n&gt;                                      FROM sys.v_$instance \r\n&gt;                                           -- note: DUAL not allowed inside GV$\r\n&gt;                                    CONNECT BY level &lt;= \r\n&gt;                                               (to_date(:b_end_time_utc,\r\n&gt;                                                        :date_fmt) - \r\n&gt;                                                to_date(:b_start_time_utc, \r\n&gt;                                                        :date_fmt)) \r\n&gt;                                               * 86400 \/ :p_bucket_interval\r\n&gt;                                   ) buckets\r\n&gt;                             WHERE buckets.begin_time_utc &lt; met.end_time_utc\r\n&gt;                               AND buckets.end_time_utc &gt; met.begin_time_utc\r\n&gt;                            )\r\n&gt;                     GROUP BY bucket_id, metric_name)))),\r\n&gt;         db_data AS \r\n&gt;           (SELECT bucket_id, metric_name, \r\n&gt;                   SUM(value) as value\r\n&gt;              FROM inst_data\r\n&gt;            GROUP BY bucket_id, metric_name\r\n&gt;           ),\r\n&gt;         final_data AS\r\n&gt;           (SELECT bucket_id, metric_name,\r\n&gt;                   value AS value\r\n&gt;              FROM db_data\r\n&gt;             WHERE value &gt; 0\r\n&gt;           ),\r\n&gt;         base_data AS\r\n&gt;           (SELECT * FROM final_data\r\n&gt;            ORDER BY bucket_id, metric_name)\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes('sysmetric' as \"name\"),\r\n&gt;                xmlelement(\"buckets\",\r\n&gt;                  xmlattributes(:p_bucket_interval as \"bucket_interval\",\r\n&gt;                                :p_bucket_count    as \"bucket_count\",\r\n&gt;                                :b_start_time_utc  as \"start_time_utc\",\r\n&gt;                                :b_end_time_utc    as \"end_time_utc\",\r\n&gt;                                :b_duration        as \"duration\"),\r\n&gt;                  xmlagg(xmlelement(\"bucket\",\r\n&gt;                           xmlattributes(bucket_id as \"bucket_id\"),\r\n&gt;                           xmlagg(\r\n&gt;                             xmlelement(\"metric\",\r\n&gt;                               xmlattributes(metric_name     as \"name\",\r\n&gt;                                             round(value, 2) as \"value\")\r\n&gt;              ))))))\r\n&gt;         from base_data\r\n&gt;        where value &gt; 0 \r\n&gt;        group by bucket_id]';\r\n&gt; \r\n&gt;     SYSMETRIC_RT_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var date_fmt          varchar2(32);\r\n&gt;       var b_start_time_utc  varchar2(32);\r\n&gt;       var b_end_time_utc    varchar2(32);\r\n&gt;       var p_bucket_interval number;\r\n&gt;       var p_bucket_count    number;\r\n&gt;       var b_duration        number;\r\n&gt;       begin \r\n&gt;         :date_fmt            := '#date_fmt#';\r\n&gt;         :b_start_time_utc    := '#b_start_time_utc#';\r\n&gt;         :b_end_time_utc      := '#b_end_time_utc#';\r\n&gt;         :p_bucket_interval   := #p_bucket_interval#;\r\n&gt;         :p_bucket_count      := #p_bucket_count#;\r\n&gt;         :b_duration          := #b_duration#;\r\n&gt;       end;\r\n&gt;       \/]';\r\n&gt; \r\n&gt;     \r\n&gt;     SYSMETRIC_AWR CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       WITH \r\n&gt;         snaps AS\r\n&gt;           (SELECT \/*+ no_merge *\/ s.instance_number, s.snap_id, \r\n&gt;                   CASE \r\n&gt;                     WHEN p.open_time_tz &gt; s.begin_interval_time_tz \r\n&gt;                     THEN CAST((p.open_time_tz at time zone 'UTC') AS DATE)\r\n&gt;                     ELSE CAST((s.begin_interval_time_tz at time zone 'UTC') \r\n&gt;                               AS DATE)\r\n&gt;                   END as begin_time_utc,\r\n&gt;                   CAST((s.end_interval_time_tz at time zone 'UTC') AS DATE) \r\n&gt;                       as end_time_utc,\r\n&gt;                   CASE \r\n&gt;                     WHEN p.open_time_tz &gt; s.begin_interval_time_tz \r\n&gt;                     THEN 0 \r\n&gt;                     ELSE 1 \r\n&gt;                   END as diff_logic\r\n&gt;              FROM awr_root_snapshot s, awr_root_pdb_in_snap p\r\n&gt;             WHERE s.dbid = :dbid\r\n&gt;               AND p.dbid = :dbid\r\n&gt;               AND s.instance_number = p.instance_number\r\n&gt;               AND s.snap_id = p.snap_id\r\n&gt;               AND s.snap_id &gt;= :begin_snap_id\r\n&gt;               AND s.snap_id &lt;= :end_snap_id\r\n&gt;               AND p.snap_id &gt;= :begin_snap_id\r\n&gt;               AND p.snap_id &lt;= :end_snap_id\r\n&gt;           ),\r\n&gt;         base_stats AS\r\n&gt;           (SELECT s.instance_number, s.snap_id,\r\n&gt;                   s.metric_name,\r\n&gt;                   CASE \r\n&gt;                     WHEN s.metric_name = \r\n&gt;                            'CPU Usage Per Sec' \r\n&gt;                     THEN s.average\/100\r\n&gt;                     ELSE s.average\r\n&gt;                   END as value\r\n&gt;              FROM awr_root_con_sysmetric_summ s\r\n&gt;             WHERE s.dbid = :dbid\r\n&gt;               AND s.snap_id &gt;= :begin_snap_id\r\n&gt;               AND s.snap_id &lt;= :end_snap_id\r\n&gt;               AND s.metric_name IN ('Average Active Sessions',\r\n&gt;                                     'CPU Usage Per Sec',\r\n&gt;                                     'Executions Per Sec',\r\n&gt;                                     'User Calls Per Sec', \r\n&gt;                                     'Total Parse Count Per Sec',\r\n&gt;                                     'User Commits Per Sec', \r\n&gt;                                     'User Rollbacks Per Sec', \r\n&gt;                                     'Session Count',\r\n&gt;                                     'Current Logons Count', \r\n&gt;                                     'Logons Per Sec',\r\n&gt;                                     'Logons Per Txn',\r\n&gt;                                     'Redo Generated Per Sec',\r\n&gt;                                     'Redo Generated Per Txn',\r\n&gt;                                     'User Transaction Per Sec',\r\n&gt;                                     'Network Traffic Volume Per Sec',\r\n&gt;                                     'Hard Parse Count Per Sec',\r\n&gt;                                     'Parse Failure Count Per Sec',\r\n&gt;                                     'Current Open Cursors Count')\r\n&gt;           ),\r\n&gt;         agg_stats AS\r\n&gt;           (SELECT \/*+ no_merge *\/ instance_number, snap_id, metric_name, \r\n&gt;                   SUM(value) as value\r\n&gt;              FROM base_stats\r\n&gt;             WHERE value &gt; 0\r\n&gt;            GROUP BY instance_number, snap_id, metric_name\r\n&gt;           ),\r\n&gt;         snap_stats AS \r\n&gt;           (SELECT a.instance_number, a.snap_id, a.metric_name, a.value,  \r\n&gt;                   s.begin_time_utc, s.end_time_utc\r\n&gt;              FROM agg_stats a, snaps s\r\n&gt;             WHERE a.instance_number = s.instance_number\r\n&gt;               AND a.snap_id = s.snap_id\r\n&gt;           ),\r\n&gt;         buckets AS\r\n&gt;           (SELECT level as bucket_id,\r\n&gt;                   to_date(:begin_time_utc, :date_format) + \r\n&gt;                   ((level -1) * :bucket_interval_secs\/86400) as begin_time_utc,\r\n&gt;                   to_date(:begin_time_utc, :date_format) + \r\n&gt;                   (level * :bucket_interval_secs\/86400) as end_time_utc\r\n&gt;              FROM sys.dual\r\n&gt;            CONNECT BY level &lt;= (to_date(:end_time_utc, :date_format) - \r\n&gt;                                 to_date(:begin_time_utc, :date_format)) \r\n&gt;                                * 86400 \/ :bucket_interval_secs\r\n&gt;           ),\r\n&gt;         db_stats AS\r\n&gt;           (SELECT bucket_id, metric_name, \r\n&gt;                   SUM(value * bucket_ratio) as value\r\n&gt;              FROM (\r\n&gt;                    SELECT b.bucket_id, s.metric_name, s.value,\r\n&gt;                           (LEAST(s.end_time_utc, b.end_time_utc) - \r\n&gt;                            GREATEST(s.begin_time_utc, b.begin_time_utc))\r\n&gt;                           \/ (b.end_time_utc - b.begin_time_utc) as bucket_ratio\r\n&gt;                      FROM snap_stats s, buckets b\r\n&gt;                     WHERE b.end_time_utc &gt; b.begin_time_utc\r\n&gt;                       AND s.begin_time_utc &lt; b.end_time_utc\r\n&gt;                       AND s.end_time_utc &gt; b.begin_time_utc\r\n&gt;                   )\r\n&gt;            GROUP BY bucket_id, metric_name\r\n&gt;           ),\r\n&gt;         base_data AS \r\n&gt;           (SELECT bucket_id, metric_name, value\r\n&gt;              FROM db_stats\r\n&gt;            ORDER BY 1, 2)\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes('sysmetric' as \"name\"),\r\n&gt;                xmlelement(\"buckets\",\r\n&gt;                  xmlattributes(:bucket_interval_secs as \"bucket_interval\",\r\n&gt;                                :bucket_count         as \"bucket_count\",\r\n&gt;                                :begin_time_utc       as \"start_time_utc\",\r\n&gt;                                :end_time_utc         as \"end_time_utc\",\r\n&gt;                                :duration             as \"duration\"),\r\n&gt;                  xmlagg(xmlelement(\"bucket\",\r\n&gt;                           xmlattributes(bucket_id as \"bucket_id\"),\r\n&gt;                           xmlagg(\r\n&gt;                             xmlelement(\"metric\",\r\n&gt;                               xmlattributes(metric_name     as \"name\",\r\n&gt;                                             round(value, 2) as \"value\")))))))\r\n&gt;         from base_data\r\n&gt;        where value &gt; 0 \r\n&gt;        group by bucket_id]';\r\n&gt; \r\n&gt;     SYSMETRIC_AWR_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var dbid                 number;\r\n&gt;       var begin_snap_id        number;\r\n&gt;       var end_snap_id          number;\r\n&gt;       var begin_time_utc       varchar2(4000);\r\n&gt;       var end_time_utc         varchar2(4000);\r\n&gt;       var date_format          varchar2(32);\r\n&gt;       var bucket_interval_secs number;\r\n&gt;       var bucket_count         number;\r\n&gt;       var duration             number;\r\n&gt; \r\n&gt;       begin\r\n&gt;         :dbid                 := #dbid#;\r\n&gt;         :begin_snap_id        := #begin_snap_id#;\r\n&gt;         :end_snap_id          := #end_snap_id#;\r\n&gt;         :begin_time_utc       := '#begin_time_utc#';\r\n&gt;         :end_time_utc         := '#end_time_utc#';\r\n&gt;         :date_format          := '#date_format#';\r\n&gt;         :bucket_interval_secs := #bucket_interval_secs#;\r\n&gt;         :bucket_count         := #bucket_count#;\r\n&gt;         :duration             := #duration#;\r\n&gt;     end;\r\n&gt;     \/]';\r\n&gt; \r\n&gt;   BEGIN\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME IS NULL) THEN\r\n&gt;       L_IS_REALTIME := 1;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_DBID := SYS_CONTEXT('USERENV','CON_DBID');\r\n&gt; \r\n&gt;     IF (DBID IS NULL) THEN\r\n&gt;       L_DBID := L_CON_DBID;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (END_TIME_UTC IS NULL) THEN\r\n&gt;       L_END_TIME_UTC := CAST(SYS_EXTRACT_UTC(SYSTIMESTAMP) AS DATE);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (START_TIME_UTC IS NULL) THEN\r\n&gt;       \r\n&gt;       IF (L_IS_REALTIME = 1) THEN\r\n&gt;         L_START_TIME_UTC := L_END_TIME_UTC - 1\/24;\r\n&gt;       \r\n&gt;       ELSE\r\n&gt;         L_START_TIME_UTC := L_END_TIME_UTC - 1;\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (BUCKET_COUNT IS NULL) THEN\r\n&gt;       L_BUCKET_COUNT := 60;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME = 1) THEN\r\n&gt; \r\n&gt;       L_QRY := SYSMETRIC_RT;\r\n&gt;     \r\n&gt;       \r\n&gt;       IF (SHOW_SQL = 1) THEN\r\n&gt; \r\n&gt;         L_SQL := SYSMETRIC_RT_HEADER;\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := REPLACE(L_SQL, '#date_fmt#', DATE_FMT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_start_time_utc#',\r\n&gt;                                  TO_CHAR(L_START_TIME_UTC, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_end_time_utc#',\r\n&gt;                                  TO_CHAR(L_END_TIME_UTC, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_count#', L_BUCKET_COUNT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_interval#', L_BUCKET_INTERVAL);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_duration#', \r\n&gt;                                  ROUND(L_END_TIME_UTC-L_START_TIME_UTC)*DTOS);\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;         \r\n&gt;         L_RESULT_XML := I_SHOW_SQL_XML('sysmetric', L_SQL);\r\n&gt; \r\n&gt;       ELSE\r\n&gt; \r\n&gt;         \r\n&gt;         EXECUTE IMMEDIATE L_QRY\r\n&gt;                      INTO L_RESULT_XML\r\n&gt;                     USING TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           \r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           \r\n&gt;                           L_BUCKET_INTERVAL, L_BUCKET_COUNT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT),\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT),\r\n&gt;                           ROUND((L_END_TIME_UTC - L_START_TIME_UTC)*DTOS);\r\n&gt;       END IF;\r\n&gt;     \r\n&gt;     \r\n&gt;     ELSE\r\n&gt;      IF (L_AWR_PERIOD IS NOT NULL) THEN\r\n&gt; \r\n&gt;         \r\n&gt;         L_QRY := SYSMETRIC_AWR;\r\n&gt; \r\n&gt;         IF (SYS_CONTEXT('USERENV','CON_ID') &gt; 2) THEN\r\n&gt;           L_AWR_VIEW_PREFIX := \r\n&gt;             DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(L_AWR_PERIOD.M_MIN_TIME);\r\n&gt; \r\n&gt;           DBMS_SQLTUNE_UTIL1.REPLACE_AWR_VIEW_PREFIX(L_QRY, L_AWR_VIEW_PREFIX);\r\n&gt;         END IF;\r\n&gt; \r\n&gt;         IF (SHOW_SQL = 1) THEN\r\n&gt;           \r\n&gt;           L_SQL := SYSMETRIC_AWR_HEADER;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := REPLACE(L_SQL, '#dbid#', L_AWR_PERIOD.M_DBID);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#begin_snap_id#', L_AWR_PERIOD.M_BEGIN_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#end_snap_id#', L_AWR_PERIOD.M_END_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#begin_time_utc#', \r\n&gt;                                    TO_CHAR(L_START_TIME_UTC, DATE_FMT)); \r\n&gt;           L_SQL := REPLACE(L_SQL, '#end_time_utc#', \r\n&gt;                                    TO_CHAR(L_END_TIME_UTC, DATE_FMT));\r\n&gt;           L_SQL := REPLACE(L_SQL, '#date_format#', DATE_FMT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_count#', L_BUCKET_COUNT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_interval_secs#', \r\n&gt;                                    L_BUCKET_INTERVAL);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#duration#',\r\n&gt;                                    ROUND(INTERVAL_TO_SECOND(\r\n&gt;                                      L_END_TIME_UTC, L_START_TIME_UTC)));\r\n&gt; \r\n&gt;           L_RESULT_XML := I_SHOW_SQL_XML('sysmetric', L_SQL);\r\n&gt; \r\n&gt;         ELSE\r\n&gt;           EXECUTE IMMEDIATE L_QRY\r\n&gt;            INTO L_RESULT_XML\r\n&gt;           USING L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 TO_CHAR(L_END_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_COUNT,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT),\r\n&gt;                 TO_CHAR(L_END_TIME_UTC, DATE_FMT),\r\n&gt;                 ROUND((L_END_TIME_UTC - L_START_TIME_UTC)*DTOS);\r\n&gt;         END IF;\r\n&gt; \r\n&gt;       END IF;\r\n&gt; \r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_RESULT_XML;\r\n&gt; \r\n&gt;   END GET_SYSMETRICS_XML;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_STORAGE_METRICS_XML(\r\n&gt;     SERVICE_TYPE IN VARCHAR2 DEFAULT NULL,\r\n&gt;     SHOW_SQL     IN NUMBER   DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt;     \r\n&gt;     L_QRY VARCHAR2(32767) := NULL;\r\n&gt;     L_SQL CLOB;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RESULT_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     STORAGE_SERVERLESS CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes(\r\n&gt;                  'storage'         as \"name\",\r\n&gt;                  max(c.max_size)   as \"total\",\r\n&gt;                  max(c.total_size) as \"used\",\r\n&gt;                  decode(max(c.max_size), 0, 0,\r\n&gt;                         (max(c.total_size)\/max(c.max_size))*100) \r\n&gt;                                    as \"utilization\"))\r\n&gt;         from sys.v_$containers c\r\n&gt;        where c.con_id &gt; 2\r\n&gt;          and c.name &lt;&gt; 'PAASSEED']';\r\n&gt; \r\n&gt;     \r\n&gt;     STORAGE_DEDICATED CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes(\r\n&gt;                  'storage'         as \"name\",\r\n&gt;                  max(c.max_size)   as \"total\",\r\n&gt;                  max(c.total_size) as \"used\",\r\n&gt;                  decode(max(c.max_size), 0, 0,\r\n&gt;                         (max(c.total_size)\/max(c.max_size))*100) \r\n&gt;                                    as \"utilization\"),\r\n&gt;                xmlelement(\"tablespaces\",\r\n&gt;                  xmlagg(\r\n&gt;                    xmlelement(\"tbs\",\r\n&gt;                      xmlattributes(\r\n&gt;                        m.tablespace_name as \"name\",\r\n&gt;                        t.contents        as \"type\",\r\n&gt;                        ROUND((m.tablespace_size)*t.block_size, 3) total_space,\r\n&gt;                        ROUND((m.used_space)*t.block_size, 3) used_space,\r\n&gt;                        ROUND(m.used_percent, 2) used_pct)))))\r\n&gt;         from cdb_tablespace_usage_metrics m, \r\n&gt;              cdb_tablespaces t,\r\n&gt;              sys.v_$containers c\r\n&gt;        where t.tablespace_name = m.tablespace_name\r\n&gt;          and c.con_id &gt; 2\r\n&gt;          and c.name &lt;&gt; 'PAASSEED'\r\n&gt;          and m.con_id = c.con_id\r\n&gt;          and t.con_id = m.con_id]';\r\n&gt; \r\n&gt;   BEGIN\r\n&gt; \r\n&gt;     IF (SERVICE_TYPE IN (DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_D, \r\n&gt;                          DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_D)) THEN\r\n&gt;       L_QRY := STORAGE_DEDICATED;\r\n&gt;     ELSIF (SERVICE_TYPE IN (DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_S, \r\n&gt;                             DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_S)) THEN\r\n&gt;       L_QRY := STORAGE_SERVERLESS;\r\n&gt;     ELSE\r\n&gt;       L_QRY := STORAGE_DEDICATED;\r\n&gt;     END IF;\r\n&gt;    \r\n&gt;     \r\n&gt;     IF (SHOW_SQL = 1) THEN\r\n&gt; \r\n&gt;       \r\n&gt;       L_SQL := L_QRY;\r\n&gt; \r\n&gt;       \r\n&gt;       L_RESULT_XML := I_SHOW_SQL_XML('storage', L_SQL);\r\n&gt; \r\n&gt;     ELSE\r\n&gt; \r\n&gt;       \r\n&gt;       EXECUTE IMMEDIATE L_QRY\r\n&gt;                    INTO L_RESULT_XML;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_RESULT_XML;\r\n&gt; \r\n&gt;   END GET_STORAGE_METRICS_XML;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_SESSION_METRICS_XML(\r\n&gt;     SHOW_SQL        IN NUMBER   DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt;   \r\n&gt;     \r\n&gt;     L_SQL CLOB;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RESULT_XML        XMLTYPE := NULL;\r\n&gt;     L_FAILED_LOGONS_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     NUM_CONNECTIONS_RT CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       SELECT xmlelement(\"stattype\",\r\n&gt;                xmlattributes('session' as \"name\"),\r\n&gt;                xmlelement(\"num_connections\", count(*)))\r\n&gt;         FROM sys.gv_$session s\r\n&gt;        WHERE UPPER(s.service_name) not in \r\n&gt;              (SELECT p.name FROM sys.v_$pdbs p WHERE p.con_id=s.con_id) \r\n&gt;          AND UPPER(s.service_name) not in ('SYS$BACKGROUND','SYS$USERS') \r\n&gt;          AND s.type='USER'\r\n&gt;          AND s.sid not in \r\n&gt;              (SELECT ps.sid FROM sys.gv_$px_session ps)]';\r\n&gt; \r\n&gt;     \r\n&gt;     NUM_FAILED_LOGONS_RT CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       SELECT xmlelement(\"failed_logons\", count(*))\r\n&gt;         FROM cdb_unified_audit_trail\r\n&gt;        WHERE action_name = 'LOGON'\r\n&gt;          AND return_code != 0]';\r\n&gt; \r\n&gt;   BEGIN\r\n&gt;      \r\n&gt;     \r\n&gt;     IF (SHOW_SQL = 1) THEN\r\n&gt; \r\n&gt;       L_SQL := NUM_CONNECTIONS_RT || NUM_FAILED_LOGONS_RT;\r\n&gt; \r\n&gt;       \r\n&gt;       L_RESULT_XML := I_SHOW_SQL_XML('session', L_SQL);\r\n&gt; \r\n&gt;     ELSE\r\n&gt; \r\n&gt;       \r\n&gt;       EXECUTE IMMEDIATE NUM_CONNECTIONS_RT\r\n&gt;                    INTO L_RESULT_XML;\r\n&gt; \r\n&gt;       EXECUTE IMMEDIATE NUM_FAILED_LOGONS_RT\r\n&gt;                    INTO L_FAILED_LOGONS_XML;\r\n&gt; \r\n&gt;       IF (L_FAILED_LOGONS_XML IS NOT NULL) THEN\r\n&gt;         L_RESULT_XML := L_RESULT_XML.APPENDCHILDXML(XML_ROOT, \r\n&gt;                                                     L_FAILED_LOGONS_XML);\r\n&gt;       END IF;\r\n&gt; \r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_RESULT_XML;\r\n&gt; \r\n&gt;   END GET_SESSION_METRICS_XML;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION REPORT_WORKLOAD(\r\n&gt;     SERVICE_TYPE   IN VARCHAR2 DEFAULT NULL,\r\n&gt;     IS_REALTIME    IN NUMBER   DEFAULT 1,\r\n&gt;     DBID           IN NUMBER   DEFAULT NULL,\r\n&gt;     START_TIME     IN DATE     DEFAULT NULL,\r\n&gt;     END_TIME       IN DATE     DEFAULT NULL,\r\n&gt;     REPORT_LEVEL   IN VARCHAR2 DEFAULT NULL,\r\n&gt;     SHOW_SQL       IN NUMBER   DEFAULT 0)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt;     \r\n&gt;     L_ELAPSED NUMBER;\r\n&gt;     L_CPU     NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     L_REF_PARAMS DBMS_REPORT.REF_STRING_IDSPEC;\r\n&gt; \r\n&gt;     \r\n&gt;     L_ORIG_ENV DBMS_REPORT.FORMAT_PARAM_VALUES;\r\n&gt;     L_SET_ENV  BOOLEAN;\r\n&gt; \r\n&gt;     \r\n&gt;     L_REPORT_XML          XMLTYPE := NULL;\r\n&gt;     L_RM_METRICS_XML      XMLTYPE := NULL;\r\n&gt;     L_SYS_METRICS_XML     XMLTYPE := NULL;\r\n&gt;     L_SQL_TIME_XML        XMLTYPE := NULL;\r\n&gt;     L_WAIT_TIME_XML       XMLTYPE := NULL;\r\n&gt;     L_STORAGE_METRICS_XML XMLTYPE := NULL;\r\n&gt;     L_SESSION_METRICS_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_SERVICE_TYPE   VARCHAR2(32767) := SERVICE_TYPE;\r\n&gt;     L_IS_REALTIME    NUMBER          := IS_REALTIME;\r\n&gt;     L_DBID           NUMBER          := DBID;\r\n&gt;     L_START_TIME     DATE            := START_TIME;\r\n&gt;     L_END_TIME       DATE            := END_TIME;\r\n&gt;     L_REPORT_LEVEL   VARCHAR2(32767) := REPORT_LEVEL;\r\n&gt;     L_TZ             VARCHAR2(10)    := NULL;\r\n&gt;     L_START_TIME_UTC DATE            := NULL;\r\n&gt;     L_END_TIME_UTC   DATE            := NULL;\r\n&gt;     L_BEGIN_SNAP_ID  NUMBER          := NULL;\r\n&gt;     L_END_SNAP_ID    NUMBER          := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_BUCKET_COUNT    NUMBER;\r\n&gt;     L_BUCKET_INTERVAL NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     L_AWR_PERIOD PRVT_AWRV_METADATA;\r\n&gt; \r\n&gt;     L_SNAP_QRY        VARCHAR2(32767) := NULL;\r\n&gt;     L_AWR_VIEW_PREFIX VARCHAR2(20)    := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt; \r\n&gt;     \r\n&gt;     L_ERRMSG    VARCHAR2(32767);\r\n&gt;     L_ERROR_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RSRCMGR_DETAIL   NUMBER;\r\n&gt;     L_SYSMETRIC_DETAIL NUMBER;\r\n&gt;     L_SQL_TIME_DETAIL  NUMBER;\r\n&gt;     L_WAIT_TIME_DETAIL NUMBER;\r\n&gt;     L_STORAGE_DETAIL   NUMBER;\r\n&gt;     L_SESSION_DETAIL   NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     FUNCTION I_PARSE_REPORT_LEVEL(\r\n&gt;       P_REPORT_LEVEL     IN  VARCHAR2,\r\n&gt;       P_RSRCMGR_DETAIL   OUT NUMBER,\r\n&gt;       P_SYSMETRIC_DETAIL OUT NUMBER,\r\n&gt;       P_SQL_TIME_DETAIL  OUT NUMBER,\r\n&gt;       P_WAIT_TIME_DETAIL OUT NUMBER,\r\n&gt;       P_STORAGE_DETAIL   OUT NUMBER,\r\n&gt;       P_SESSION_DETAIL   OUT NUMBER)\r\n&gt;     RETURN BOOLEAN\r\n&gt;     IS\r\n&gt;       L_REPORT_LEVEL VARCHAR2(32767) := \r\n&gt;         REPLACE(LOWER(P_REPORT_LEVEL), ' ', NULL);\r\n&gt;       L_POS          NUMBER := 1;\r\n&gt;       L_SETVAL       NUMBER;\r\n&gt;     BEGIN\r\n&gt;       \r\n&gt;       P_RSRCMGR_DETAIL   := 1; \r\n&gt;       P_SYSMETRIC_DETAIL := 1; \r\n&gt;       P_SQL_TIME_DETAIL  := 1; \r\n&gt;       P_WAIT_TIME_DETAIL := 1; \r\n&gt;       P_STORAGE_DETAIL   := 1; \r\n&gt;       P_SESSION_DETAIL   := 1; \r\n&gt; \r\n&gt;        \r\n&gt;       IF (L_REPORT_LEVEL IS NULL) THEN\r\n&gt;         RETURN TRUE;\r\n&gt;       END IF;\r\n&gt; \r\n&gt;       \r\n&gt;       L_POS := 1;\r\n&gt; \r\n&gt;       \r\n&gt;       IF (SUBSTR(L_REPORT_LEVEL, L_POS, 3) = 'all') THEN\r\n&gt;         \r\n&gt;         \r\n&gt;         L_POS := L_POS + 3;\r\n&gt;       \r\n&gt;       ELSIF (SUBSTR(L_REPORT_LEVEL, L_POS, 4) = 'none') THEN\r\n&gt;         P_RSRCMGR_DETAIL := 0;\r\n&gt;         P_SYSMETRIC_DETAIL := 0;\r\n&gt;         P_SQL_TIME_DETAIL := 0;\r\n&gt;         P_WAIT_TIME_DETAIL := 0;\r\n&gt;         P_STORAGE_DETAIL := 0;\r\n&gt;         P_SESSION_DETAIL := 0;\r\n&gt;         L_POS := L_POS + 4;\r\n&gt;       END IF;\r\n&gt; \r\n&gt;       \r\n&gt;       WHILE (L_POS &lt; LENGTH(L_REPORT_LEVEL))\r\n&gt;       LOOP\r\n&gt;         IF (SUBSTR(L_REPORT_LEVEL, L_POS, 1) = '-') THEN\r\n&gt;           L_SETVAL   := 0;\r\n&gt;           L_POS      := L_POS + 1;\r\n&gt;         ELSE\r\n&gt;           L_SETVAL   := 1;\r\n&gt;           IF (SUBSTR(L_REPORT_LEVEL, L_POS, 1) = '+') THEN\r\n&gt;             L_POS := L_POS + 1;\r\n&gt;           END IF;\r\n&gt;         END IF;\r\n&gt; \r\n&gt;         CASE\r\n&gt;           \r\n&gt;           WHEN (SUBSTR(L_REPORT_LEVEL, L_POS, 7) = 'rsrcmgr') THEN\r\n&gt;             P_RSRCMGR_DETAIL := L_SETVAL;\r\n&gt;             L_POS := L_POS + 7;\r\n&gt; \r\n&gt;           \r\n&gt;           WHEN (SUBSTR(L_REPORT_LEVEL, L_POS, 9) = 'sysmetric') THEN\r\n&gt;             P_SYSMETRIC_DETAIL := L_SETVAL;\r\n&gt;             L_POS := L_POS + 9;\r\n&gt; \r\n&gt;           \r\n&gt;           WHEN (SUBSTR(L_REPORT_LEVEL, L_POS, 3) = 'sql') THEN\r\n&gt;             P_SQL_TIME_DETAIL := L_SETVAL;\r\n&gt;             L_POS := L_POS + 3;\r\n&gt; \r\n&gt;           \r\n&gt;           WHEN (SUBSTR(L_REPORT_LEVEL, L_POS, 4) = 'wait') THEN\r\n&gt;             P_WAIT_TIME_DETAIL := L_SETVAL;\r\n&gt;             L_POS := L_POS + 4;\r\n&gt; \r\n&gt;           \r\n&gt;           WHEN (SUBSTR(L_REPORT_LEVEL, L_POS, 7) = 'storage') THEN\r\n&gt;             P_STORAGE_DETAIL := L_SETVAL;\r\n&gt;             L_POS := L_POS + 7;\r\n&gt; \r\n&gt;           \r\n&gt;           WHEN (SUBSTR(L_REPORT_LEVEL, L_POS, 7) = 'session') THEN\r\n&gt;             P_SESSION_DETAIL := L_SETVAL;\r\n&gt;             L_POS := L_POS + 7;\r\n&gt;             \r\n&gt;           ELSE\r\n&gt;             \r\n&gt;             RETURN FALSE;\r\n&gt;         END CASE;\r\n&gt;       END LOOP;\r\n&gt; \r\n&gt;       \r\n&gt;       RETURN TRUE;\r\n&gt;       \r\n&gt;     END I_PARSE_REPORT_LEVEL;\r\n&gt; \r\n&gt;   BEGIN\r\n&gt;     \r\n&gt;     \r\n&gt;     L_ORIG_ENV := DBMS_REPORT.FORMAT_PARAM_VALUES();\r\n&gt;     L_SET_ENV  := DBMS_REPORT.SETUP_REPORT_ENV(L_ORIG_ENV);\r\n&gt; \r\n&gt;     \r\n&gt;     DBMS_REPORT.GET_TIMING_INFO(0, L_ELAPSED, L_CPU);\r\n&gt; \r\n&gt;     \r\n&gt; \r\n&gt;     \r\n&gt;     IF (SERVICE_TYPE IS NOT NULL) THEN\r\n&gt;       L_REF_PARAMS('service_type') := SERVICE_TYPE;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (IS_REALTIME IS NOT NULL) THEN\r\n&gt;       L_REF_PARAMS('is_realtime') := IS_REALTIME;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (DBID IS NOT NULL) THEN\r\n&gt;       L_REF_PARAMS('dbid') := DBID;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (START_TIME IS NOT NULL) THEN\r\n&gt;       L_REF_PARAMS('start_time') :=\r\n&gt;         TO_CHAR(START_TIME,DBMS_REPORT.DATE_FMT_MOD);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (END_TIME IS NOT NULL) THEN\r\n&gt;       L_REF_PARAMS('end_time') :=\r\n&gt;         TO_CHAR(END_TIME,DBMS_REPORT.DATE_FMT_MOD);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (REPORT_LEVEL IS NOT NULL) THEN\r\n&gt;       L_REF_PARAMS('report_level') := REPORT_LEVEL;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (SHOW_SQL IS NOT NULL) THEN\r\n&gt;       L_REF_PARAMS('show_sql') := SHOW_SQL; \r\n&gt;     END IF;\r\n&gt;    \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     IF (IS_REALTIME IS NULL) THEN\r\n&gt;       L_IS_REALTIME := 1;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (DBID IS NULL) THEN\r\n&gt;       L_DBID := SYS_CONTEXT('USERENV','CON_DBID');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (REPORT_LEVEL IS NULL) THEN\r\n&gt;       L_REPORT_LEVEL := 'all';\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (END_TIME IS NULL) THEN\r\n&gt;       L_END_TIME := SYSDATE;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (START_TIME IS NULL) THEN\r\n&gt;       \r\n&gt;       IF (L_IS_REALTIME = 1) THEN\r\n&gt;         L_START_TIME := L_END_TIME - 1\/24;\r\n&gt;       \r\n&gt;       ELSE\r\n&gt;         L_START_TIME := L_END_TIME - 1;\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     L_TZ := DBMS_SQLTUNE_UTIL2.GET_TZ_OFFSET();\r\n&gt;     L_END_TIME_UTC := CAST(SYS_EXTRACT_UTC(\r\n&gt;                             TO_TIMESTAMP_TZ(\r\n&gt;                               TO_CHAR(L_END_TIME, 'yyyy-mm-dd hh24:mi:ss') \r\n&gt;                               || L_TZ,\r\n&gt;                               'yyyy-mm-dd hh24:mi:ssTZH:TZM')) AS DATE);\r\n&gt; \r\n&gt; \r\n&gt;     \r\n&gt;     L_START_TIME_UTC := CAST(SYS_EXTRACT_UTC(\r\n&gt;                               TO_TIMESTAMP_TZ(\r\n&gt;                                 TO_CHAR(L_START_TIME, 'yyyy-mm-dd hh24:mi:ss') \r\n&gt;                                 || L_TZ,\r\n&gt;                                 'yyyy-mm-dd hh24:mi:ssTZH:TZM')) AS DATE);\r\n&gt; \r\n&gt;     \r\n&gt;     IF (L_IS_REALTIME = 1) THEN\r\n&gt;       CALCULATE_BUCKETS(L_BUCKET_COUNT, L_BUCKET_INTERVAL, \r\n&gt;                         (L_END_TIME - L_START_TIME)*DTOS,\r\n&gt;                         G_METRIC_SOURCE_HISTORY);\r\n&gt;     ELSE\r\n&gt;       \r\n&gt;       CALCULATE_BUCKETS(L_BUCKET_COUNT, L_BUCKET_INTERVAL, \r\n&gt;                         (L_END_TIME - L_START_TIME)*DTOS,\r\n&gt;                         NULL);\r\n&gt; \r\n&gt;       \r\n&gt;       L_SNAP_QRY := q'[\r\n&gt;         SELECT MIN(snap_id)-1, MAX(snap_id)\r\n&gt;           FROM awr_root_snapshot\r\n&gt;          WHERE dbid = :l_dbid\r\n&gt;            AND cast((end_interval_time_tz at time zone 'UTC') as DATE)\r\n&gt;                 &gt; to_date(:l_start_time_utc, :date_fmt)\r\n&gt;            AND cast((begin_interval_time_tz at time zone 'UTC') as DATE)\r\n&gt;                 &lt; to_date(:l_end_time_utc, :date_fmt)]';\r\n&gt; \r\n&gt;       IF (SYS_CONTEXT('USERENV','CON_ID') &gt; 2) THEN\r\n&gt;         L_AWR_VIEW_PREFIX := \r\n&gt;           DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(L_START_TIME);\r\n&gt; \r\n&gt;         DBMS_SQLTUNE_UTIL1.REPLACE_AWR_VIEW_PREFIX(L_SNAP_QRY, \r\n&gt;                                                    L_AWR_VIEW_PREFIX);\r\n&gt;       END IF;\r\n&gt; \r\n&gt;       IF (L_AWR_VIEW_PREFIX = DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT) THEN\r\n&gt;         L_DBID := SYS_CONTEXT('USERENV','DBID');\r\n&gt;       END IF;\r\n&gt; \r\n&gt;       BEGIN\r\n&gt;         EXECUTE IMMEDIATE L_SNAP_QRY\r\n&gt;         INTO L_BEGIN_SNAP_ID, L_END_SNAP_ID\r\n&gt;         USING L_DBID, \r\n&gt;               TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;               TO_CHAR(L_END_TIME_UTC, DATE_FMT), DATE_FMT;\r\n&gt;       EXCEPTION\r\n&gt;         WHEN NO_DATA_FOUND THEN\r\n&gt;           L_BEGIN_SNAP_ID := NULL;\r\n&gt;           L_END_SNAP_ID := NULL;\r\n&gt;       END;\r\n&gt; \r\n&gt;       \r\n&gt;       \r\n&gt;       L_AWR_PERIOD := PRVT_AWRV_METADATA(P_START_TIME =&gt; L_START_TIME, \r\n&gt;                                          P_END_TIME =&gt; L_END_TIME,\r\n&gt;                                          P_DBID =&gt; L_DBID);\r\n&gt; \r\n&gt;       L_AWR_PERIOD.M_BEGIN_SNAP := L_BEGIN_SNAP_ID;\r\n&gt;       L_AWR_PERIOD.M_END_SNAP := L_END_SNAP_ID;\r\n&gt;       L_AWR_PERIOD.M_MIN_TIME := L_START_TIME;\r\n&gt;       L_AWR_PERIOD.M_MAX_TIME := L_END_TIME;\r\n&gt; \r\n&gt;       \r\n&gt;       IF (L_AWR_PERIOD.M_BEGIN_SNAP IS NULL OR\r\n&gt;           L_AWR_PERIOD.M_BEGIN_SNAP = L_AWR_PERIOD.M_END_SNAP)\r\n&gt;       THEN\r\n&gt; \r\n&gt;         L_ERRMSG := '[' || L_AWR_PERIOD.M_DBID || ']' ||\r\n&gt;                     '[' || L_AWR_PERIOD.M_INST_ID_LOW || '.' ||\r\n&gt;                            L_AWR_PERIOD.M_INST_ID_HIGH || ']' ||\r\n&gt;                     '[' || L_AWR_PERIOD.M_BEGIN_SNAP || '.' || \r\n&gt;                            L_AWR_PERIOD.M_END_SNAP || ']' ||\r\n&gt;                     '[' || TO_CHAR(L_AWR_PERIOD.M_MIN_TIME, \r\n&gt;                                    DBMS_REPORT.DATE_FMT) || '-' ||\r\n&gt;                            TO_CHAR(L_AWR_PERIOD.M_MAX_TIME, \r\n&gt;                                    DBMS_REPORT.DATE_FMT) || ']';\r\n&gt;         \r\n&gt;         L_AWR_PERIOD := NULL;\r\n&gt; \r\n&gt;         \r\n&gt;         L_ERROR_XML := ERROR_XML('report_workload',\r\n&gt;                                  -20800,\r\n&gt;                                  'Insufficient awr data', \r\n&gt;                                  L_ERRMSG);\r\n&gt;       ELSE\r\n&gt; \r\n&gt;         L_ERRMSG := NULL;\r\n&gt;         L_ERROR_XML := NULL;\r\n&gt; \r\n&gt;       END IF;\r\n&gt; \r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (NOT I_PARSE_REPORT_LEVEL(L_REPORT_LEVEL, L_RSRCMGR_DETAIL, \r\n&gt;                                  L_SYSMETRIC_DETAIL, L_SQL_TIME_DETAIL,\r\n&gt;                                  L_WAIT_TIME_DETAIL, L_STORAGE_DETAIL,\r\n&gt;                                  L_SESSION_DETAIL)) THEN\r\n&gt;       SYS.DBMS_SYS_ERROR.RAISE_SYSTEM_ERROR(SYS_ERR_PARAM, 'report_level');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (L_RSRCMGR_DETAIL = 1) THEN\r\n&gt;       L_RM_METRICS_XML := GET_RMMETRICS_XML(L_IS_REALTIME, \r\n&gt;                                             L_DBID,\r\n&gt;                                             L_START_TIME,\r\n&gt;                                             L_END_TIME,\r\n&gt;                                             L_BUCKET_COUNT,\r\n&gt;                                             L_BUCKET_INTERVAL,\r\n&gt;                                             L_AWR_PERIOD,\r\n&gt;                                             SHOW_SQL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (L_SYSMETRIC_DETAIL = 1) THEN        \r\n&gt;         L_SYS_METRICS_XML := GET_SYSMETRICS_XML(L_IS_REALTIME,\r\n&gt;                                                 L_DBID,\r\n&gt;                                                 L_START_TIME_UTC,\r\n&gt;                                                 L_END_TIME_UTC,\r\n&gt;                                                 L_BUCKET_COUNT,\r\n&gt;                                                 L_BUCKET_INTERVAL,\r\n&gt;                                                 L_AWR_PERIOD,\r\n&gt;                                                 SHOW_SQL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     IF (L_SQL_TIME_DETAIL = 1) THEN\r\n&gt;       L_SQL_TIME_XML := GET_SQL_N_PARSE_TIME_XML(L_IS_REALTIME,\r\n&gt;                                                  L_DBID,\r\n&gt;                                                  L_START_TIME_UTC,\r\n&gt;                                                  L_END_TIME_UTC,\r\n&gt;                                                  L_BUCKET_COUNT,\r\n&gt;                                                  L_BUCKET_INTERVAL,\r\n&gt;                                                  L_AWR_PERIOD,\r\n&gt;                                                  SHOW_SQL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (L_WAIT_TIME_DETAIL = 1) THEN\r\n&gt;       L_WAIT_TIME_XML := GET_WAIT_TIME_XML(L_IS_REALTIME,\r\n&gt;                                            L_DBID,\r\n&gt;                                            L_START_TIME_UTC,\r\n&gt;                                            L_END_TIME_UTC,\r\n&gt;                                            L_BUCKET_COUNT,\r\n&gt;                                            L_BUCKET_INTERVAL,\r\n&gt;                                            L_AWR_PERIOD,\r\n&gt;                                            SHOW_SQL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (L_STORAGE_DETAIL = 1) THEN\r\n&gt;       L_STORAGE_METRICS_XML := GET_STORAGE_METRICS_XML(L_SERVICE_TYPE,\r\n&gt;                                                        SHOW_SQL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     IF (L_SESSION_DETAIL = 1) THEN\r\n&gt;       L_SESSION_METRICS_XML := GET_SESSION_METRICS_XML(SHOW_SQL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     DBMS_REPORT.GET_TIMING_INFO(1, L_ELAPSED, L_CPU);\r\n&gt; \r\n&gt;     \r\n&gt;     \r\n&gt;     L_REPORT_XML :=\r\n&gt;       PRVT_REPORT_TAGS.BUILD_REPORT_TAG(\r\n&gt;                          DBMS_REPORT.BUILD_REPORT_REFERENCE_STRUCT(\r\n&gt;                            'awrv','topsql', L_REF_PARAMS),\r\n&gt;                          L_ELAPSED, L_CPU);\r\n&gt; \r\n&gt;     \r\n&gt;     \r\n&gt;     IF (L_RM_METRICS_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, L_RM_METRICS_XML);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (L_SYS_METRICS_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, L_SYS_METRICS_XML);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (L_SQL_TIME_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, L_SQL_TIME_XML);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (L_WAIT_TIME_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, L_WAIT_TIME_XML);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (L_STORAGE_METRICS_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, \r\n&gt;                                                   L_STORAGE_METRICS_XML);\r\n&gt;     END IF;\r\n&gt;     \r\n&gt;     IF (L_SESSION_METRICS_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, \r\n&gt;                                                   L_SESSION_METRICS_XML);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (L_ERROR_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, \r\n&gt;                                                   L_ERROR_XML);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     &lt;&lt;DONE&gt;&gt;\r\n&gt;     \r\n&gt;     \r\n&gt;     IF (L_REPORT_XML IS NULL) THEN\r\n&gt;       \r\n&gt;       L_REPORT_XML :=\r\n&gt;         PRVT_REPORT_TAGS.BUILD_REPORT_TAG(\r\n&gt;           DBMS_REPORT.BUILD_REPORT_REFERENCE_STRUCT(\r\n&gt;             'awrv','topsql',L_REF_PARAMS),\r\n&gt;           NULL, NULL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (L_SET_ENV) THEN\r\n&gt;       \r\n&gt;       DBMS_REPORT.RESTORE_REPORT_ENV(L_ORIG_ENV);\r\n&gt;     END IF;\r\n&gt;  \r\n&gt;     \r\n&gt;     RETURN L_REPORT_XML;\r\n&gt; \r\n&gt;   END REPORT_WORKLOAD;\r\n&gt; \r\n&gt; \r\n<\/pre>\n<div id=\"SYS.PRVT_AWRV_METADATA.TYPE BODY.18.0.0.0_RU\">SYS.PRVT_AWRV_METADATA &#8211; TYPE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">288,290c288,294\r\n&lt;         IF (M_RESOLVED_DB_TYPE \r\n&lt;           IN (DBMS_SQLTUNE_UTIL2.DB_TYPE_PDB, \r\n&lt;                 DBMS_SQLTUNE_UTIL2.DB_TYPE_IMP))\r\n---\r\n&gt; \r\n&gt;         IF (M_RESOLVED_DB_TYPE IN\r\n&gt;               (DBMS_SQLTUNE_UTIL2.DB_TYPE_PDB, \r\n&gt;                DBMS_SQLTUNE_UTIL2.DB_TYPE_IMP)\r\n&gt;             AND\r\n&gt;             DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(P_START_TIME) = \r\n&gt;               DBMS_SQLTUNE_UTIL1.AWR_VIEW_PDB)\r\n432c436,438\r\n&lt;     IF (SYS.DBMS_SQLTUNE_UTIL0.CDB_IS_PDB(L_CON_NAME, L_CON_ID)) THEN  \r\n---\r\n&gt;     IF (SYS.DBMS_SQLTUNE_UTIL0.CDB_IS_PDB(L_CON_NAME, L_CON_ID) AND\r\n&gt;         DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(P_START_TIME) = \r\n&gt;           DBMS_SQLTUNE_UTIL1.AWR_VIEW_PDB) THEN  \r\n<\/pre>\n<div id=\"SYS.WRI$_REPT_AWRV.TYPE BODY.18.0.0.0_RU\">SYS.WRI$_REPT_AWRV &#8211; TYPE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">62a63,65\r\n&gt;     P_INCLUDE_SQLS     NUMBER := 1;\r\n&gt;     P_JET              NUMBER := 0;\r\n&gt;     L_SERVICE_TYPE     VARCHAR2(32);\r\n532,537d534\r\n&lt;       P_LAST_REFRESH_TIME := TO_DATE(\r\n&lt;                                DBMS_REPORT.GET_PARAM(PARAMS,\r\n&lt;                                                       'last_refresh_time',\r\n&lt;                                                       NULLABLE=&gt;TRUE),\r\n&lt;                                DBMS_REPORT.DATE_FMT_MOD);\r\n&lt; \r\n539,540c536\r\n&lt;       P_INST_ID := TO_NUMBER(\r\n&lt;                      DBMS_REPORT.GET_PARAM(PARAMS,'inst_id',NULLABLE=&gt;TRUE));\r\n---\r\n&gt;       P_DBID := TO_NUMBER(DBMS_REPORT.GET_PARAM(PARAMS,'dbid',NULLABLE=&gt;TRUE));\r\n543c539,540\r\n&lt;       P_DBID := TO_NUMBER(DBMS_REPORT.GET_PARAM(PARAMS,'dbid',NULLABLE=&gt;TRUE));\r\n---\r\n&gt;       P_INST_ID := TO_NUMBER(\r\n&gt;                        DBMS_REPORT.GET_PARAM(PARAMS,'inst_id',NULLABLE=&gt;TRUE));\r\n553a551\r\n&gt;       L_SERVICE_TYPE := DBMS_SQLTUNE_UTIL2.GET_CLOUD_SERVICE_TYPE();\r\n556,557c554\r\n&lt;       P_TOP_N_DETAIL := TO_NUMBER(DBMS_REPORT.GET_PARAM(PARAMS,'top_n_detail',\r\n&lt;                                                    NULLABLE=&gt;TRUE));\r\n---\r\n&gt;       P_JET := TO_NUMBER(DBMS_REPORT.GET_PARAM(PARAMS,'is_jet', NULLABLE=&gt;TRUE));\r\n560,564d556\r\n&lt;       P_OUTER_START_TIME := TO_DATE(\r\n&lt;                               DBMS_REPORT.GET_PARAM(PARAMS,'outer_start_time',\r\n&lt;                                                     NULLABLE=&gt;TRUE),\r\n&lt;                               DBMS_REPORT.DATE_FMT_MOD);\r\n&lt; \r\n566,569c558,577\r\n&lt;       P_OUTER_END_TIME := TO_DATE(\r\n&lt;                       DBMS_REPORT.GET_PARAM(PARAMS,'outer_end_time',\r\n&lt;                                                     NULLABLE=&gt;TRUE),\r\n&lt;                             DBMS_REPORT.DATE_FMT_MOD);\r\n---\r\n&gt;       IF (P_JET = 1 OR\r\n&gt;           (L_SERVICE_TYPE IN \r\n&gt;             (DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_S,\r\n&gt;              DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_D,\r\n&gt;              DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_S,\r\n&gt;              DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_D)\r\n&gt;            AND SYS_CONTEXT('USERENV', 'CON_ID') &gt; 2)) THEN\r\n&gt; \r\n&gt;         \r\n&gt;         P_REPORT_LEVEL := DBMS_REPORT.GET_PARAM(PARAMS,'report_level',\r\n&gt;                                                 NULLABLE=&gt;TRUE);\r\n&gt; \r\n&gt;         REPORT_XML := PRVT_AWR_VIEWER.REPORT_WORKLOAD(\r\n&gt;                         SERVICE_TYPE =&gt; L_SERVICE_TYPE,\r\n&gt;                         IS_REALTIME  =&gt; P_IS_REALTIME,\r\n&gt;                         START_TIME   =&gt; P_START_TIME,\r\n&gt;                         END_TIME     =&gt; P_END_TIME,\r\n&gt;                         DBID         =&gt; P_DBID,\r\n&gt;                         REPORT_LEVEL =&gt; P_REPORT_LEVEL,\r\n&gt;                         SHOW_SQL     =&gt; P_SHOW_SQL);\r\n572,573c580\r\n&lt;       P_DIM_NAME := DBMS_REPORT.GET_PARAM(PARAMS,'dim_name',NULLABLE=&gt;TRUE);\r\n&lt;       P_DIM_STAT := DBMS_REPORT.GET_PARAM(PARAMS,'dim_stat',NULLABLE=&gt;TRUE);\r\n---\r\n&gt;       ELSE\r\n575,587c582,601\r\n&lt;       REPORT_XML := PRVT_AWR_VIEWER.REPORT_TOPSQL_XML(\r\n&lt;                       START_TIME        =&gt; P_START_TIME,\r\n&lt;                       END_TIME          =&gt; P_END_TIME,\r\n&lt;                       LAST_REFRESH_TIME =&gt; P_LAST_REFRESH_TIME,\r\n&lt;                       INST_ID           =&gt; P_INST_ID,\r\n&lt;                       DBID              =&gt; P_DBID,\r\n&lt;                       IS_REALTIME       =&gt; P_IS_REALTIME,\r\n&lt;                       TOP_N_DETAIL      =&gt; P_TOP_N_DETAIL,\r\n&lt;                       OUTER_START_TIME  =&gt; P_OUTER_START_TIME,\r\n&lt;                       OUTER_END_TIME    =&gt; P_OUTER_END_TIME,\r\n&lt;                       DIM_NAME          =&gt; P_DIM_NAME,\r\n&lt;                       DIM_STAT          =&gt; P_DIM_STAT,\r\n&lt;                       SHOW_SQL          =&gt; P_SHOW_SQL);\r\n---\r\n&gt;         \r\n&gt;         P_INCLUDE_SQLS := TO_NUMBER(\r\n&gt;                             DBMS_REPORT.GET_PARAM(PARAMS,'include_sqls', \r\n&gt;                                                   NULLABLE=&gt;TRUE));\r\n&gt; \r\n&gt;         P_LAST_REFRESH_TIME := TO_DATE(\r\n&gt;                                  DBMS_REPORT.GET_PARAM(PARAMS,\r\n&gt;                                                         'last_refresh_time',\r\n&gt;                                                         NULLABLE=&gt;TRUE),\r\n&gt;                                  DBMS_REPORT.DATE_FMT_MOD);\r\n&gt; \r\n&gt;         \r\n&gt;         P_TOP_N_DETAIL := TO_NUMBER(DBMS_REPORT.GET_PARAM(PARAMS,'top_n_detail',\r\n&gt;                                                      NULLABLE=&gt;TRUE));\r\n&gt; \r\n&gt;         \r\n&gt;         P_OUTER_START_TIME := TO_DATE(\r\n&gt;                                 DBMS_REPORT.GET_PARAM(PARAMS,'outer_start_time',\r\n&gt;                                                       NULLABLE=&gt;TRUE),\r\n&gt;                                 DBMS_REPORT.DATE_FMT_MOD);\r\n588a603,627\r\n&gt;         \r\n&gt;         P_OUTER_END_TIME := TO_DATE(\r\n&gt;                               DBMS_REPORT.GET_PARAM(PARAMS,'outer_end_time',\r\n&gt;                                                     NULLABLE=&gt;TRUE),\r\n&gt;                               DBMS_REPORT.DATE_FMT_MOD);\r\n&gt; \r\n&gt;         \r\n&gt;         P_DIM_NAME := DBMS_REPORT.GET_PARAM(PARAMS,'dim_name',NULLABLE=&gt;TRUE);\r\n&gt;         P_DIM_STAT := DBMS_REPORT.GET_PARAM(PARAMS,'dim_stat',NULLABLE=&gt;TRUE);\r\n&gt; \r\n&gt;         REPORT_XML := PRVT_AWR_VIEWER.REPORT_TOPSQL_XML(\r\n&gt;                         START_TIME        =&gt; P_START_TIME,\r\n&gt;                         END_TIME          =&gt; P_END_TIME,\r\n&gt;                         LAST_REFRESH_TIME =&gt; P_LAST_REFRESH_TIME,\r\n&gt;                         INST_ID           =&gt; P_INST_ID,\r\n&gt;                         DBID              =&gt; P_DBID,\r\n&gt;                         IS_REALTIME       =&gt; P_IS_REALTIME,\r\n&gt;                         TOP_N_DETAIL      =&gt; P_TOP_N_DETAIL,\r\n&gt;                         OUTER_START_TIME  =&gt; P_OUTER_START_TIME,\r\n&gt;                         OUTER_END_TIME    =&gt; P_OUTER_END_TIME,\r\n&gt;                         DIM_NAME          =&gt; P_DIM_NAME,\r\n&gt;                         DIM_STAT          =&gt; P_DIM_STAT,\r\n&gt;                         INCLUDE_SQLS      =&gt; P_INCLUDE_SQLS,\r\n&gt;                         SHOW_SQL          =&gt; P_SHOW_SQL);\r\n&gt;       END IF;\r\n<\/pre>\n<div id=\"CTXSYS.DRVDDL.PACKAGE BODY.19.0.0.0_RU\">CTXSYS.DRVDDL &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1179a1180\r\n&gt;     L_IDX := DRIXMD.GETINDEXRECBYID(IDXID);\r\n1203a1205,1209\r\n&gt;     \r\n&gt;     IF (L_IDXTYPE = 'CONTEXT_V2' AND IS_PART) THEN\r\n&gt;       DRVXTAB.CREATE_INDEX_INDEXES(L_IDX, PARDEG=&gt;PARA, SYSPART=&gt;TRUE);\r\n&gt;     END IF;\r\n&gt; \r\n1285a1292,1305\r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     IF (L_IDXT = DRIXMD.IDX_TYPE_CONTEXT2) THEN\r\n&gt;       DRVXTAB.CREATE_INDEX_TABLES(L_IDX, SYS_PART=&gt;IS_SYS_PART);\r\n&gt; \r\n&gt;       \r\n&gt;       \r\n&gt;       IF (NOT IS_SYS_PART) THEN\r\n&gt;         DRVXTAB.CREATE_INDEX_INDEXES(L_IDX, PARDEG=&gt;PARA,\r\n&gt;                                      SYSPART=&gt;IS_SYS_PART);\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt; \r\n1371c1391,1397\r\n&lt;   DRVXTAB.CREATE_INDEX_INDEXES(L_IDX, PARDEG=&gt; PARA, SYSPART=&gt;IS_SYS_PART);\r\n---\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   IF (NOT IS_SYS_PART) THEN\r\n&gt;     DRVXTAB.CREATE_INDEX_INDEXES(L_IDX, PARDEG=&gt; PARA, SYSPART=&gt;IS_SYS_PART);\r\n&gt;   END IF;\r\n<\/pre>\n<div id=\"DVSYS.DBMS_MACADM.PACKAGE BODY.19.0.0.0_RU\">DVSYS.DBMS_MACADM &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">2615a2616,2621\r\n&gt;     \r\n&gt;     \r\n&gt;     ELSIF (TMP2) LIKE '%_LOG_SEGMENT_DUMP_PATCH%' THEN\r\n&gt;       RETURN 'Y';\r\n&gt;     ELSIF (TMP2) LIKE '%_LOG_SEGMENT_DUMP_PARAMETER%' THEN\r\n&gt;       RETURN 'Y';\r\n<\/pre>\n<div id=\"MDSYS.SDO_JOIN.FUNCTION.19.0.0.0_RU\">MDSYS.SDO_JOIN &#8211; FUNCTION (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">9a10,17\r\n&gt;     G_TABNAM1    VARCHAR2(130);\r\n&gt;     G_TABNAM1_NQ VARCHAR2(130);\r\n&gt;     G_TABNAM2    VARCHAR2(130);\r\n&gt;     G_TABNAM2_NQ VARCHAR2(130);\r\n&gt;     G_COLNAM1    VARCHAR2(1024);\r\n&gt;     G_COLNAM1_NQ VARCHAR2(1024);\r\n&gt;     G_COLNAM2    VARCHAR2(1024);\r\n&gt;     G_COLNAM2_NQ VARCHAR2(1024);\r\n24d31\r\n&lt;     PART1       VARCHAR2(130);\r\n27,29d33\r\n&lt;     PART2       VARCHAR2(130);\r\n&lt;     COLS        SYS.ODCICOLINFOLIST;\r\n&lt;     COLS2       SYS.ODCICOLINFOLIST;\r\n70a75,76\r\n&gt;     TPTN1_NQ    VARCHAR2(130) := NULL;\r\n&gt;     TPTN2_NQ    VARCHAR2(130) := NULL;\r\n74a81,84\r\n&gt;     TPTN1_IDEN  NUMBER;\r\n&gt;     TPTN2_IDEN  NUMBER;\r\n&gt;     TPTN1_IDEN_STR VARCHAR2(100);\r\n&gt;     TPTN2_IDEN_STR VARCHAR2(100);\r\n79,80d88\r\n&lt;     TABLE1_IDX_PARTITION_STR VARCHAR2(128) := 'null';\r\n&lt;     TABLE2_IDX_PARTITION_STR VARCHAR2(128) := 'null';\r\n126a135\r\n&gt;     TSTSTR := SYS.DBMS_ASSERT.ENQUOTE_LITERAL(PARAMS);\r\n127a137,138\r\n&gt;     BEGIN\r\n&gt; \r\n129,132c140,148\r\n&lt;     TABLE_NAME11 := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TABLE_NAME1);\r\n&lt;     TABLE_NAME22 := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TABLE_NAME2);\r\n&lt;     TNAME1 := TABLE_NAME11;\r\n&lt;     TNAME2 := TABLE_NAME22;\r\n---\r\n&gt;     SELECT INSTR(TABLE_NAME1, '.') INTO LEN FROM SYS.DUAL;\r\n&gt;     IF (LEN &gt; 0) THEN\r\n&gt;       TNAME1 := SUBSTR(TABLE_NAME1, LEN+1);\r\n&gt;       IF ( SDO_UTIL.IS_BUMPY_CASE(TNAME1) ) THEN\r\n&gt;         G_TABNAM1 := TNAME1;\r\n&gt;       ELSE\r\n&gt;         G_TABNAM1 := REPLACE(NLS_UPPER(TNAME1), '\"');\r\n&gt;       END IF;\r\n&gt;       G_TABNAM1_NQ := REPLACE(G_TABNAM1, '\"');\r\n134,136c150,164\r\n&lt;     TSTSTR := SYS.DBMS_ASSERT.ENQUOTE_LITERAL(PARAMS);\r\n&lt;     BEGIN \r\n&lt;     SELECT INSTR(TABLE_NAME11, '.') INTO LEN FROM SYS.DUAL;\r\n---\r\n&gt;       SELECT SDO_UTIL.GET_QUOTED_NAME(RPAD(TABLE_NAME1, LEN-1)) INTO SCHEMA1\r\n&gt;       FROM SYS.DUAL;\r\n&gt;     ELSE\r\n&gt;       SELECT SYS_CONTEXT('USERENV', 'CURRENT_USER') INTO SCHEMA1\r\n&gt;       FROM SYS.DUAL;\r\n&gt;       TNAME1 := TABLE_NAME1;\r\n&gt;       IF ( SDO_UTIL.IS_BUMPY_CASE(TNAME1) ) THEN\r\n&gt;         G_TABNAM1 := TNAME1;\r\n&gt;       ELSE\r\n&gt;         G_TABNAM1 := REPLACE(NLS_UPPER(TNAME1), '\"');\r\n&gt;       END IF;\r\n&gt;       G_TABNAM1_NQ := REPLACE(G_TABNAM1, '\"');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     SELECT INSTR(TABLE_NAME2, '.') INTO LEN FROM SYS.DUAL;\r\n138,139c166,175\r\n&lt;       TNAME1 :=  NLS_UPPER(SUBSTR(TABLE_NAME11, LEN+1)) ;\r\n&lt;       SELECT SDO_UTIL.GET_QUOTED_NAME(RPAD(TABLE_NAME11, LEN-1)) INTO SCHEMA1 FROM SYS.DUAL;\r\n---\r\n&gt;       TNAME2 := SUBSTR(TABLE_NAME2, LEN+1);\r\n&gt;       IF ( SDO_UTIL.IS_BUMPY_CASE(TNAME2) ) THEN\r\n&gt;         G_TABNAM2 := TNAME2;\r\n&gt;       ELSE\r\n&gt;         G_TABNAM2 := REPLACE(NLS_UPPER(TNAME2), '\"');\r\n&gt;       END IF;\r\n&gt;       G_TABNAM2_NQ := REPLACE(G_TABNAM2, '\"');\r\n&gt; \r\n&gt;       SELECT SDO_UTIL.GET_QUOTED_NAME(RPAD(TABLE_NAME2, LEN-1)) INTO SCHEMA2\r\n&gt;       FROM SYS.DUAL;\r\n141,142c177,185\r\n&lt;       SELECT SYS_CONTEXT('USERENV', 'CURRENT_USER') INTO SCHEMA1 FROM SYS.DUAL;\r\n&lt;       TNAME1 := NLS_UPPER(TABLE_NAME11);\r\n---\r\n&gt;       SELECT SYS_CONTEXT('USERENV', 'CURRENT_USER') INTO SCHEMA2\r\n&gt;       FROM SYS.DUAL;\r\n&gt;       TNAME2 := TABLE_NAME2;\r\n&gt;       IF ( SDO_UTIL.IS_BUMPY_CASE(TNAME2) ) THEN\r\n&gt;         G_TABNAM2 := TNAME2;\r\n&gt;       ELSE\r\n&gt;         G_TABNAM2 := REPLACE(NLS_UPPER(TNAME2), '\"');\r\n&gt;       END IF;\r\n&gt;       G_TABNAM2_NQ := REPLACE(G_TABNAM2, '\"');\r\n143a187,192\r\n&gt; \r\n&gt;     TABLE_NAME11 := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_TABNAM1);\r\n&gt;     TABLE_NAME22 := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_TABNAM2);\r\n&gt;     TNAME1 := TABLE_NAME11;\r\n&gt;     TNAME2 := TABLE_NAME22;\r\n&gt; \r\n148,155d196\r\n&lt;     SELECT INSTR(TABLE_NAME22, '.') INTO LEN FROM SYS.DUAL;\r\n&lt;     IF (LEN &gt; 0) THEN\r\n&lt;       TNAME2 :=  NLS_UPPER(SUBSTR(TABLE_NAME22, LEN+1)) ;\r\n&lt;       SELECT SDO_UTIL.GET_QUOTED_NAME(RPAD(TABLE_NAME22, LEN-1)) INTO SCHEMA2 FROM SYS.DUAL;\r\n&lt;     ELSE\r\n&lt;       SELECT SYS_CONTEXT('USERENV', 'CURRENT_USER') INTO SCHEMA2 FROM SYS.DUAL;\r\n&lt;       TNAME2 := NLS_UPPER(TABLE_NAME22);\r\n&lt;     END IF;\r\n161c202,208\r\n&lt;       TPTN1 := SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NLS_UPPER(TABLE1_PARTITION));\r\n---\r\n&gt;       IF ( SDO_UTIL.IS_BUMPY_CASE(TABLE1_PARTITION) ) THEN\r\n&gt;         TPTN1 := TABLE1_PARTITION;\r\n&gt;       ELSE\r\n&gt;         TPTN1 := SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(REPLACE(NLS_UPPER(TABLE1_PARTITION), '\"'));\r\n&gt;       END IF;\r\n&gt;       TPTN1_NQ := REPLACE(TPTN1, '\"');\r\n&gt; \r\n163a211\r\n&gt; \r\n165c213,219\r\n&lt;       TPTN2 := SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NLS_UPPER(TABLE2_PARTITION));\r\n---\r\n&gt;       IF ( SDO_UTIL.IS_BUMPY_CASE(TABLE2_PARTITION) ) THEN\r\n&gt;         TPTN2 := TABLE2_PARTITION;\r\n&gt;       ELSE\r\n&gt;         TPTN2 := SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(REPLACE(NLS_UPPER(TABLE2_PARTITION), '\"'));\r\n&gt;       END IF;\r\n&gt;       TPTN2_NQ := REPLACE(TPTN2, '\"');\r\n&gt; \r\n170c224,238\r\n&lt;     FNAME_LEN := INSTR(COLUMN_NAME1, '(');\r\n---\r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(COLUMN_NAME1) ) THEN\r\n&gt;       G_COLNAM1 := COLUMN_NAME1;\r\n&gt;     ELSE\r\n&gt;       G_COLNAM1 := REPLACE(NLS_UPPER(COLUMN_NAME1), '\"');\r\n&gt;     END IF;\r\n&gt;     G_COLNAM1_NQ := REPLACE(G_COLNAM1, '\"');\r\n&gt; \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(COLUMN_NAME2) ) THEN\r\n&gt;       G_COLNAM2 := COLUMN_NAME2;\r\n&gt;     ELSE\r\n&gt;       G_COLNAM2 := REPLACE(NLS_UPPER(COLUMN_NAME2), '\"');\r\n&gt;     END IF;\r\n&gt;     G_COLNAM2_NQ := REPLACE(G_COLNAM2, '\"');\r\n&gt; \r\n&gt;     FNAME_LEN := INSTR(G_COLNAM1, '(');\r\n174,175c242\r\n&lt;       INP_COL_NAME1 := \r\n&lt;         NLS_UPPER(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(COLUMN_NAME1));\r\n---\r\n&gt;       INP_COL_NAME1 := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM1);\r\n179c246\r\n&lt;       INP_COL_NAME1 := MDSYS.PRVT_IDX.ASSERT_FNCOL(NLS_UPPER(COLUMN_NAME1));\r\n---\r\n&gt;       INP_COL_NAME1 := MDSYS.PRVT_IDX.ASSERT_FNCOL(NLS_UPPER(G_COLNAM1));\r\n193c260\r\n&lt;     FNAME_LEN := INSTR(COLUMN_NAME2, '(');\r\n---\r\n&gt;     FNAME_LEN := INSTR(G_COLNAM2, '(');\r\n197,198c264\r\n&lt;       INP_COL_NAME2 := \r\n&lt;         NLS_UPPER(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(COLUMN_NAME2));\r\n---\r\n&gt;       INP_COL_NAME2 := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM2);\r\n202c268\r\n&lt;       INP_COL_NAME2 := MDSYS.PRVT_IDX.ASSERT_FNCOL(NLS_UPPER(COLUMN_NAME2));\r\n---\r\n&gt;       INP_COL_NAME2 := MDSYS.PRVT_IDX.ASSERT_FNCOL(G_COLNAM2);\r\n224,228c290,296\r\n&lt;       SELECT DISTINCT SDO_INDEX_OWNER, INDEX_NAME INTO IOWN1, INAME1\r\n&lt;         FROM MDSYS.ALL_SDO_INDEX_INFO \r\n&lt;              WHERE TABLE_NAME = TNAME1 \r\n&lt;              AND COLUMN_NAME = INP_COL_NAME1 \r\n&lt;              AND TABLE_OWNER = SCHEMA1 ;\r\n---\r\n&gt;       STMT := 'SELECT distinct sdo_index_owner, index_name ' ||\r\n&gt;               'FROM mdsys.all_sdo_index_info ' ||\r\n&gt;               'WHERE table_name = :tab ' ||\r\n&gt;               'and column_name = :col ' ||\r\n&gt;               'and table_owner = :sch';\r\n&gt;       EXECUTE IMMEDIATE STMT INTO IOWN1, INAME1\r\n&gt;         USING G_TABNAM1_NQ, G_COLNAM1_NQ, SCHEMA1;\r\n241,245c309,315\r\n&lt;       SELECT DISTINCT SDO_INDEX_OWNER, INDEX_NAME INTO IOWN2, INAME2\r\n&lt;         FROM MDSYS.ALL_SDO_INDEX_INFO \r\n&lt;              WHERE TABLE_NAME = TNAME2 \r\n&lt;              AND COLUMN_NAME = INP_COL_NAME2\r\n&lt;              AND TABLE_OWNER = SCHEMA2 ;\r\n---\r\n&gt;       STMT := 'SELECT distinct sdo_index_owner, index_name ' ||\r\n&gt;               'FROM mdsys.all_sdo_index_info ' ||\r\n&gt;               'WHERE table_name = :tab ' ||\r\n&gt;               'and column_name = :col ' ||\r\n&gt;               'and table_owner = :sch';\r\n&gt;       EXECUTE IMMEDIATE STMT INTO IOWN2, INAME2\r\n&gt;         USING G_TABNAM2_NQ, G_COLNAM2_NQ, SCHEMA2;\r\n250,252c320,324\r\n&lt;                                        TNAME1,\r\n&lt;                                        INP_COL_NAME1, \r\n&lt;                                        NDIM1, SRID1);\r\n---\r\n&gt;                                        G_TABNAM1,\r\n&gt;                                        G_COLNAM1, \r\n&gt;                                        NDIM1,\r\n&gt;                                        SRID1);\r\n&gt; \r\n254,256c326,330\r\n&lt;                                        TNAME2,\r\n&lt;                                        INP_COL_NAME2, \r\n&lt;                                        NDIM2, SRID2);    \r\n---\r\n&gt;                                        G_TABNAM2,\r\n&gt;                                        G_COLNAM2, \r\n&gt;                                        NDIM2,\r\n&gt;                                        SRID2);    \r\n&gt; \r\n268,270c342,348\r\n&lt;       SELECT COLUMN_NAME INTO COL_NAME11 FROM SYS.ALL_IND_COLUMNS \r\n&lt;         WHERE INDEX_OWNER = IOWN1 AND INDEX_NAME = INAME1 ;\r\n&lt;        COL_NAME1 := SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(COL_NAME11);\r\n---\r\n&gt;       STMT := 'SELECT column_name ' ||\r\n&gt;               'FROM sys.all_ind_columns ' ||\r\n&gt;               'WHERE index_owner = :own ' ||\r\n&gt;               'AND index_name = :idx';\r\n&gt;       EXECUTE IMMEDIATE STMT INTO COL_NAME11\r\n&gt;         USING IOWN1, INAME1;\r\n&gt;       COL_NAME1 := SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(COL_NAME11);\r\n274,275c352,357\r\n&lt;       SELECT COLUMN_NAME INTO COL_NAME22 FROM SYS.ALL_IND_COLUMNS \r\n&lt;         WHERE INDEX_OWNER = IOWN2 AND INDEX_NAME = INAME2;\r\n---\r\n&gt;       STMT := 'SELECT column_name ' ||\r\n&gt;               'FROM sys.all_ind_columns ' ||\r\n&gt;               'WHERE index_owner = :own ' ||\r\n&gt;               'AND index_name = :idx';\r\n&gt;       EXECUTE IMMEDIATE STMT INTO COL_NAME22\r\n&gt;         USING IOWN2, INAME2;\r\n284,290c366,375\r\n&lt;       STMT := 'SELECT \/*+ RESULT_CACHE *\/ partition_name FROM sys.all_ind_partitions ' ||\r\n&lt;               ' WHERE index_owner = :1  and  ' ||\r\n&lt;               ' index_name = :2 and  partition_position = ' ||\r\n&lt;               ' (SELECT partition_position FROM ' ||\r\n&lt;               ' sys.all_tab_partitions ' ||\r\n&lt;               ' WHERE table_name = :3  and partition_name = :4 '  || \r\n&lt;                  ' and table_owner = :5 ) ';\r\n---\r\n&gt;       STMT := 'SELECT \/*+ RESULT_CACHE *\/ partition_name ' ||\r\n&gt;               'FROM sys.all_ind_partitions ' ||\r\n&gt;               'WHERE index_owner = :1 ' ||\r\n&gt;               'AND index_name = :2 ' ||\r\n&gt;               'AND partition_position = ' ||\r\n&gt;               ' (SELECT partition_position ' ||\r\n&gt;               '  FROM sys.all_tab_partitions ' ||\r\n&gt;               '  WHERE table_name = :3 ' ||\r\n&gt;               '  AND partition_name = :4 '  || \r\n&gt;               '  AND table_owner = :5) ';\r\n292c377\r\n&lt;         USING IOWN1, INAME1, TNAME1, TPTN1, SCHEMA1;\r\n---\r\n&gt;         USING IOWN1, INAME1, G_TABNAM1_NQ, TPTN1_NQ, SCHEMA1;\r\n293a379\r\n&gt;       TPTN1_IDEN := SDO_UTIL.GET_TABLE_PTN_OBJ_ID(IOWN1, G_TABNAM1_NQ, TPTN1_NQ);\r\n296a383\r\n&gt;       TPTN1_IDEN_STR := SDO_UTIL.NUMBER_TO_CHAR(TPTN1_IDEN);\r\n301c388\r\n&lt;                 ',' || TNAME11 || ', ''\"' || COL_NAME1 || \r\n---\r\n&gt;                 ',' || TNAME11 || ', ''\"' || REPLACE(COL_NAME1, '\"') || \r\n303c390\r\n&lt;                 TPTN11 || ', 0,0,1,1)), ' || \r\n---\r\n&gt;                 TPTN11 || ', 0,0,' || TPTN1_IDEN_STR || ',1)), ' || \r\n307a395\r\n&gt; \r\n314,317d401\r\n&lt; \r\n&lt; \r\n&lt;       TABLE1_IDX_PARTITION_STR := SYS.DBMS_ASSERT.ENQUOTE_LITERAL(\r\n&lt;         REPLACE(SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN1), '''',''''''));\r\n323c407\r\n&lt;                 ',' || TNAME11 || ', ''\"' || COL_NAME1 || \r\n---\r\n&gt;                 ',' || TNAME11 || ', ''\"' || REPLACE(COL_NAME1, '\"') || \r\n333d416\r\n&lt; \r\n350c433\r\n&lt;         USING IOWN2, INAME2, TNAME2, TPTN2, SCHEMA2;\r\n---\r\n&gt;         USING IOWN2, INAME2, G_TABNAM2_NQ, TPTN2_NQ, SCHEMA2;\r\n351a435\r\n&gt;       TPTN2_IDEN := SDO_UTIL.GET_TABLE_PTN_OBJ_ID(IOWN2, G_TABNAM2_NQ, TPTN2_NQ);\r\n354a439\r\n&gt;       TPTN2_IDEN_STR := SDO_UTIL.NUMBER_TO_CHAR(TPTN2_IDEN);\r\n359c444\r\n&lt;                 ',' || TNAME22 || ', ''\"' || COL_NAME2 ||\r\n---\r\n&gt;                 ',' || TNAME22 || ', ''\"' || REPLACE(COL_NAME2, '\"') ||\r\n361c446\r\n&lt;                 TPTN22 || ', 0, 0,1,1)), ' || \r\n---\r\n&gt;                 TPTN22 || ', 0, 0,' || TPTN2_IDEN_STR || ',1)), ' || \r\n373,376d457\r\n&lt; \r\n&lt; \r\n&lt;      TABLE2_IDX_PARTITION_STR := SYS.DBMS_ASSERT.ENQUOTE_LITERAL(\r\n&lt;         REPLACE(SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN2), '''',''''''));\r\n382c463\r\n&lt;                 ',' || TNAME22 || ', ''\"' || COL_NAME2 || \r\n---\r\n&gt;                 ',' || TNAME22 || ', ''\"' || REPLACE(COL_NAME2, '\"') || \r\n393d473\r\n&lt; \r\n485,488c565,573\r\n&lt;         FULLTABNM1 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NITABNAME1), FALSE) ||\r\n&lt;           ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN1), FALSE) || ' ) ';\r\n---\r\n&gt;         IF ( IPTN1 IS NULL ) THEN\r\n&gt;           FULLTABNM1 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NITABNAME1), FALSE);\r\n&gt;         ELSE\r\n&gt;           FULLTABNM1 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NITABNAME1), FALSE) ||\r\n&gt;             ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN1), FALSE) || ' ) ';\r\n&gt;         END IF;\r\n496,499c581,589\r\n&lt;         FULLTABNM2 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NITABNAME2), FALSE) ||\r\n&lt;           ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN2), FALSE) || ' ) ';\r\n---\r\n&gt;         IF ( IPTN2 IS NULL ) THEN\r\n&gt;           FULLTABNM2 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NITABNAME2), FALSE);\r\n&gt;         ELSE\r\n&gt;           FULLTABNM2 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NITABNAME2), FALSE) ||\r\n&gt;             ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN2), FALSE) || ' ) ';\r\n&gt;         END IF;\r\n507,510c597,605\r\n&lt;         FULLTABNM1 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(ITABNAME1), FALSE) ||\r\n&lt;           ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN1), FALSE) || ' ) ';\r\n---\r\n&gt;         IF ( IPTN1 IS NULL ) THEN\r\n&gt;           FULLTABNM1 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(ITABNAME1), FALSE);\r\n&gt;         ELSE\r\n&gt;           FULLTABNM1 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(ITABNAME1), FALSE) ||\r\n&gt;             ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN1), FALSE) || ' ) ';\r\n&gt;         END IF;\r\n518,521c613,621\r\n&lt;         FULLTABNM2 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(ITABNAME2), FALSE) ||\r\n&lt;           ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN2), FALSE) || ' ) ';\r\n---\r\n&gt;         IF ( IPTN2 IS NULL ) THEN\r\n&gt;           FULLTABNM2 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(ITABNAME2), FALSE);\r\n&gt;         ELSE\r\n&gt;           FULLTABNM2 := SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(ITABNAME2), FALSE) ||\r\n&gt;             ' PARTITION ( ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IPTN2), FALSE) || ' ) ';\r\n&gt;         END IF;\r\n<\/pre>\n<div id=\"MDSYS.MDPRVT_IDX.PACKAGE.19.0.0.0_RU\">MDSYS.MDPRVT_IDX &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">106a107\r\n&gt;     SDO_RTREE_READ_ONLY       IN NUMBER,\r\n<\/pre>\n<div id=\"MDSYS.PRVT_IDX.PACKAGE.19.0.0.0_RU\">MDSYS.PRVT_IDX &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">119a120\r\n&gt; \r\n<\/pre>\n<div id=\"MDSYS.SDO_IDX.PACKAGE.19.0.0.0_RU\">MDSYS.SDO_IDX &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">134a135\r\n&gt;     SDO_RTREE_READ_ONLY       IN NUMBER,\r\n<\/pre>\n<div id=\"MDSYS.SDO_UTIL.PACKAGE.19.0.0.0_RU\">MDSYS.SDO_UTIL &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">23a24,29\r\n&gt;   -- Get the object ID of the specified table partition (as table owner)\r\n&gt;   FUNCTION get_table_ptn_obj_id(table_owner IN VARCHAR2,\r\n&gt;                                 table_name IN VARCHAR2,\r\n&gt;                                 table_ptn IN VARCHAR2 DEFAULT NULL)\r\n&gt;   return NUMBER;\r\n&gt; \r\n54a61,66\r\n&gt; \r\n&gt;   -- Is object name double-quoted and bumpy-case?\r\n&gt;   -- FALSE=NO, TRUE=YES\r\n&gt;   FUNCTION is_bumpy_case(name IN VARCHAR2,\r\n&gt;                          skip_quotes IN boolean default FALSE)\r\n&gt;   RETURN boolean DETERMINISTIC;\r\n<\/pre>\n<div id=\"MDSYS.MDPRVT_GMD.PACKAGE BODY.19.0.0.0_RU\">MDSYS.MDPRVT_GMD &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">29c29\r\n&lt;     IF(OWNER_IN = CURR_USER)  THEN\r\n---\r\n&gt;     IF(OWNER_IN = CURR_USER) THEN\r\n136,139c136\r\n&lt;     GET_GEOM_METADATA_INT(ISNAME,\r\n&lt;                           NLS_UPPER(ITAB),\r\n&lt;                           NLS_UPPER(ICOL),\r\n&lt;                           NDIM, SRID);\r\n---\r\n&gt;     GET_GEOM_METADATA_INT(ISNAME, ITAB, ICOL, NDIM, SRID);\r\n152,155c149\r\n&lt;     GET_GEOM_METADATA(ISNAME,\r\n&lt;                       NLS_UPPER(ITAB),\r\n&lt;                       NLS_UPPER(ICOL),\r\n&lt;                       NDIM, SRID);\r\n---\r\n&gt;     GET_GEOM_METADATA(ISNAME, ITAB, ICOL, NDIM, SRID);\r\n177,180c171,173\r\n&lt;     GET_GEOM_METADATA_INT(ISNAME,\r\n&lt;                           NLS_UPPER(ITAB),\r\n&lt;                           NLS_UPPER(ICOL),\r\n&lt;                           NDIM, SRID);\r\n---\r\n&gt;     GET_GEOM_METADATA_INT(ISNAME, ITAB, ICOL, NDIM, SRID);\r\n&gt; \r\n&gt;     \r\n194,197c187\r\n&lt;       GET_GEOM_DIMINFO_INT(ISNAME,\r\n&lt;                            NLS_UPPER(ITAB),\r\n&lt;                            NLS_UPPER(ICOL),\r\n&lt;                            DIMINFO);\r\n---\r\n&gt;       GET_GEOM_DIMINFO_INT(ISNAME, ITAB, ICOL, DIMINFO);\r\n213,216c203\r\n&lt;     GET_GEOM_METADATA(ISNAME,\r\n&lt;                       NLS_UPPER(ITAB),\r\n&lt;                       NLS_UPPER(ICOL),\r\n&lt;                       NDIM, SRID, DIMINFO);\r\n---\r\n&gt;     GET_GEOM_METADATA(ISNAME, ITAB, ICOL, NDIM, SRID, DIMINFO);\r\n231,232c218,219\r\n&lt;                                     ITAB IN VARCHAR2,\r\n&lt;                                     ICOL IN VARCHAR2)\r\n---\r\n&gt;                                     ITAB IN VARCHAR2, \r\n&gt;                                     ICOL IN VARCHAR2) \r\n237,240c224,226\r\n&lt;     GET_GEOM_METADATA_INT(ISNAME,\r\n&lt;                           NLS_UPPER(ITAB),\r\n&lt;                           NLS_UPPER(ICOL),\r\n&lt;                           NDIM, SRID);\r\n---\r\n&gt;     GET_GEOM_METADATA_INT(ISNAME, ITAB, ICOL, NDIM, SRID);\r\n&gt; \r\n&gt;     \r\n<\/pre>\n<div id=\"MDSYS.MDPRVT_IDX.PACKAGE BODY.19.0.0.0_RU\">MDSYS.MDPRVT_IDX &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">70a71\r\n&gt;     SDO_RTREE_READ_ONLY,\r\n152a154\r\n&gt;     SDO_RTREE_READ_ONLY      CONSTANT NUMBER := 0;\r\n219a222\r\n&gt;       SDO_RTREE_READ_ONLY,\r\n260a264\r\n&gt;       ',' || SDO_RTREE_READ_ONLY ||\r\n542c546\r\n&lt;         TMP_NAME := 'TMP_' || SYS.DBMS_ASSERT.NOOP(ITAB1);\r\n---\r\n&gt;         TMP_NAME := 'TMP_' || ITAB1;\r\n568,573c572,577\r\n&lt;         SET SDO_INDEX_NAME = SYS.DBMS_ASSERT.NOOP(TMP_NAME),\r\n&lt;             SDO_INDEX_OWNER = SYS.DBMS_ASSERT.NOOP(IA1.INDEXSCHEMA), \r\n&lt;             SDO_TSNAME = SYS.DBMS_ASSERT.NOOP(IA1.INDEXSCHEMA), \r\n&lt;             SDO_INDEX_TABLE = SYS.DBMS_ASSERT.NOOP(ITAB2),\r\n&lt;             SDO_NL_INDEX_TABLE = SYS.DBMS_ASSERT.NOOP(NITAB2),\r\n&lt;             SDO_RTREE_SEQ_NAME = SYS.DBMS_ASSERT.NOOP(ISEQ2),\r\n---\r\n&gt;         SET SDO_INDEX_NAME = TMP_NAME,\r\n&gt;             SDO_INDEX_OWNER = IA1.INDEXSCHEMA, \r\n&gt;             SDO_TSNAME = IA1.INDEXSCHEMA, \r\n&gt;             SDO_INDEX_TABLE = ITAB2,\r\n&gt;             SDO_NL_INDEX_TABLE = NITAB2,\r\n&gt;             SDO_RTREE_SEQ_NAME = ISEQ2,\r\n576,579c580,583\r\n&lt;         WHERE SDO_INDEX_TABLE = SYS.DBMS_ASSERT.NOOP(ITAB1)\r\n&lt;         AND SDO_INDEX_NAME = SYS.DBMS_ASSERT.NOOP(IA.INDEXNAME)\r\n&lt;         AND SDO_INDEX_OWNER = SYS.DBMS_ASSERT.NOOP(IA.INDEXSCHEMA)\r\n&lt;         AND SDO_INDEX_PARTITION = SYS.DBMS_ASSERT.NOOP(IA.INDEXPARTITION);\r\n---\r\n&gt;         WHERE SDO_INDEX_TABLE = ITAB1\r\n&gt;         AND SDO_INDEX_NAME = IA.INDEXNAME\r\n&gt;         AND SDO_INDEX_OWNER = IA.INDEXSCHEMA\r\n&gt;         AND SDO_INDEX_PARTITION = IA.INDEXPARTITION;\r\n583,586c587,590\r\n&lt;         MDSYS.MDPRVT_IDX.INVALIDATE_CACHE(SYS.DBMS_ASSERT.NOOP(IA.INDEXSCHEMA),\r\n&lt;                                           SYS.DBMS_ASSERT.NOOP(IA.INDEXNAME),\r\n&lt;                                           SYS.DBMS_ASSERT.NOOP(IA.INDEXPARTITION),\r\n&lt;                                           SYS.DBMS_ASSERT.NOOP(ITAB1));\r\n---\r\n&gt;         MDSYS.MDPRVT_IDX.INVALIDATE_CACHE(IA.INDEXSCHEMA,\r\n&gt;                                           IA.INDEXNAME,\r\n&gt;                                           IA.INDEXPARTITION,\r\n&gt;                                           ITAB1);\r\n598,604c602,608\r\n&lt;         SET SDO_INDEX_NAME = SYS.DBMS_ASSERT.NOOP(IA.INDEXNAME),\r\n&lt;             SDO_INDEX_OWNER = SYS.DBMS_ASSERT.NOOP(IA.INDEXSCHEMA), \r\n&lt;             SDO_TSNAME = SYS.DBMS_ASSERT.NOOP(IA.INDEXSCHEMA), \r\n&lt;             SDO_INDEX_TABLE = SYS.DBMS_ASSERT.NOOP(ITAB1),\r\n&lt;             SDO_NL_INDEX_TABLE = SYS.DBMS_ASSERT.NOOP(NITAB1),\r\n&lt;             SDO_RTREE_SEQ_NAME = SYS.DBMS_ASSERT.NOOP(ISEQ1),\r\n&lt;             SDO_INDEX_PARTITION = SYS.DBMS_ASSERT.NOOP(IA.INDEXPARTITION),\r\n---\r\n&gt;         SET SDO_INDEX_NAME = IA.INDEXNAME,\r\n&gt;             SDO_INDEX_OWNER = IA.INDEXSCHEMA, \r\n&gt;             SDO_TSNAME = IA.INDEXSCHEMA, \r\n&gt;             SDO_INDEX_TABLE = ITAB1,\r\n&gt;             SDO_NL_INDEX_TABLE = NITAB1,\r\n&gt;             SDO_RTREE_SEQ_NAME = ISEQ1,\r\n&gt;             SDO_INDEX_PARTITION = IA.INDEXPARTITION,\r\n606,608c610,612\r\n&lt;          WHERE SDO_INDEX_TABLE = SYS.DBMS_ASSERT.NOOP(ITAB2)\r\n&lt;          AND SDO_INDEX_NAME = SYS.DBMS_ASSERT.NOOP(IA1.INDEXNAME)\r\n&lt;          AND SDO_INDEX_OWNER = SYS.DBMS_ASSERT.NOOP(IA1.INDEXSCHEMA)\r\n---\r\n&gt;          WHERE SDO_INDEX_TABLE = ITAB2\r\n&gt;          AND SDO_INDEX_NAME = IA1.INDEXNAME\r\n&gt;          AND SDO_INDEX_OWNER = IA1.INDEXSCHEMA\r\n613,616c617,620\r\n&lt;         MDSYS.MDPRVT_IDX.INVALIDATE_CACHE(SYS.DBMS_ASSERT.NOOP(IA1.INDEXSCHEMA),\r\n&lt;                                           SYS.DBMS_ASSERT.NOOP(IA1.INDEXNAME),\r\n&lt;                                           SYS.DBMS_ASSERT.NOOP(IA1.INDEXPARTITION),\r\n&lt;                                           SYS.DBMS_ASSERT.NOOP(ITAB2));\r\n---\r\n&gt;         MDSYS.MDPRVT_IDX.INVALIDATE_CACHE(IA1.INDEXSCHEMA,\r\n&gt;                                           IA1.INDEXNAME,\r\n&gt;                                           IA1.INDEXPARTITION,\r\n&gt;                                           ITAB2);\r\n627,628c631,632\r\n&lt;         SET SDO_INDEX_NAME = SYS.DBMS_ASSERT.NOOP(IA1.INDEXNAME)\r\n&lt;         WHERE SDO_INDEX_NAME = SYS.DBMS_ASSERT.NOOP(TMP_NAME);\r\n---\r\n&gt;         SET SDO_INDEX_NAME = IA1.INDEXNAME\r\n&gt;         WHERE SDO_INDEX_NAME = TMP_NAME;\r\n642,644c646,648\r\n&lt;         SET SDO_INDEX_NAME= SYS.DBMS_ASSERT.NOOP(IA1.INDEXNAME),  \r\n&lt;             SDO_INDEX_OWNER= SYS.DBMS_ASSERT.NOOP(IA1.INDEXSCHEMA), \r\n&lt;             SDO_TSNAME=SYS.DBMS_ASSERT.NOOP(IA1.INDEXSCHEMA), \r\n---\r\n&gt;         SET SDO_INDEX_NAME= IA1.INDEXNAME,  \r\n&gt;             SDO_INDEX_OWNER= IA1.INDEXSCHEMA, \r\n&gt;             SDO_TSNAME=IA1.INDEXSCHEMA, \r\n647,649c651,653\r\n&lt;         WHERE SDO_INDEX_TABLE= SYS.DBMS_ASSERT.NOOP(ITAB1)\r\n&lt;         AND SDO_INDEX_NAME= SYS.DBMS_ASSERT.NOOP(IA.INDEXNAME)\r\n&lt;         AND SDO_INDEX_OWNER= SYS.DBMS_ASSERT.NOOP(IA.INDEXSCHEMA);\r\n---\r\n&gt;         WHERE SDO_INDEX_TABLE= ITAB1\r\n&gt;         AND SDO_INDEX_NAME= IA.INDEXNAME\r\n&gt;         AND SDO_INDEX_OWNER= IA.INDEXSCHEMA;\r\n653,656c657,660\r\n&lt;         MDSYS.MDPRVT_IDX.INVALIDATE_CACHE(SYS.DBMS_ASSERT.NOOP(IA.INDEXSCHEMA),\r\n&lt;                                           SYS.DBMS_ASSERT.NOOP(IA.INDEXNAME),\r\n&lt;                                           SYS.DBMS_ASSERT.NOOP(IA.INDEXPARTITION),\r\n&lt;                                           SYS.DBMS_ASSERT.NOOP(ITAB1));\r\n---\r\n&gt;         MDSYS.MDPRVT_IDX.INVALIDATE_CACHE(IA.INDEXSCHEMA,\r\n&gt;                                           IA.INDEXNAME,\r\n&gt;                                           IA.INDEXPARTITION,\r\n&gt;                                           ITAB1);\r\n668c672\r\n&lt;         SET SDO_INDEX_NAME= SYS.DBMS_ASSERT.NOOP(IA.INDEXNAME),\r\n---\r\n&gt;         SET SDO_INDEX_NAME= IA.INDEXNAME,\r\n670,675c674,679\r\n&lt;             SDO_INDEX_OWNER= SYS.DBMS_ASSERT.NOOP(IA.INDEXSCHEMA), \r\n&lt;             SDO_TSNAME= SYS.DBMS_ASSERT.NOOP(IA.INDEXSCHEMA), \r\n&lt;             SDO_INDEX_PARTITION= SYS.DBMS_ASSERT.NOOP(IA.INDEXPARTITION) \r\n&lt;          WHERE SDO_INDEX_TABLE= SYS.DBMS_ASSERT.NOOP(ITAB2)\r\n&lt;          AND SDO_INDEX_NAME=SYS.DBMS_ASSERT.NOOP(IA1.INDEXNAME)\r\n&lt;          AND SDO_INDEX_OWNER=SYS.DBMS_ASSERT.NOOP(IA1.INDEXSCHEMA);\r\n---\r\n&gt;             SDO_INDEX_OWNER= IA.INDEXSCHEMA, \r\n&gt;             SDO_TSNAME= IA.INDEXSCHEMA, \r\n&gt;             SDO_INDEX_PARTITION= IA.INDEXPARTITION \r\n&gt;          WHERE SDO_INDEX_TABLE= ITAB2\r\n&gt;          AND SDO_INDEX_NAME=IA1.INDEXNAME\r\n&gt;          AND SDO_INDEX_OWNER=IA1.INDEXSCHEMA;\r\n679,682c683,686\r\n&lt;         MDSYS.MDPRVT_IDX.INVALIDATE_CACHE(SYS.DBMS_ASSERT.NOOP(IA1.INDEXSCHEMA),\r\n&lt;                                           SYS.DBMS_ASSERT.NOOP(IA1.INDEXNAME),\r\n&lt;                                           SYS.DBMS_ASSERT.NOOP(IA1.INDEXPARTITION),\r\n&lt;                                           SYS.DBMS_ASSERT.NOOP(ITAB2));\r\n---\r\n&gt;         MDSYS.MDPRVT_IDX.INVALIDATE_CACHE(IA1.INDEXSCHEMA,\r\n&gt;                                           IA1.INDEXNAME,\r\n&gt;                                           IA1.INDEXPARTITION,\r\n&gt;                                           ITAB2);\r\n748a753\r\n&gt;     SDO_RTREE_READ_ONLY       NUMBER;\r\n788,789d792\r\n&lt;     COLNAME := REPLACE(COLNAME, '\"');\r\n&lt;      \r\n795a799,802\r\n&gt;     ELSIF ( SDO_UTIL.IS_BUMPY_CASE(COLNAME, TRUE) ) THEN\r\n&gt;       COLNAME := '\"' || COLNAME || '\"';\r\n&gt;     ELSE\r\n&gt;       COLNAME := REPLACE(NLS_UPPER(COLNAME), '\"');\r\n803,804c810,817\r\n&lt;       AND SDO_INDEX_NAME = SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(IA.INDEXNAME)\r\n&lt;       AND SDO_TSNAME = SYS.DBMS_ASSERT.SCHEMA_NAME(TSNAME);\r\n---\r\n&gt;       AND SDO_INDEX_NAME = IA.INDEXNAME\r\n&gt;       AND SDO_TSNAME = TSNAME;\r\n&gt; \r\n&gt;       IF ( SDO_UTIL.IS_BUMPY_CASE(TABNAME, TRUE) ) THEN\r\n&gt;         TABNAME := '\"' || TABNAME || '\"';\r\n&gt;       ELSE\r\n&gt;         TABNAME := REPLACE(NLS_UPPER(TABNAME), '\"');\r\n&gt;       END IF;\r\n833c846\r\n&lt;       FROM  MDSYS.SDO_GEOM_METADATA_TABLE\r\n---\r\n&gt;       FROM MDSYS.SDO_GEOM_METADATA_TABLE\r\n835c848\r\n&lt;       AND SDO_TABLE_NAME = SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(TABNAME)\r\n---\r\n&gt;       AND SDO_TABLE_NAME = TABNAME\r\n964a978\r\n&gt;        SDO_RTREE_READ_ONLY,\r\n1159a1174,1176\r\n&gt;                SDO_UTIL.NUMBER_TO_CHAR(SDO_RTREE_READ_ONLY)) || COMMA;\r\n&gt;  \r\n&gt;       STMT1 := STMT1 || SYS.DBMS_ASSERT.ENQUOTE_LITERAL(\r\n1243a1261\r\n&gt;     SDO_RTREE_READ_ONLY       IN NUMBER,\r\n1295a1314\r\n&gt;           SDO_RTREE_READ_ONLY,\r\n1333a1353\r\n&gt;           SDO_RTREE_READ_ONLY,\r\n1373a1394\r\n&gt;           SDO_RTREE_READ_ONLY,\r\n1413a1435\r\n&gt;           SDO_RTREE_READ_ONLY,\r\n<\/pre>\n<div id=\"MDSYS.PRVT_PC.PACKAGE BODY.19.0.0.0_RU\">MDSYS.PRVT_PC &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">59a60,78\r\n&gt;     \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(BASETABLE) ) THEN\r\n&gt;       MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;         'Bumpy-case \"basetable\" name is not supported');\r\n&gt;       RETURN;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(BASECOL) ) THEN\r\n&gt;       MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;         'Bumpy-case \"basecol\" name is not supported');\r\n&gt;       RETURN;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(BLKTABLE) ) THEN\r\n&gt;       MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;         'Bumpy-case \"blktable\" name is not supported');\r\n&gt;       RETURN;\r\n&gt;     END IF;\r\n&gt; \r\n<\/pre>\n<div id=\"MDSYS.PRVT_SAM.PACKAGE BODY.19.0.0.0_RU\">MDSYS.PRVT_SAM &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">42a43,46\r\n&gt;     G_TABNAM           VARCHAR2(130);\r\n&gt;     G_TABNAM_NQ        VARCHAR2(130);\r\n&gt;     G_COLNAM           VARCHAR2(1024);\r\n&gt;     G_COLNAM_NQ        VARCHAR2(1024);\r\n44a49,62\r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(TABLENAME) ) THEN\r\n&gt;       G_TABNAM := TABLENAME;\r\n&gt;     ELSE\r\n&gt;       G_TABNAM := REPLACE(NLS_UPPER(TABLENAME), '\"');\r\n&gt;     END IF;\r\n&gt;     G_TABNAM_NQ := REPLACE(G_TABNAM, '\"');\r\n&gt; \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(COLNAME) ) THEN\r\n&gt;       G_COLNAM := COLNAME;\r\n&gt;     ELSE\r\n&gt;       G_COLNAM := REPLACE(NLS_UPPER(COLNAME), '\"');\r\n&gt;     END IF;\r\n&gt;     G_COLNAM_NQ := REPLACE(G_COLNAM, '\"');\r\n&gt; \r\n86,88c104,108\r\n&lt;       SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(TABLENAME),\r\n&lt;       SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(COLNAME),\r\n&lt;       NDIM, SRID, DIM);\r\n---\r\n&gt;       SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(G_TABNAM),\r\n&gt;       SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM),\r\n&gt;       NDIM,\r\n&gt;       SRID,\r\n&gt;       DIM);\r\n103c123\r\n&lt;       USING NLS_UPPER(TABLENAME), NLS_UPPER(AGGR_COL_STRING); \r\n---\r\n&gt;       USING TABLENAME, NLS_UPPER(AGGR_COL_STRING); \r\n118c138\r\n&lt;         INTO OWNR USING NLS_UPPER(TABLENAME);\r\n---\r\n&gt;         INTO OWNR USING TABLENAME;\r\n131c151\r\n&lt;       USING NLS_UPPER(TABLENAME), NLS_UPPER(AGGR_COL_STRING), OWNR;\r\n---\r\n&gt;       USING TABLENAME, NLS_UPPER(AGGR_COL_STRING), OWNR;\r\n148c168\r\n&lt;             SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(COLNAME) ||\r\n---\r\n&gt;             SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM) ||\r\n155c175\r\n&lt;             SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(COLNAME) ||\r\n---\r\n&gt;             SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM) ||\r\n<\/pre>\n<div id=\"MDSYS.SDOTNPC.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDOTNPC &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">77,78c77,78\r\n&lt;       UPPER(OWNER) = UPPER(BTSCHEMA) AND\r\n&lt;       UPPER(TRIGGER_NAME) = UPPER(DMLT);\r\n---\r\n&gt;       NLS_UPPER(OWNER) = NLS_UPPER(BTSCHEMA) AND\r\n&gt;       NLS_UPPER(TRIGGER_NAME) = NLS_UPPER(DMLT);\r\n<\/pre>\n<div id=\"MDSYS.SDO_3GL.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_3GL &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1059,1060c1059,1063\r\n&lt;   FUNCTION RELATE(GEOM1 IN MDSYS.SDO_GEOMETRY, GEOM2 IN MDSYS.SDO_GEOMETRY,\r\n&lt;                   MASK IN VARCHAR2, TAB1 IN VARCHAR2, COL1 IN VARCHAR2)\r\n---\r\n&gt;   FUNCTION RELATE(GEOM1 IN MDSYS.SDO_GEOMETRY,\r\n&gt;                   GEOM2 IN MDSYS.SDO_GEOMETRY,\r\n&gt;                   MASK IN VARCHAR2,\r\n&gt;                   TAB1 IN VARCHAR2,\r\n&gt;                   COL1 IN VARCHAR2)\r\n1062,1064c1065,1069\r\n&lt;  DIM MDSYS.SDO_DIM_ARRAY;\r\n&lt;  STMT VARCHAR2(500);\r\n&lt;  RETMASK VARCHAR2(32);\r\n---\r\n&gt;   DIM MDSYS.SDO_DIM_ARRAY;\r\n&gt;   STMT VARCHAR2(500);\r\n&gt;   RETMASK VARCHAR2(32);\r\n&gt;   G_TABNAM VARCHAR2(130);\r\n&gt;   G_COLNAM VARCHAR2(1024);\r\n1067c1072\r\n&lt;  IF GEOM1 IS NULL THEN\r\n---\r\n&gt;   IF GEOM1 IS NULL THEN\r\n1069,1070c1074,1075\r\n&lt;  END IF;\r\n&lt;  IF GEOM2 IS NULL THEN\r\n---\r\n&gt;   END IF;\r\n&gt;   IF GEOM2 IS NULL THEN\r\n1072c1077,1089\r\n&lt;  END IF;\r\n---\r\n&gt;   END IF;\r\n&gt; \r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(TAB1) ) THEN\r\n&gt;     G_TABNAM := TAB1;\r\n&gt;   ELSE\r\n&gt;     G_TABNAM := REPLACE(NLS_UPPER(TAB1), '\"');\r\n&gt;   END IF;\r\n&gt; \r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(COL1) ) THEN\r\n&gt;     G_COLNAM := COL1;\r\n&gt;   ELSE\r\n&gt;     G_COLNAM := REPLACE(NLS_UPPER(COL1), '\"');\r\n&gt;   END IF;\r\n1077,1078c1094,1097\r\n&lt;   STMT := 'SELECT diminfo FROM ' || ' MDSYS.USER_SDO_GEOM_METADATA WHERE ' ||\r\n&lt;           'TABLE_NAME =  :tab1  AND ''\"''||COLUMN_NAME||''\"'' =  :col ';\r\n---\r\n&gt;   STMT := 'SELECT diminfo ' ||\r\n&gt;           'FROM USER_SDO_GEOM_METADATA ' ||\r\n&gt;           'WHERE TABLE_NAME =  :tab1 ' ||\r\n&gt;           'AND COLUMN_NAME = :col ';\r\n1082,1085c1101,1103\r\n&lt;     EXECUTE IMMEDIATE STMT\r\n&lt;     INTO DIM\r\n&lt;     USING NLS_UPPER(SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(TAB1)),\r\n&lt;        NLS_UPPER(SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(COL1));\r\n---\r\n&gt;     EXECUTE IMMEDIATE STMT INTO DIM\r\n&gt;     USING SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(G_TABNAM),\r\n&gt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(G_COLNAM);\r\n1100c1118,1120\r\n&lt;   PROCEDURE RELATE_PROCESS(MASK VARCHAR2, RESULT VARCHAR2, LOOKUP VARCHAR2,\r\n---\r\n&gt;   PROCEDURE RELATE_PROCESS(MASK VARCHAR2,\r\n&gt;                            RESULT VARCHAR2,\r\n&gt;                            LOOKUP VARCHAR2,\r\n1348c1368,1369\r\n&lt; FUNCTION FILTER(GEOM1 IN MDSYS.SDO_GEOMETRY, GEOM2 IN MDSYS.SDO_GEOMETRY,\r\n---\r\n&gt; FUNCTION FILTER(GEOM1 IN MDSYS.SDO_GEOMETRY,\r\n&gt;                 GEOM2 IN MDSYS.SDO_GEOMETRY,\r\n1351c1372,1373\r\n&lt;                 SCTX IN OUT MDSYS.SDO_INDEX_METHOD_10I, SCNFLAG NUMBER,\r\n---\r\n&gt;                 SCTX IN OUT MDSYS.SDO_INDEX_METHOD_10I,\r\n&gt;                 SCNFLAG NUMBER,\r\n1850,1851c1872,1873\r\n&lt;          IF (IDX = 1) THEN \r\n&lt;            TGEOM := GENERATE_BUFFER(SDO_UTIL.EXTRACT(GEOM, IDX),\r\n---\r\n&gt;         IF (IDX = 1) THEN \r\n&gt;           TGEOM := GENERATE_BUFFER(SDO_UTIL.EXTRACT(GEOM, IDX),\r\n1853,1860c1875,1886\r\n&lt;          ELSE\r\n&lt;             TMPG := GENERATE_BUFFER(SDO_UTIL.EXTRACT(GEOM, IDX),\r\n&lt;                                     UNITDIST, SMA, IFLAT, ARCT);\r\n&lt;             TMPG2 := SDO_GEOM.SDO_UNION(TMPG, TGEOM, TOL);\r\n&lt;             TGEOM := TMPG2;\r\n&lt;           END IF;\r\n&lt;        END LOOP;  \r\n&lt;        RETJBUF := TGEOM;\r\n---\r\n&gt;           \r\n&gt;           TGEOM := SDO_UTIL.RECTIFY_GEOMETRY(TGEOM, TOL);\r\n&gt;         ELSE\r\n&gt;           TMPG := GENERATE_BUFFER(SDO_UTIL.EXTRACT(GEOM, IDX),\r\n&gt;                                   UNITDIST, SMA, IFLAT, ARCT);\r\n&gt;           \r\n&gt;           TMPG := SDO_UTIL.RECTIFY_GEOMETRY(TMPG, TOL);\r\n&gt;           TMPG2 := SDO_GEOM.SDO_UNION(TMPG, TGEOM, TOL);\r\n&gt;           TGEOM := TMPG2;\r\n&gt;         END IF;\r\n&gt;       END LOOP;  \r\n&gt;       RETJBUF := TGEOM;\r\n<\/pre>\n<div id=\"MDSYS.SDO_CS.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_CS &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">429a430,436\r\n&gt;       G_TABNAM VARCHAR2(130);\r\n&gt;       G_TABNAM_NQ VARCHAR2(130);\r\n&gt;       G_OUTNAM VARCHAR2(130);\r\n&gt;       G_OUTNAM_NQ VARCHAR2(130);\r\n&gt;       G_COLNAM VARCHAR2(1024);\r\n&gt;       G_COLNAM_NQ VARCHAR2(1024);\r\n&gt;       STMT VARCHAR2(4000);\r\n432a440,460\r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(TABLE_IN) ) THEN\r\n&gt;       G_TABNAM := TABLE_IN;\r\n&gt;     ELSE\r\n&gt;       G_TABNAM := REPLACE(NLS_UPPER(TABLE_IN), '\"');\r\n&gt;     END IF;\r\n&gt;     G_TABNAM_NQ := REPLACE(G_TABNAM, '\"');\r\n&gt; \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(TABLE_OUT) ) THEN\r\n&gt;       G_OUTNAM := TABLE_OUT;\r\n&gt;     ELSE\r\n&gt;       G_OUTNAM := REPLACE(NLS_UPPER(TABLE_OUT), '\"');\r\n&gt;     END IF;\r\n&gt;     G_OUTNAM_NQ := REPLACE(G_OUTNAM, '\"');\r\n&gt; \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(COLUMN_IN) ) THEN\r\n&gt;       G_COLNAM := COLUMN_IN;\r\n&gt;     ELSE\r\n&gt;       G_COLNAM := REPLACE(NLS_UPPER(COLUMN_IN), '\"');\r\n&gt;     END IF;\r\n&gt;     G_COLNAM_NQ := REPLACE(G_COLNAM, '\"');\r\n&gt; \r\n436,438c464,467\r\n&lt;       TABLE_IN,\r\n&lt;       COLUMN_IN,\r\n&lt;       NDIM, SOURCE_SRID);\r\n---\r\n&gt;       G_TABNAM,\r\n&gt;       G_COLNAM,\r\n&gt;       NDIM,\r\n&gt;       SOURCE_SRID);\r\n441c470,480\r\n&lt;       EXECUTE IMMEDIATE 'create table ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(TABLE_OUT) || ' as select rowid mdsys.sdo_rowid, sdo_cs.reassign_srid(' || SYS.DBMS_ASSERT.ENQUOTE_NAME(COLUMN_IN) || ', ' || TO_SRID || ') geometry from ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(TABLE_IN);\r\n---\r\n&gt;       \r\n&gt;       STMT := 'create table ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(G_OUTNAM_NQ) ||\r\n&gt;               ' as select rowid sdo_rowid, sdo_cs.reassign_srid(' ||\r\n&gt;               SYS.DBMS_ASSERT.ENQUOTE_NAME(G_COLNAM_NQ) || ', ' ||\r\n&gt;               TO_SRID || ') geometry ' ||\r\n&gt;               'from ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(G_TABNAM_NQ);\r\n&gt;       BEGIN\r\n&gt;         EXECUTE IMMEDIATE STMT;\r\n&gt;         EXCEPTION WHEN OTHERS THEN\r\n&gt;           RAISE;\r\n&gt;       END;\r\n466,468c505,507\r\n&lt;         TABLE_IN,\r\n&lt;         COLUMN_IN,\r\n&lt;         TABLE_OUT,\r\n---\r\n&gt;         G_TABNAM,\r\n&gt;         G_COLNAM,\r\n&gt;         G_OUTNAM,\r\n473a513\r\n&gt; \r\n484a525,528\r\n&gt;       G_TABNAM VARCHAR2(130);\r\n&gt;       G_TABNAM_NQ VARCHAR2(130);\r\n&gt;       G_COLNAM VARCHAR2(1024);\r\n&gt;       G_COLNAM_NQ VARCHAR2(1024);\r\n487a532,545\r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(TABLE_IN) ) THEN\r\n&gt;       G_TABNAM := TABLE_IN;\r\n&gt;     ELSE\r\n&gt;       G_TABNAM := REPLACE(NLS_UPPER(TABLE_IN), '\"');\r\n&gt;     END IF;\r\n&gt;     G_TABNAM_NQ := REPLACE(G_TABNAM, '\"');\r\n&gt; \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(COLUMN_IN) ) THEN\r\n&gt;       G_COLNAM := COLUMN_IN;\r\n&gt;     ELSE\r\n&gt;       G_COLNAM := REPLACE(NLS_UPPER(COLUMN_IN), '\"');\r\n&gt;     END IF;\r\n&gt;     G_COLNAM_NQ := REPLACE(G_COLNAM, '\"');\r\n&gt; \r\n491,493c549,552\r\n&lt;       TABLE_IN,\r\n&lt;       COLUMN_IN,\r\n&lt;       NDIM, SOURCE_SRID);\r\n---\r\n&gt;       G_TABNAM,\r\n&gt;       G_COLNAM,\r\n&gt;       NDIM,\r\n&gt;       SOURCE_SRID);\r\n847,850c906,916\r\n&lt;     COMMIT_INTERVAL IN NUMBER DEFAULT -1) IS\r\n&lt;       NDIM NUMBER;\r\n&lt;       SOURCE_SRID NUMBER;\r\n&lt;       POS NUMBER;\r\n---\r\n&gt;     COMMIT_INTERVAL IN NUMBER DEFAULT -1)\r\n&gt;   IS\r\n&gt;     NDIM NUMBER;\r\n&gt;     SOURCE_SRID NUMBER;\r\n&gt;     POS NUMBER;\r\n&gt;     G_TABNAM VARCHAR2(130);\r\n&gt;     G_TABNAM_NQ VARCHAR2(130);\r\n&gt;     G_COLNAM VARCHAR2(1024);\r\n&gt;     G_COLNAM_NQ VARCHAR2(1024);\r\n&gt;     G_TABOUT VARCHAR2(130);\r\n&gt;     G_TABOUT_NQ VARCHAR2(130);\r\n853a920,940\r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(TABLE_IN) ) THEN\r\n&gt;       G_TABNAM := TABLE_IN;\r\n&gt;     ELSE\r\n&gt;       G_TABNAM := REPLACE(NLS_UPPER(TABLE_IN), '\"');\r\n&gt;     END IF;\r\n&gt;     G_TABNAM_NQ := REPLACE(G_TABNAM, '\"');\r\n&gt; \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(COLUMN_IN) ) THEN\r\n&gt;       G_COLNAM := COLUMN_IN;\r\n&gt;     ELSE\r\n&gt;       G_COLNAM := REPLACE(NLS_UPPER(COLUMN_IN), '\"');\r\n&gt;     END IF;\r\n&gt;     G_COLNAM_NQ := REPLACE(G_COLNAM, '\"');\r\n&gt; \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(TABLE_OUT) ) THEN\r\n&gt;       G_TABOUT := TABLE_OUT;\r\n&gt;     ELSE\r\n&gt;       G_TABOUT := REPLACE(NLS_UPPER(TABLE_OUT), '\"');\r\n&gt;     END IF;\r\n&gt;     G_TABOUT_NQ := REPLACE(G_TABOUT, '\"');\r\n&gt; \r\n857,859c944,947\r\n&lt;       TABLE_IN,\r\n&lt;       COLUMN_IN,\r\n&lt;       NDIM, SOURCE_SRID);\r\n---\r\n&gt;       G_TABNAM,\r\n&gt;       G_COLNAM,\r\n&gt;       NDIM,\r\n&gt;       SOURCE_SRID);\r\n896,898c984,986\r\n&lt;       TABLE_IN,\r\n&lt;       COLUMN_IN,\r\n&lt;       TABLE_OUT,\r\n---\r\n&gt;       G_TABNAM_NQ,\r\n&gt;       G_COLNAM_NQ,\r\n&gt;       G_TABOUT_NQ,\r\n911,913c999,1008\r\n&lt;     COMMIT_INTERVAL IN NUMBER DEFAULT -1) IS\r\n&lt;       NDIM NUMBER;\r\n&lt;       SOURCE_SRID NUMBER;\r\n---\r\n&gt;     COMMIT_INTERVAL IN NUMBER DEFAULT -1)\r\n&gt;   IS\r\n&gt;     NDIM NUMBER;\r\n&gt;     SOURCE_SRID NUMBER;\r\n&gt;     G_TABNAM VARCHAR2(130);\r\n&gt;     G_TABNAM_NQ VARCHAR2(130);\r\n&gt;     G_COLNAM VARCHAR2(1024);\r\n&gt;     G_COLNAM_NQ VARCHAR2(1024);\r\n&gt;     G_TABOUT VARCHAR2(130);\r\n&gt;     G_TABOUT_NQ VARCHAR2(130);\r\n916a1012,1032\r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(TABLE_IN) ) THEN\r\n&gt;       G_TABNAM := TABLE_IN;\r\n&gt;     ELSE\r\n&gt;       G_TABNAM := REPLACE(NLS_UPPER(TABLE_IN), '\"');\r\n&gt;     END IF;\r\n&gt;     G_TABNAM_NQ := REPLACE(G_TABNAM, '\"');\r\n&gt; \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(COLUMN_IN) ) THEN\r\n&gt;       G_COLNAM := COLUMN_IN;\r\n&gt;     ELSE\r\n&gt;       G_COLNAM := REPLACE(NLS_UPPER(COLUMN_IN), '\"');\r\n&gt;     END IF;\r\n&gt;     G_COLNAM_NQ := REPLACE(G_COLNAM, '\"');\r\n&gt; \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(TABLE_OUT) ) THEN\r\n&gt;       G_TABOUT := TABLE_OUT;\r\n&gt;     ELSE\r\n&gt;       G_TABOUT := REPLACE(NLS_UPPER(TABLE_OUT), '\"');\r\n&gt;     END IF;\r\n&gt;     G_TABOUT_NQ := REPLACE(G_TABOUT, '\"');\r\n&gt; \r\n920,922c1036,1039\r\n&lt;       TABLE_IN,\r\n&lt;       COLUMN_IN,\r\n&lt;       NDIM, SOURCE_SRID);\r\n---\r\n&gt;       G_TABNAM,\r\n&gt;       G_COLNAM,\r\n&gt;       NDIM,\r\n&gt;         SOURCE_SRID);\r\n944,946c1061,1063\r\n&lt;         TABLE_IN,\r\n&lt;         COLUMN_IN,\r\n&lt;         TABLE_OUT,\r\n---\r\n&gt;         G_TABNAM_NQ,\r\n&gt;         G_COLNAM_NQ,\r\n&gt;         G_TABOUT_NQ,\r\n3453c3570\r\n&lt; &lt;epsg:GridFile xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xmlns:epsg=\"http:\/\/www.oracle.com\/2004\/spatial\/epsg\/gridfile\/schema\" creation=\"2004-08-05T15:45:00\" update=\"2004-08-05T15:45:00\"&gt;\r\n---\r\n&gt;  &lt;epsg:GridFile xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xmlns:epsg=\"http:\/\/www.oracle.com\/2004\/spatial\/epsg\/gridfile\/schema\" creation=\"2004-08-05T15:45:00\" update=\"2004-08-05T15:45:00\"&gt;\r\n3521c3638\r\n&lt; &lt;\/epsg:GridFile&gt;';\r\n---\r\n&gt;  &lt;\/epsg:GridFile&gt;';\r\n6462a6580,6583\r\n&gt;     G_TABNAM         VARCHAR2(130);\r\n&gt;     G_TABNAM_NQ      VARCHAR2(130);\r\n&gt;     G_COLNAM        VARCHAR2(1024);\r\n&gt;     G_COLNAM_NQ     VARCHAR2(1024);\r\n6471a6593,6606\r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(TABLE_IN) ) THEN\r\n&gt;       G_TABNAM := TABLE_IN;\r\n&gt;     ELSE\r\n&gt;       G_TABNAM := REPLACE(NLS_UPPER(TABLE_IN), '\"');\r\n&gt;     END IF;\r\n&gt;     G_TABNAM_NQ := REPLACE(G_TABNAM, '\"');\r\n&gt; \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(COLUMN_IN) ) THEN\r\n&gt;       G_COLNAM := COLUMN_IN;\r\n&gt;     ELSE\r\n&gt;       G_COLNAM := REPLACE(NLS_UPPER(COLUMN_IN), '\"');\r\n&gt;     END IF;\r\n&gt;     G_COLNAM_NQ := REPLACE(G_COLNAM, '\"');\r\n&gt; \r\n6475,6477c6610,6613\r\n&lt;       TABLE_IN,\r\n&lt;       COLUMN_IN,\r\n&lt;       NDIM, FROM_SRID);\r\n---\r\n&gt;       G_TABNAM,\r\n&gt;       G_COLNAM,\r\n&gt;       NDIM,\r\n&gt;       FROM_SRID);\r\n<\/pre>\n<div id=\"MDSYS.SDO_GEOM.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_GEOM &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">279c279\r\n&lt;    RTN_LIST  := '(';\r\n---\r\n&gt;    RTN_LIST := '(';\r\n436,437c436,437\r\n&lt;       RETURN 'NULL' ;\r\n&lt;    END IF ;\r\n---\r\n&gt;      RETURN 'NULL';\r\n&gt;    END IF;\r\n489c489,491\r\n&lt;      IF ( KIND &lt;&gt; 'ENGINEERING' ) THEN\r\n---\r\n&gt;      \r\n&gt;      \r\n&gt;      IF ( KIND &lt;&gt; 'ENGINEERING' ) AND ( KIND &lt;&gt; 'PROJECTED' ) THEN\r\n520,521c522,523\r\n&lt;       RETURN 'NULL' ;\r\n&lt;    END IF ;\r\n---\r\n&gt;      RETURN 'NULL';\r\n&gt;    END IF;\r\n568,569c570,571\r\n&lt;       RETURN 'NULL' ;\r\n&lt;    END IF ;\r\n---\r\n&gt;      RETURN 'NULL';\r\n&gt;    END IF;\r\n665c667,669\r\n&lt;      IF ( KIND &lt;&gt; 'ENGINEERING' ) THEN\r\n---\r\n&gt;      \r\n&gt;      \r\n&gt;      IF ( KIND &lt;&gt; 'ENGINEERING' ) AND ( KIND &lt;&gt; 'PROJECTED' ) THEN\r\n743,744c747,748\r\n&lt;     RETURN 'NULL' ;\r\n&lt;   END IF ;\r\n---\r\n&gt;     RETURN 'NULL';\r\n&gt;   END IF;\r\n1142,1147c1146,1151\r\n&lt;        FOR  CNT IN 1 .. DIM_1.COUNT LOOP\r\n&lt;          DIM_1(CNT).SDO_TOLERANCE := DIM_1(CNT).SDO_TOLERANCE\/10.0;\r\n&lt;        END LOOP;\r\n&lt;        FOR  CNT IN 1 .. DIM_2.COUNT LOOP\r\n&lt;          DIM_2(CNT).SDO_TOLERANCE := DIM_2(CNT).SDO_TOLERANCE\/10.0;\r\n&lt;        END LOOP;\r\n---\r\n&gt;       FOR  CNT IN 1 .. DIM_1.COUNT LOOP\r\n&gt;         DIM_1(CNT).SDO_TOLERANCE := DIM_1(CNT).SDO_TOLERANCE\/10.0;\r\n&gt;       END LOOP;\r\n&gt;       FOR  CNT IN 1 .. DIM_2.COUNT LOOP\r\n&gt;         DIM_2(CNT).SDO_TOLERANCE := DIM_2(CNT).SDO_TOLERANCE\/10.0;\r\n&gt;       END LOOP;\r\n1149c1153\r\n&lt;        EXIT;\r\n---\r\n&gt;       EXIT;\r\n3462c3466\r\n&lt;        RAISE;\r\n---\r\n&gt;       RAISE;\r\n3510c3514\r\n&lt;        RAISE;\r\n---\r\n&gt;       RAISE;\r\n3556c3560\r\n&lt;        RAISE;\r\n---\r\n&gt;       RAISE;\r\n3605c3609\r\n&lt;        RAISE;\r\n---\r\n&gt;       RAISE;\r\n3652c3656\r\n&lt;        RAISE;\r\n---\r\n&gt;       RAISE;\r\n3690c3694\r\n&lt;        RAISE;\r\n---\r\n&gt;       RAISE;\r\n3842c3846\r\n&lt;        RAISE;\r\n---\r\n&gt;       RAISE;\r\n3891c3895\r\n&lt;        RAISE;\r\n---\r\n&gt;       RAISE;\r\n3993c3997,3998\r\n&lt; PROCEDURE VALIDATE_LAYER(LAYER IN VARCHAR2, RESULT_TABLE IN VARCHAR2) \r\n---\r\n&gt; PROCEDURE VALIDATE_LAYER(LAYER IN VARCHAR2,\r\n&gt;                          RESULT_TABLE IN VARCHAR2) \r\n3997,3998c4002,4008\r\n&lt;   QUERY_STR   VARCHAR2(4000) ;\r\n&lt;   UPDATE_STR  VARCHAR2(256) ;\r\n---\r\n&gt;   QUERY_STR   VARCHAR2(4000);\r\n&gt;   UPDATE_STR  VARCHAR2(256);\r\n&gt;   TABNAM VARCHAR2(130);\r\n&gt;   G_TABNAM VARCHAR2(130);\r\n&gt;   G_TABNAM_NQ VARCHAR2(130);\r\n&gt;   G_RESNAM VARCHAR2(130);\r\n&gt;   G_RESNAM_NQ VARCHAR2(130);\r\n4001,4002c4011,4012\r\n&lt;   QUERY_CRS   CURSOR_TYPE ;\r\n&lt;  \r\n---\r\n&gt;   QUERY_CRS   CURSOR_TYPE;\r\n&gt; \r\n4011a4022,4028\r\n&gt; \r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(RESULT_TABLE) ) THEN\r\n&gt;     G_RESNAM := RESULT_TABLE;\r\n&gt;   ELSE\r\n&gt;     G_RESNAM := REPLACE(NLS_UPPER(RESULT_TABLE), '\"');\r\n&gt;   END IF;\r\n&gt;   G_RESNAM_NQ := REPLACE(G_RESNAM, '\"');\r\n4014,4018c4031,4034\r\n&lt;             SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(LAYER)  || '_SDOGEOM' ;\r\n&lt;   UPDATE_STR := 'INSERT INTO ' || \r\n&lt;        SYS.DBMS_ASSERT.ENQUOTE_NAME(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(RESULT_TABLE)) \r\n&lt;        || ' VALUES(:gid, :gid_result)' ;\r\n&lt;  \r\n---\r\n&gt;             SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(LAYER)  || '_SDOGEOM';\r\n&gt;   UPDATE_STR := 'INSERT INTO ' || SDO_UTIL.SET_QUOTED_NAME(G_RESNAM_NQ) ||\r\n&gt;                 ' VALUES(:gid, :gid_result)';\r\n&gt; \r\n4020c4036\r\n&lt;    OPEN QUERY_CRS FOR QUERY_STR ;\r\n---\r\n&gt;    OPEN QUERY_CRS FOR QUERY_STR;\r\n4023c4039\r\n&lt;        CLOSE QUERY_CRS ;\r\n---\r\n&gt;        CLOSE QUERY_CRS;\r\n4027a4044,4051\r\n&gt; \r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(LAYER) ) THEN\r\n&gt;     G_TABNAM := LAYER;\r\n&gt;   ELSE\r\n&gt;     \r\n&gt;     G_TABNAM := REPLACE(NLS_UPPER(LAYER), '\"');\r\n&gt;   END IF;\r\n&gt;   G_TABNAM_NQ := REPLACE(G_TABNAM, '\"');\r\n4031,4033c4055,4056\r\n&lt;     FETCH QUERY_CRS INTO GID ;\r\n&lt;  \r\n&lt;     EXIT WHEN QUERY_CRS%NOTFOUND ;\r\n---\r\n&gt;     FETCH QUERY_CRS INTO GID;\r\n&gt;     EXIT WHEN QUERY_CRS%NOTFOUND;\r\n4035,4036c4058,4059\r\n&lt;     GID_RESULT := MDSYS.MD2.VALIDATE_GEOM(NLS_UPPER(\r\n&lt;             SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(LAYER) ), GID, NULL);\r\n---\r\n&gt;     GID_RESULT :=\r\n&gt;       MDSYS.MD2.VALIDATE_GEOM(SDO_UTIL.SET_QUOTED_NAME(G_TABNAM_NQ), GID, NULL);\r\n4038c4061\r\n&lt;     EXECUTE IMMEDIATE UPDATE_STR USING GID, GID_RESULT ;\r\n---\r\n&gt;     EXECUTE IMMEDIATE UPDATE_STR USING GID, GID_RESULT;\r\n4045,4046c4068,4069\r\n&lt;   END LOOP ;\r\n&lt;   CLOSE QUERY_CRS ;\r\n---\r\n&gt;   END LOOP;\r\n&gt;   CLOSE QUERY_CRS;\r\n4058,4059c4081,4084\r\n&lt; PROCEDURE VALIDATE_LAYER(GEOM_TABLE IN VARCHAR2, GEOM_COLUMN IN VARCHAR2,\r\n&lt;                          PKEY_COLUMN IN VARCHAR2, RESULT_TABLE IN VARCHAR2,\r\n---\r\n&gt; PROCEDURE VALIDATE_LAYER(GEOM_TABLE IN VARCHAR2,\r\n&gt;                          GEOM_COLUMN IN VARCHAR2,\r\n&gt;                          PKEY_COLUMN IN VARCHAR2,\r\n&gt;                          RESULT_TABLE IN VARCHAR2,\r\n4065,4070c4090,4095\r\n&lt;   THEDIMINFO  MDSYS.SDO_DIM_ARRAY ;\r\n&lt;   QUERY_STR   VARCHAR2(4000) ;\r\n&lt;   QUERY_STR2  VARCHAR2(4000) ;\r\n&lt;   UPDATE_STR  VARCHAR2(256) ;\r\n&lt;   UPDATE_COMMIT  VARCHAR2(256) ;\r\n&lt;   INSERT_COMMIT  VARCHAR2(256) ;\r\n---\r\n&gt;   THEDIMINFO  MDSYS.SDO_DIM_ARRAY;\r\n&gt;   QUERY_STR   VARCHAR2(4000);\r\n&gt;   QUERY_STR2  VARCHAR2(4000);\r\n&gt;   UPDATE_STR  VARCHAR2(256);\r\n&gt;   UPDATE_COMMIT  VARCHAR2(256);\r\n&gt;   INSERT_COMMIT  VARCHAR2(256);\r\n4081c4106\r\n&lt;   QUERY_CRS   CURSOR_TYPE ;\r\n---\r\n&gt;   QUERY_CRS   CURSOR_TYPE;\r\n4083a4109,4114\r\n&gt;   G_RESNAM     VARCHAR2(130);\r\n&gt;   G_RESNAM_NQ  VARCHAR2(130);\r\n&gt;   G_TABNAM     VARCHAR2(130);\r\n&gt;   G_TABNAM_NQ  VARCHAR2(130);\r\n&gt;   G_COLNAM    VARCHAR2(1024);\r\n&gt;   G_COLNAM_NQ VARCHAR2(1024);\r\n4097a4129,4149\r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(RESULT_TABLE) ) THEN\r\n&gt;     G_RESNAM := RESULT_TABLE;\r\n&gt;   ELSE\r\n&gt;     G_RESNAM := REPLACE(NLS_UPPER(RESULT_TABLE), '\"');\r\n&gt;   END IF;\r\n&gt;   G_RESNAM_NQ := REPLACE(G_RESNAM, '\"');\r\n&gt; \r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(GEOM_TABLE) ) THEN\r\n&gt;     G_TABNAM := GEOM_TABLE;\r\n&gt;   ELSE\r\n&gt;     G_TABNAM := REPLACE(NLS_UPPER(GEOM_TABLE), '\"');\r\n&gt;   END IF;\r\n&gt;   G_TABNAM_NQ := REPLACE(G_TABNAM, '\"');\r\n&gt; \r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(GEOM_COLUMN) ) THEN\r\n&gt;     G_COLNAM := GEOM_COLUMN;\r\n&gt;   ELSE\r\n&gt;     G_COLNAM := REPLACE(NLS_UPPER(GEOM_COLUMN), '\"');\r\n&gt;   END IF;\r\n&gt;   G_COLNAM_NQ := REPLACE(G_COLNAM, '\"');\r\n&gt; \r\n4100,4101c4152,4156\r\n&lt;            SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GEOM_COLUMN) || ' FROM ' || \r\n&lt;            SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GEOM_TABLE) || ' T '; \r\n---\r\n&gt;            SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM) || ' FROM ' || \r\n&gt;            SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_TABNAM) || ' T '; \r\n&gt; \r\n&gt;   UPDATE_STR := 'INSERT INTO ' || SDO_UTIL.SET_QUOTED_NAME(G_RESNAM_NQ) ||\r\n&gt;                 ' VALUES (:gid, :gid_result)'; \r\n4103,4121c4158,4172\r\n&lt;   UPDATE_STR := 'INSERT INTO ' || \r\n&lt;  SYS.DBMS_ASSERT.ENQUOTE_NAME(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(RESULT_TABLE)) ||\r\n&lt;                  ' VALUES (:gid, :gid_result)'; \r\n&lt; \r\n&lt;   INSERT_COMMIT := 'INSERT INTO ' || \r\n&lt;  SYS.DBMS_ASSERT.ENQUOTE_NAME(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(RESULT_TABLE)) ||\r\n&lt;                  ' VALUES (NULL, ''DONE'')'; \r\n&lt;   \r\n&lt;   QUERY_STR2 := 'SELECT COLUMN_NAME FROM SYS.USER_TAB_COLUMNS' ||\r\n&lt;                 ' WHERE TABLE_NAME =  :tab ' ||\r\n&lt;                 ' AND DATA_TYPE=''VARCHAR2'' ';\r\n&lt;   EXECUTE IMMEDIATE QUERY_STR2 INTO COL_NAME\r\n&lt;      USING SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(RESULT_TABLE);\r\n&lt; \r\n&lt;   UPDATE_COMMIT := 'UPDATE ' || \r\n&lt;            SYS.DBMS_ASSERT.ENQUOTE_NAME(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(RESULT_TABLE)) ||\r\n&lt;                  ' SET ' || \r\n&lt;            SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(PKEY_COLUMN) || ' =  :gid ' ||\r\n&lt;                  ' WHERE  '||\r\n---\r\n&gt;   INSERT_COMMIT := 'INSERT INTO ' || SDO_UTIL.SET_QUOTED_NAME(G_RESNAM_NQ) ||\r\n&gt;                    ' VALUES (NULL, ''DONE'')'; \r\n&gt;   \r\n&gt;   QUERY_STR2 := 'SELECT COLUMN_NAME ' ||\r\n&gt;                 'FROM SYS.USER_TAB_COLUMNS ' ||\r\n&gt;                 'WHERE TABLE_NAME = :tab ' ||\r\n&gt;                 'AND DATA_TYPE = ''VARCHAR2'' ';\r\n&gt;   EXECUTE IMMEDIATE QUERY_STR2\r\n&gt;     INTO COL_NAME\r\n&gt;     USING SYS.DBMS_ASSERT.NOOP(G_RESNAM_NQ);\r\n&gt; \r\n&gt;   UPDATE_COMMIT := 'UPDATE ' || SDO_UTIL.SET_QUOTED_NAME(G_RESNAM_NQ) ||\r\n&gt;                    ' SET ' || \r\n&gt;            SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(PKEY_COLUMN) || ' = :gid ' ||\r\n&gt;                    ' WHERE  '||\r\n4138,4139c4189,4190\r\n&lt;                        SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GEOM_TABLE),\r\n&lt;                        SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GEOM_COLUMN),\r\n---\r\n&gt;                        SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_TABNAM),\r\n&gt;                        SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM),\r\n4159c4210\r\n&lt;  MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', -13223, GEOM_TABLE||'.'||GEOM_COLUMN);\r\n---\r\n&gt;         MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', -13223, GEOM_TABLE||'.'||GEOM_COLUMN);\r\n4162,4164c4213,4215\r\n&lt;         MDSYS.SDO_MEMORY.END_MEMORY_CHECK;\r\n&lt;         RAISE;\r\n&lt;   END ; \r\n---\r\n&gt;        MDSYS.SDO_MEMORY.END_MEMORY_CHECK;\r\n&gt;        RAISE;\r\n&gt;   END; \r\n4170c4221\r\n&lt;   OPEN QUERY_CRS FOR QUERY_STR ;\r\n---\r\n&gt;   OPEN QUERY_CRS FOR QUERY_STR;\r\n4180,4181c4231\r\n&lt;   STMT := 'truncate table ' || \r\n&lt;            SYS.DBMS_ASSERT.ENQUOTE_NAME(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(RESULT_TABLE));\r\n---\r\n&gt;   STMT := 'truncate table ' || SDO_UTIL.SET_QUOTED_NAME(G_RESNAM_NQ);\r\n4182a4233\r\n&gt; \r\n4186,4191c4237,4241\r\n&lt;      FETCH QUERY_CRS INTO GID, THEGEOMETRY ;\r\n&lt;      EXCEPTION\r\n&lt;  \r\n&lt;       WHEN INVALID_NUMBER THEN\r\n&lt;       CLOSE QUERY_CRS ;\r\n&lt;       MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', 13265, GEOM_COLUMN, GEOM_TABLE);\r\n---\r\n&gt;        FETCH QUERY_CRS INTO GID, THEGEOMETRY;\r\n&gt;        EXCEPTION\r\n&gt;          WHEN INVALID_NUMBER THEN\r\n&gt;          CLOSE QUERY_CRS;\r\n&gt;          MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', 13265, GEOM_COLUMN, GEOM_TABLE);\r\n4193,4195c4243,4245\r\n&lt;       WHEN INVALID_DATATYPE THEN\r\n&lt;       CLOSE QUERY_CRS ;\r\n&lt;       MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', 13263, GEOM_COLUMN, GEOM_TABLE);\r\n---\r\n&gt;          WHEN INVALID_DATATYPE THEN\r\n&gt;          CLOSE QUERY_CRS;\r\n&gt;          MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', 13263, GEOM_COLUMN, GEOM_TABLE);\r\n4197,4201c4247,4251\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         CLOSE QUERY_CRS;\r\n&lt;         MDSYS.SDO_MEMORY.END_MEMORY_CHECK;\r\n&lt;         RAISE;\r\n&lt;      END ; \r\n---\r\n&gt;          WHEN OTHERS THEN\r\n&gt;            CLOSE QUERY_CRS;\r\n&gt;            MDSYS.SDO_MEMORY.END_MEMORY_CHECK;\r\n&gt;            RAISE;\r\n&gt;      END; \r\n4203c4253\r\n&lt;      EXIT WHEN QUERY_CRS%NOTFOUND ;\r\n---\r\n&gt;      EXIT WHEN QUERY_CRS%NOTFOUND;\r\n4207c4257\r\n&lt;     \r\n---\r\n&gt; \r\n4249c4299\r\n&lt;        EXECUTE IMMEDIATE UPDATE_STR USING GID, GID_RESULT ;\r\n---\r\n&gt;        EXECUTE IMMEDIATE UPDATE_STR USING GID, GID_RESULT;\r\n4251,4252c4301,4302\r\n&lt;   END LOOP ;\r\n&lt;   CLOSE QUERY_CRS ;\r\n---\r\n&gt;   END LOOP;\r\n&gt;   CLOSE QUERY_CRS;\r\n4274c4324,4330\r\n&lt;   G_TABLE VARCHAR2(130);\r\n---\r\n&gt;   G_RESNAM VARCHAR2(130);\r\n&gt;   G_RESNAM_NQ VARCHAR2(130);\r\n&gt;   G_TABNAM VARCHAR2(130);\r\n&gt;   G_TABNAM_NQ VARCHAR2(130);\r\n&gt;   G_COLNAM VARCHAR2(1024);\r\n&gt;   G_COLNAM_NQ VARCHAR2(1024);\r\n&gt;   STMT VARCHAR2(4000);\r\n4303,4304c4359,4363\r\n&lt;     USER_NAME := SDO_UTIL.GET_QUOTED_NAME(SUBSTR(GEOM_TABLE, 1, INSTR(GEOM_TABLE, '.')-1));\r\n&lt;     G_TABLE := NLS_UPPER(SUBSTR(GEOM_TABLE, INSTR(GEOM_TABLE, '.')+1));\r\n---\r\n&gt;     USER_NAME := NLS_UPPER(SUBSTR(GEOM_TABLE, 1, INSTR(GEOM_TABLE, '.')-1));\r\n&gt;     G_TABNAM := SUBSTR(GEOM_TABLE, INSTR(GEOM_TABLE, '.')+1);\r\n&gt;     IF ( NOT SDO_UTIL.IS_BUMPY_CASE(G_TABNAM) ) THEN\r\n&gt;       G_TABNAM := REPLACE(NLS_UPPER(G_TABNAM), '\"');\r\n&gt;     END IF;\r\n4313c4372,4376\r\n&lt;     G_TABLE := GEOM_TABLE;\r\n---\r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(GEOM_TABLE) ) THEN\r\n&gt;       G_TABNAM := GEOM_TABLE;\r\n&gt;     ELSE\r\n&gt;       G_TABNAM := REPLACE(NLS_UPPER(GEOM_TABLE), '\"');\r\n&gt;     END IF;\r\n4315c4378,4393\r\n&lt;     \r\n---\r\n&gt;   G_TABNAM_NQ := REPLACE(G_TABNAM, '\"');\r\n&gt; \r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(GEOM_COLUMN) ) THEN\r\n&gt;     G_COLNAM := GEOM_COLUMN;\r\n&gt;   ELSE\r\n&gt;     G_COLNAM := REPLACE(NLS_UPPER(GEOM_COLUMN), '\"');\r\n&gt;   END IF;\r\n&gt;   G_COLNAM_NQ := REPLACE(G_COLNAM, '\"');\r\n&gt; \r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(RESULT_TABLE) ) THEN\r\n&gt;     G_RESNAM := RESULT_TABLE;\r\n&gt;   ELSE\r\n&gt;     G_RESNAM := REPLACE(NLS_UPPER(RESULT_TABLE), '\"');\r\n&gt;   END IF;\r\n&gt;   G_RESNAM_NQ := REPLACE(G_RESNAM, '\"');\r\n&gt; \r\n4317,4319c4395,4400\r\n&lt;   SELECT COUNT(*) INTO CNT\r\n&lt;   FROM SYS.USER_TAB_COLUMNS\r\n&lt;   WHERE TABLE_NAME = NLS_UPPER(RESULT_TABLE) AND DATA_TYPE='VARCHAR2';\r\n---\r\n&gt;   STMT := 'SELECT count(*) ' ||\r\n&gt;           'FROM SYS.USER_TAB_COLUMNS ' ||\r\n&gt;           'WHERE TABLE_NAME = :tab ' ||\r\n&gt;           'AND DATA_TYPE = ''VARCHAR2'' ';\r\n&gt;   EXECUTE IMMEDIATE STMT INTO CNT\r\n&gt;     USING G_RESNAM_NQ;\r\n4327,4329c4408,4413\r\n&lt;   SELECT COUNT(*) INTO CNT\r\n&lt;   FROM SYS.ALL_TAB_COLS\r\n&lt;   WHERE TABLE_NAME = NLS_UPPER(G_TABLE) AND OWNER = USER_NAME ;\r\n---\r\n&gt;   STMT := 'SELECT count(*) ' ||\r\n&gt;           'FROM SYS.ALL_TAB_COLS ' ||\r\n&gt;           'WHERE OWNER = :own ' ||\r\n&gt;           'AND TABLE_NAME = :tab';\r\n&gt;   EXECUTE IMMEDIATE STMT INTO CNT\r\n&gt;     USING USER_NAME, G_TABNAM_NQ;\r\n4337,4343c4421,4430\r\n&lt;   SELECT COLUMN_NAME INTO COLUMN_NAME \r\n&lt;   FROM SYS.USER_TAB_COLUMNS \r\n&lt;   WHERE TABLE_NAME = NLS_UPPER(RESULT_TABLE) AND DATA_TYPE='VARCHAR2';\r\n&lt; \r\n&lt;   EXECUTE IMMEDIATE 'truncate table ' || \r\n&lt;              SYS.DBMS_ASSERT.ENQUOTE_NAME(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(RESULT_TABLE));\r\n&lt;             \r\n---\r\n&gt;   STMT := 'SELECT COLUMN_NAME ' ||\r\n&gt;           'FROM SYS.USER_TAB_COLUMNS ' ||\r\n&gt;           'WHERE TABLE_NAME = :tab ' ||\r\n&gt;           'AND DATA_TYPE = ''VARCHAR2'' ';\r\n&gt;   EXECUTE IMMEDIATE STMT INTO COLUMN_NAME\r\n&gt;     USING G_RESNAM_NQ;\r\n&gt; \r\n&gt;   STMT := 'truncate table ' || SDO_UTIL.SET_QUOTED_NAME(G_RESNAM_NQ);\r\n&gt;   EXECUTE IMMEDIATE STMT;\r\n&gt; \r\n4347,4348c4434,4435\r\n&lt;                        G_TABLE,\r\n&lt;                        GEOM_COLUMN,\r\n---\r\n&gt;                        G_TABNAM,\r\n&gt;                        G_COLNAM,\r\n4368c4455,4456\r\n&lt;   FULL_TABLE := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(USER_NAME) || '.' || NLS_UPPER(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_TABLE));\r\n---\r\n&gt;   FULL_TABLE := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(USER_NAME) || '.' ||\r\n&gt;                 SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_TABNAM);\r\n4371,4375c4459,4465\r\n&lt;     EXECUTE IMMEDIATE\r\n&lt;       'select '|| \r\n&lt;       NLS_UPPER(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GEOM_COLUMN)) ||' from '|| \r\n&lt;       FULL_TABLE || ' where :1 is not null and rownum &lt; 2 '\r\n&lt;       INTO SAMPLE_GEOMETRY USING NLS_UPPER(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GEOM_COLUMN));\r\n---\r\n&gt;     STMT := 'select ' || \r\n&gt;             SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM) ||\r\n&gt;             ' from ' || FULL_TABLE ||\r\n&gt;             ' where ' ||\r\n&gt;             SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM) ||\r\n&gt;             ' is not null and rownum &lt; 2';\r\n&gt;     EXECUTE IMMEDIATE STMT INTO SAMPLE_GEOMETRY;\r\n4416,4419c4506,4510\r\n&lt;                 FULL_TABLE,\r\n&lt;                 NLS_UPPER(GEOM_COLUMN),NLS_UPPER(RESULT_TABLE), COMMIT_INTERVAL,\r\n&lt;                 CONDITIONAL, CHCK3DSRID, \r\n&lt;                 SM_MJR_AXIS, 1.0\/INV_FLTN, G3D_GEOG_CRS_UOM_FACTOR, IS_UNIT_RADIANS, DIMINFO(1).SDO_TOLERANCE);\r\n---\r\n&gt;                  FULL_TABLE,\r\n&gt;                  G_COLNAM, G_RESNAM_NQ, COMMIT_INTERVAL,\r\n&gt;                  CONDITIONAL, CHCK3DSRID, \r\n&gt;                  SM_MJR_AXIS, 1.0\/INV_FLTN, G3D_GEOG_CRS_UOM_FACTOR,\r\n&gt;                  IS_UNIT_RADIANS, DIMINFO(1).SDO_TOLERANCE);\r\n4424,4426c4515,4517\r\n&lt;   EXECUTE IMMEDIATE 'insert into ' ||\r\n&lt;              SYS.DBMS_ASSERT.ENQUOTE_NAME(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(RESULT_TABLE)) ||\r\n&lt;           ' values(NULL, ''0'') ';\r\n---\r\n&gt;   STMT := 'INSERT INTO ' || SDO_UTIL.SET_QUOTED_NAME(G_RESNAM_NQ) ||\r\n&gt;           ' VALUES(NULL, ''0'')';\r\n&gt;   EXECUTE IMMEDIATE STMT;\r\n4428,4431c4519,4521\r\n&lt;   EXECUTE IMMEDIATE ' select rowid from ' ||\r\n&lt;              SYS.DBMS_ASSERT.ENQUOTE_NAME(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(RESULT_TABLE))\r\n&lt;   INTO TAB_ROWID;\r\n&lt;   \r\n---\r\n&gt;   STMT := 'select rowid from ' || SDO_UTIL.SET_QUOTED_NAME(G_RESNAM_NQ);\r\n&gt;   EXECUTE IMMEDIATE STMT\r\n&gt;     INTO TAB_ROWID;\r\n4433c4523\r\n&lt;   SDO_3GL.VALIDATE_LAYER_WITH_CONTEXT(NLS_UPPER(G_TABLE),NLS_UPPER(GEOM_COLUMN),\r\n---\r\n&gt;   SDO_3GL.VALIDATE_LAYER_WITH_CONTEXT(G_TABNAM, G_COLNAM,\r\n4435c4525\r\n&lt;              NLS_UPPER(RESULT_TABLE), COMMIT_INTERVAL,\r\n---\r\n&gt;              G_RESNAM, COMMIT_INTERVAL,\r\n4437,4438c4527,4528\r\n&lt;              SYS.ODCICOLINFOLIST(SYS.ODCICOLINFO(USER_NAME,NLS_UPPER(G_TABLE),\r\n&lt;              NLS_UPPER(GEOM_COLUMN),\r\n---\r\n&gt;              SYS.ODCICOLINFOLIST(SYS.ODCICOLINFO(USER_NAME, G_TABNAM,\r\n&gt;              G_COLNAM,\r\n4444,4445c4534,4535\r\n&lt;     VALLAYER_WITH_CONTEXT_LRS(NLS_UPPER(GEOM_TABLE),\r\n&lt;                               NLS_UPPER(GEOM_COLUMN),\r\n---\r\n&gt;     VALLAYER_WITH_CONTEXT_LRS(G_TABNAM,\r\n&gt;                               G_COLNAM,\r\n4447c4537\r\n&lt;                               NLS_UPPER(RESULT_TABLE), \r\n---\r\n&gt;                               G_RESNAM,\r\n4452,4460c4542,4546\r\n&lt;     SELECT\r\n&lt;       COUNT(*)\r\n&lt;     INTO\r\n&lt;       HAS_WKT\r\n&lt;     FROM\r\n&lt;       CS_SRS CRS\r\n&lt;     WHERE\r\n&lt;       CRS.SRID = VALIDATE_LAYER_WITH_CONTEXT.SRID AND\r\n&lt;       NOT(WKTEXT IS NULL);\r\n---\r\n&gt;     SELECT COUNT(*)\r\n&gt;     INTO HAS_WKT\r\n&gt;     FROM CS_SRS CRS\r\n&gt;     WHERE CRS.SRID = VALIDATE_LAYER_WITH_CONTEXT.SRID\r\n&gt;     AND NOT(WKTEXT IS NULL);\r\n4482,4487c4568,4571\r\n&lt;   THEDIMINFO  MDSYS.SDO_DIM_ARRAY ;\r\n&lt;   QUERY_STR   VARCHAR2(4000) ;\r\n&lt;   QUERY_STR2  VARCHAR2(4000) ;\r\n&lt;   UPDATE_STR  VARCHAR2(4000) ;\r\n&lt;   UPDATE_COMMIT  VARCHAR2(256) ;\r\n&lt;   INSERT_COMMIT  VARCHAR2(256) ;\r\n---\r\n&gt;   THEDIMINFO  MDSYS.SDO_DIM_ARRAY;\r\n&gt;   QUERY_STR   VARCHAR2(4000);\r\n&gt;   QUERY_STR2  VARCHAR2(4000);\r\n&gt;   UPDATE_STR  VARCHAR2(4000);\r\n4497c4581\r\n&lt;   QUERY_CRS   CURSOR_TYPE ;\r\n---\r\n&gt;   QUERY_CRS   CURSOR_TYPE;\r\n4503a4588,4593\r\n&gt;   G_RESNAM VARCHAR2(130);\r\n&gt;   G_RESNAM_NQ VARCHAR2(130);\r\n&gt;   G_TABNAM VARCHAR2(130);\r\n&gt;   G_TABNAM_NQ VARCHAR2(130);\r\n&gt;   G_COLNAM VARCHAR2(1024);\r\n&gt;   G_COLNAM_NQ VARCHAR2(1024);\r\n4515a4606,4626\r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(RESULT_TABLE) ) THEN\r\n&gt;     G_RESNAM := RESULT_TABLE;\r\n&gt;   ELSE\r\n&gt;     G_RESNAM := REPLACE(NLS_UPPER(RESULT_TABLE), '\"');\r\n&gt;   END IF;\r\n&gt;   G_RESNAM_NQ := REPLACE(G_RESNAM, '\"');\r\n&gt; \r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(GEOM_TABLE) ) THEN\r\n&gt;     G_TABNAM := GEOM_TABLE;\r\n&gt;   ELSE\r\n&gt;     G_TABNAM := REPLACE(NLS_UPPER(GEOM_TABLE), '\"');\r\n&gt;   END IF;\r\n&gt;   G_TABNAM_NQ := REPLACE(G_TABNAM, '\"');\r\n&gt; \r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(GEOM_COLUMN) ) THEN\r\n&gt;     G_COLNAM := GEOM_COLUMN;\r\n&gt;   ELSE\r\n&gt;     G_COLNAM := REPLACE(NLS_UPPER(GEOM_COLUMN), '\"');\r\n&gt;   END IF;\r\n&gt;   G_COLNAM_NQ := REPLACE(G_COLNAM, '\"');\r\n&gt; \r\n4518,4519c4629,4633\r\n&lt;            SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GEOM_COLUMN) || ' FROM ' || \r\n&lt;            SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GEOM_TABLE) || ' T '; \r\n---\r\n&gt;            SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM) || ' FROM ' || \r\n&gt;            SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_TABNAM) || ' T '; \r\n&gt; \r\n&gt;   UPDATE_STR := 'INSERT INTO ' || SDO_UTIL.SET_QUOTED_NAME(G_RESNAM_NQ) ||\r\n&gt;                 ' VALUES (:gid, :gid_result)';\r\n4521,4528d4634\r\n&lt;   UPDATE_STR := 'INSERT INTO ' || \r\n&lt;  SYS.DBMS_ASSERT.ENQUOTE_NAME(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(RESULT_TABLE)) ||\r\n&lt;                  ' VALUES (:gid, :gid_result)'; \r\n&lt; \r\n&lt;   INSERT_COMMIT := 'INSERT INTO ' || \r\n&lt;  SYS.DBMS_ASSERT.ENQUOTE_NAME(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(RESULT_TABLE)) ||\r\n&lt;                  ' VALUES (NULL, ''DONE'')'; \r\n&lt;   \r\n4533,4534c4639,4640\r\n&lt;                        SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GEOM_TABLE),\r\n&lt;                        SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GEOM_COLUMN),\r\n---\r\n&gt;                        SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_TABNAM),\r\n&gt;                        SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM),\r\n4551,4552c4657,4658\r\n&lt;          RAISE ;\r\n&lt;   END ; \r\n---\r\n&gt;        RAISE;\r\n&gt;   END; \r\n4558c4664\r\n&lt;   OPEN QUERY_CRS FOR QUERY_STR ;\r\n---\r\n&gt;   OPEN QUERY_CRS FOR QUERY_STR;\r\n4560,4562c4666,4668\r\n&lt;   WHEN TABLE_DOES_NOT_EXIST THEN\r\n&lt;   CLOSE QUERY_CRS;\r\n&lt;   MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', 13261, GEOM_TABLE);\r\n---\r\n&gt;     WHEN TABLE_DOES_NOT_EXIST THEN\r\n&gt;       CLOSE QUERY_CRS;\r\n&gt;       MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', 13261, GEOM_TABLE);\r\n4568c4674\r\n&lt;      FETCH QUERY_CRS INTO GID, THEGEOMETRY ;\r\n---\r\n&gt;      FETCH QUERY_CRS INTO GID, THEGEOMETRY;\r\n4572,4573c4678,4679\r\n&lt;       CLOSE QUERY_CRS ;\r\n&lt;       MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', 13265, GEOM_COLUMN, GEOM_TABLE);\r\n---\r\n&gt;         CLOSE QUERY_CRS;\r\n&gt;         MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', 13265, GEOM_COLUMN, GEOM_TABLE);\r\n4576,4577c4682,4683\r\n&lt;       CLOSE QUERY_CRS ;\r\n&lt;       MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', 13263, GEOM_COLUMN, GEOM_TABLE);\r\n---\r\n&gt;         CLOSE QUERY_CRS;\r\n&gt;         MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', 13263, GEOM_COLUMN, GEOM_TABLE);\r\n4580,4582c4686,4688\r\n&lt;         CLOSE QUERY_CRS ;\r\n&lt;         RAISE ;\r\n&lt;      END ; \r\n---\r\n&gt;         CLOSE QUERY_CRS;\r\n&gt;         RAISE;\r\n&gt;      END; \r\n4584c4690\r\n&lt;      EXIT WHEN QUERY_CRS%NOTFOUND ;\r\n---\r\n&gt;      EXIT WHEN QUERY_CRS%NOTFOUND;\r\n4634c4740\r\n&lt;        EXECUTE IMMEDIATE UPDATE_STR USING GID, GID_RESULT ;\r\n---\r\n&gt;        EXECUTE IMMEDIATE UPDATE_STR USING GID, GID_RESULT;\r\n4643,4644c4749,4750\r\n&lt;   END LOOP ;\r\n&lt;   CLOSE QUERY_CRS ;\r\n---\r\n&gt;   END LOOP;\r\n&gt;   CLOSE QUERY_CRS;\r\n4648,4650c4754,4755\r\n&lt;   ROW_COUNT_INSERT := 'INSERT INTO ' || \r\n&lt;            SYS.DBMS_ASSERT.ENQUOTE_NAME(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(RESULT_TABLE)) ||\r\n&lt;            ' VALUES (NULL, :str1) ';\r\n---\r\n&gt;   ROW_COUNT_INSERT := 'INSERT INTO ' || SDO_UTIL.SET_QUOTED_NAME(G_RESNAM_NQ) ||\r\n&gt;                       ' VALUES (NULL, :str1) ';\r\n4656c4761\r\n&lt;        RAISE ;\r\n---\r\n&gt;      RAISE;\r\n4683d4787\r\n&lt; \r\n4687d4790\r\n&lt;                 \r\n<\/pre>\n<div id=\"MDSYS.SDO_GEOR.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_GEOR &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">4281c4281\r\n&lt;   IF ISNODATAMASK IS NOT NULL AND UPPER(ISNODATAMASK) = 'TRUE' THEN\r\n---\r\n&gt;   IF ISNODATAMASK IS NOT NULL AND NLS_UPPER(ISNODATAMASK) = 'TRUE' THEN\r\n6855c6855\r\n&lt;   IF((NODATA IS NOT NULL)AND(UPPER(NODATA)='TRUE'))\r\n---\r\n&gt;   IF((NODATA IS NOT NULL)AND(NLS_UPPER(NODATA)='TRUE'))\r\n6918c6918\r\n&lt;           IF((MLOCATION IS NOT NULL)AND(UPPER(MLOCATION)='UPPERLEFT'))\r\n---\r\n&gt;           IF((MLOCATION IS NOT NULL)AND(NLS_UPPER(MLOCATION)='UPPERLEFT'))\r\n6995c6995\r\n&lt;             IF((MLOCATION IS NOT NULL)AND(UPPER(MLOCATION)='UPPERLEFT'))\r\n---\r\n&gt;             IF((MLOCATION IS NOT NULL)AND(NLS_UPPER(MLOCATION)='UPPERLEFT'))\r\n<\/pre>\n<div id=\"MDSYS.SDO_GEOR_AGGR.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_GEOR_AGGR &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">48c48\r\n&lt;     PARAM := UPPER(SUBSTR(MOSAICPARAM, 1, 1000));\r\n---\r\n&gt;     PARAM := NLS_UPPER(SUBSTR(MOSAICPARAM, 1, 1000));\r\n972c972\r\n&lt;         IDX := INSTR(UPPER(RESUNIT), 'UNIT');\r\n---\r\n&gt;         IDX := INSTR(NLS_UPPER(RESUNIT), 'UNIT');\r\n998c998\r\n&lt;             WHERE UPPER(UNIT_OF_MEAS_NAME) = UPPER(RESUNIT)\r\n---\r\n&gt;             WHERE NLS_UPPER(UNIT_OF_MEAS_NAME) = NLS_UPPER(RESUNIT)\r\n<\/pre>\n<div id=\"MDSYS.SDO_IDX.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_IDX &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">115a116\r\n&gt;       0, \r\n204a206\r\n&gt;       0, \r\n256a259,350\r\n&gt;     ENDIAN_FLAG               IN VARCHAR2) IS\r\n&gt;   BEGIN\r\n&gt;     TTS_INDEX_INITIALIZE(\r\n&gt;       SCHEMA_NAME,\r\n&gt;       SDO_INDEX_TYPE,\r\n&gt;       SDO_LEVEL,\r\n&gt;       SDO_NUMTILES,\r\n&gt;       SDO_MAXLEVEL,\r\n&gt;       SDO_COMMIT_INTERVAL,\r\n&gt;       SDO_INDEX_TABLE,\r\n&gt;       SDO_INDEX_NAME,\r\n&gt;       SDO_INDEX_PRIMARY,\r\n&gt;       SDO_TSNAME,\r\n&gt;       SDO_COLUMN_NAME,\r\n&gt;       SDO_RTREE_HEIGHT,\r\n&gt;       SDO_RTREE_NUM_NODES,\r\n&gt;       SDO_RTREE_DIMENSIONALITY,\r\n&gt;       SDO_RTREE_FANOUT,\r\n&gt;       SDO_RTREE_ROOT,\r\n&gt;       SDO_RTREE_SEQ_NAME,\r\n&gt;       SDO_FIXED_META,\r\n&gt;       SDO_TABLESPACE,\r\n&gt;       SDO_INITIAL_EXTENT,\r\n&gt;       SDO_NEXT_EXTENT,\r\n&gt;       SDO_PCTINCREASE,\r\n&gt;       SDO_MIN_EXTENTS,\r\n&gt;       SDO_MAX_EXTENTS,\r\n&gt;       SDO_INDEX_DIMS,\r\n&gt;       SDO_LAYER_GTYPE,\r\n&gt;       SDO_RTREE_PCTFREE,\r\n&gt;       SDO_INDEX_PARTITION,\r\n&gt;       SDO_PARTITIONED,\r\n&gt;       SDO_RTREE_QUALITY,\r\n&gt;       SDO_INDEX_VERSION,\r\n&gt;       SDO_INDEX_GEODETIC,\r\n&gt;       SDO_INDEX_STATUS,\r\n&gt;       SDO_NL_INDEX_TABLE,\r\n&gt;       SDO_DML_BATCH_SIZE,\r\n&gt;       0, \r\n&gt;       SDO_RTREE_ENT_XPND,\r\n&gt;       NULL,\r\n&gt;       0,\r\n&gt;       0,\r\n&gt;       NULL,\r\n&gt;       SDO_ROOT_MBR,\r\n&gt;       ENDIAN_FLAG);\r\n&gt;   END;\r\n&gt; \r\n&gt; \r\n&gt;   PROCEDURE TTS_INDEX_INITIALIZE(\r\n&gt;     SCHEMA_NAME               IN VARCHAR2,\r\n&gt;     SDO_INDEX_TYPE            IN VARCHAR2,\r\n&gt;     SDO_LEVEL                 IN NUMBER,\r\n&gt;     SDO_NUMTILES              IN NUMBER,\r\n&gt;     SDO_MAXLEVEL              IN NUMBER,\r\n&gt;     SDO_COMMIT_INTERVAL       IN NUMBER,\r\n&gt;     SDO_INDEX_TABLE           IN VARCHAR2,\r\n&gt;     SDO_INDEX_NAME            IN VARCHAR2,\r\n&gt;     SDO_INDEX_PRIMARY         IN NUMBER,\r\n&gt;     SDO_TSNAME                IN VARCHAR2,\r\n&gt;     SDO_COLUMN_NAME           IN VARCHAR2,\r\n&gt;     SDO_RTREE_HEIGHT          IN NUMBER,\r\n&gt;     SDO_RTREE_NUM_NODES       IN NUMBER,\r\n&gt;     SDO_RTREE_DIMENSIONALITY  IN NUMBER,\r\n&gt;     SDO_RTREE_FANOUT          IN NUMBER, \r\n&gt;     SDO_RTREE_ROOT            IN VARCHAR2,\r\n&gt;     SDO_RTREE_SEQ_NAME        IN VARCHAR2,\r\n&gt;     SDO_FIXED_META            IN RAW,\r\n&gt;     SDO_TABLESPACE            IN VARCHAR2,\r\n&gt;     SDO_INITIAL_EXTENT        IN VARCHAR2,\r\n&gt;     SDO_NEXT_EXTENT           IN VARCHAR2,\r\n&gt;     SDO_PCTINCREASE           IN NUMBER,\r\n&gt;     SDO_MIN_EXTENTS           IN NUMBER,\r\n&gt;     SDO_MAX_EXTENTS           IN NUMBER,\r\n&gt;     SDO_INDEX_DIMS            IN NUMBER,\r\n&gt;     SDO_LAYER_GTYPE           IN VARCHAR2,\r\n&gt;     SDO_RTREE_PCTFREE         IN NUMBER,\r\n&gt;     SDO_INDEX_PARTITION       IN VARCHAR2,\r\n&gt;     SDO_PARTITIONED           IN NUMBER,\r\n&gt;     SDO_RTREE_QUALITY         IN NUMBER,\r\n&gt;     SDO_INDEX_VERSION         IN NUMBER,\r\n&gt;     SDO_INDEX_GEODETIC        IN VARCHAR2,\r\n&gt;     SDO_INDEX_STATUS          IN VARCHAR2,\r\n&gt;     SDO_NL_INDEX_TABLE        IN VARCHAR2,\r\n&gt;     SDO_DML_BATCH_SIZE        IN NUMBER,\r\n&gt;     SDO_RTREE_READ_ONLY       IN NUMBER,\r\n&gt;     SDO_RTREE_ENT_XPND        IN NUMBER,\r\n&gt;     SDO_INDEX_OID             IN VARCHAR2,\r\n&gt;     SDO_NUM_ROWS              IN NUMBER,\r\n&gt;     SDO_NUM_BLKS              IN NUMBER,\r\n&gt;     SDO_TABLE_NAME            IN VARCHAR2,\r\n&gt;     SDO_ROOT_MBR              IN MDSYS.SDO_GEOMETRY,\r\n301c395\r\n&lt;       EXECUTE IMMEDIATE 'SELECT sdo_util.check_endian(:sch, :tab, :root) from dual'\r\n---\r\n&gt;       EXECUTE IMMEDIATE 'SELECT sdo_util.check_endian(:sch, :tab, :root) from sys.dual'\r\n351a446\r\n&gt;       SDO_RTREE_READ_ONLY,\r\n<\/pre>\n<div id=\"MDSYS.SDO_META.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_META &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">2a3\r\n&gt; \r\n9,10c10,18\r\n&lt;   TABLE_NAME VARCHAR2(130) := NLS_UPPER(NEW_TABLE_NAME);\r\n&lt;   COLUMN_NAME VARCHAR2(1024) := NLS_UPPER(NEW_COLUMN_NAME);\r\n---\r\n&gt;   STMT VARCHAR2(4000);\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   TABLE_NAME VARCHAR2(130);\r\n&gt;   COLUMN_NAME VARCHAR2(1024);\r\n12,16c20,65\r\n&lt;   SELECT COUNT(*) INTO DATA_EXISTS\r\n&lt;   FROM MDSYS.SDO_GEOM_METADATA_TABLE\r\n&lt;   WHERE SDO_OWNER = OWNER\r\n&lt;   AND SDO_TABLE_NAME = TABLE_NAME\r\n&lt;   AND SDO_COLUMN_NAME = COLUMN_NAME;\r\n---\r\n&gt;   \r\n&gt;   IF ( OWNER IS NULL ) THEN\r\n&gt;     MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;                                'Owner cannot be NULL');\r\n&gt;   END IF;\r\n&gt;   \r\n&gt;   \r\n&gt; \r\n&gt;   \r\n&gt;   IF ( NEW_TABLE_NAME IS NULL ) THEN\r\n&gt;     MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;                                'Table name cannot be NULL');\r\n&gt;   END IF;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(NEW_TABLE_NAME) ) THEN\r\n&gt;     TABLE_NAME := NEW_TABLE_NAME;\r\n&gt;   ELSE\r\n&gt;     \r\n&gt;     TABLE_NAME := REPLACE(NLS_UPPER(NEW_TABLE_NAME), '\"');\r\n&gt;   END IF;\r\n&gt; \r\n&gt;   \r\n&gt;   IF ( NEW_COLUMN_NAME IS NULL ) THEN\r\n&gt;     MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;                                'Column name cannot be NULL');\r\n&gt;   END IF;\r\n&gt; \r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(NEW_COLUMN_NAME) ) THEN\r\n&gt;     COLUMN_NAME := NEW_COLUMN_NAME;\r\n&gt;   ELSIF (INSTRB(NEW_COLUMN_NAME, 'JSON_VALUE(') &gt; 0) THEN\r\n&gt;     COLUMN_NAME := NEW_COLUMN_NAME;\r\n&gt;   ELSE\r\n&gt;     \r\n&gt;     COLUMN_NAME := REPLACE(NLS_UPPER(NEW_COLUMN_NAME), '\"');\r\n&gt;   END IF;\r\n&gt; \r\n&gt;   STMT := 'SELECT count(*) ' ||\r\n&gt;           'FROM MDSYS.SDO_GEOM_METADATA_TABLE ' ||\r\n&gt;           'WHERE sdo_owner = :own ' ||\r\n&gt;           'AND sdo_table_name = :tab ' ||\r\n&gt;           'AND sdo_column_name = :col';\r\n&gt;   EXECUTE IMMEDIATE STMT INTO DATA_EXISTS\r\n&gt;     USING OWNER, TABLE_NAME, COLUMN_NAME;\r\n19,20c68,71\r\n&lt;     INSERT INTO MDSYS.SDO_GEOM_METADATA_TABLE \r\n&lt;     VALUES (OWNER, TABLE_NAME, COLUMN_NAME, DIMINFO, SRID);\r\n---\r\n&gt;     STMT := 'INSERT INTO MDSYS.SDO_GEOM_METADATA_TABLE ' ||\r\n&gt;             'VALUES(:own, :tab, :col, :dim, :srid)';\r\n&gt;     EXECUTE IMMEDIATE STMT\r\n&gt;       USING OWNER, TABLE_NAME, COLUMN_NAME, DIMINFO, SRID;\r\n23a75\r\n&gt; \r\n31a84\r\n&gt; \r\n37a91\r\n&gt; \r\n47a102\r\n&gt; \r\n53a109\r\n&gt; \r\n62a119\r\n&gt; \r\n68a126\r\n&gt; \r\n75a134\r\n&gt;   STMT VARCHAR2(4000);\r\n85,92c144,154\r\n&lt;   DELETE FROM MDSYS.SDO_GEOM_METADATA_TABLE\r\n&lt;   WHERE SDO_OWNER = OWNER\r\n&lt;     AND SDO_TABLE_NAME = NLS_UPPER(OLD_TABLE_NAME)\r\n&lt;     AND SDO_COLUMN_NAME = NLS_UPPER(OLD_COLUMN_NAME);\r\n&lt; \r\n&lt;   INSERT INTO MDSYS.SDO_GEOM_METADATA_TABLE \r\n&lt;     VALUES (OWNER, NLS_UPPER(NEW_TABLE_NAME), NLS_UPPER(NEW_COLUMN_NAME),\r\n&lt;             DIMINFO, SRID);\r\n---\r\n&gt;   STMT := 'DELETE FROM MDSYS.SDO_GEOM_METADATA_TABLE ' ||\r\n&gt;           'WHERE SDO_OWNER = :own ' ||\r\n&gt;           'AND SDO_TABLE_NAME = :tab ' ||\r\n&gt;           'AND SDO_COLUMN_NAME = :col';\r\n&gt;   EXECUTE IMMEDIATE STMT\r\n&gt;     USING OWNER, OLD_TABLE_NAME, OLD_COLUMN_NAME;\r\n&gt; \r\n&gt;   STMT := 'INSERT INTO MDSYS.SDO_GEOM_METADATA_TABLE ' ||\r\n&gt;           'VALUES(:own, :tab, :col, :dim, :srid)';\r\n&gt;   EXECUTE IMMEDIATE STMT\r\n&gt;     USING OWNER, NEW_TABLE_NAME, NEW_COLUMN_NAME, DIMINFO, SRID;\r\n123a186\r\n&gt;   STMT VARCHAR2(4000);\r\n129,132c192,197\r\n&lt;   DELETE FROM MDSYS.SDO_GEOM_METADATA_TABLE\r\n&lt;   WHERE SDO_OWNER = OWNER\r\n&lt;     AND SDO_TABLE_NAME = OLD_TABLE_NAME\r\n&lt;     AND SDO_COLUMN_NAME = OLD_COLUMN_NAME;\r\n---\r\n&gt;   STMT := 'DELETE FROM MDSYS.SDO_GEOM_METADATA_TABLE ' ||\r\n&gt;           'WHERE SDO_OWNER = :own ' ||\r\n&gt;           'AND SDO_TABLE_NAME = :tab ' ||\r\n&gt;           'AND SDO_COLUMN_NAME = :col';\r\n&gt;   EXECUTE IMMEDIATE STMT\r\n&gt;     USING OWNER, OLD_TABLE_NAME, OLD_COLUMN_NAME;\r\n136a202\r\n&gt;   STMT VARCHAR2(4000);\r\n143,145c209,213\r\n&lt;   DELETE FROM MDSYS.SDO_GEOM_METADATA_TABLE\r\n&lt;   WHERE SDO_OWNER = OWNER\r\n&lt;     AND SDO_TABLE_NAME = OLD_TABLE_NAME;\r\n---\r\n&gt;   STMT := 'DELETE FROM MDSYS.SDO_GEOM_METADATA_TABLE ' ||\r\n&gt;           'WHERE SDO_OWNER = :own ' ||\r\n&gt;           'AND SDO_TABLE_NAME = :tab';\r\n&gt;   EXECUTE IMMEDIATE STMT\r\n&gt;     USING OWNER, OLD_TABLE_NAME;\r\n<\/pre>\n<div id=\"MDSYS.SDO_MIGRATE.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_MIGRATE &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">165,185c165,207\r\n&lt; PROCEDURE MDMIG(LAYER IN VARCHAR2, NEWTABNAME IN VARCHAR2,\r\n&lt;                 GIDCOLUMN IN VARCHAR2, GEOCOLNAME IN VARCHAR2, \r\n&lt;                 LAYER_GTYPE IN VARCHAR2, UPDATE_FLAG IN VARCHAR2) IS\r\n&lt;    EXTERNAL\r\n&lt;    NAME \"mdmig\"\r\n&lt;    LIBRARY ORDMD_MIG_LIBS\r\n&lt;    WITH CONTEXT\r\n&lt;    PARAMETERS(CONTEXT, LAYER OCISTRING, NEWTABNAME OCISTRING,\r\n&lt;               GIDCOLUMN OCISTRING, GEOCOLNAME OCISTRING, \r\n&lt;               LAYER_GTYPE OCISTRING, UPDATE_FLAG OCISTRING);\r\n&lt; \r\n&lt; \r\n&lt; PROCEDURE TO_81X(LAYER IN VARCHAR2, NEWTABNAME IN VARCHAR2,\r\n&lt;                  GIDCOLUMN IN VARCHAR2, GEOCOLNAME IN VARCHAR2, \r\n&lt;                  LAYER_GTYPE IN VARCHAR2, UPDATE_FLAG IN VARCHAR2) IS\r\n&lt; CNT NUMBER;\r\n&lt; USER1 VARCHAR2(130);\r\n&lt; TAB1 VARCHAR2(130);\r\n&lt; USER2 VARCHAR2(130);\r\n&lt; TAB2 VARCHAR2(130);\r\n&lt; RES VARCHAR2(10);\r\n---\r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; PROCEDURE MDMIG(LAYER IN VARCHAR2,\r\n&gt;                 NEWTABNAME IN VARCHAR2,\r\n&gt;                 GIDCOLUMN IN VARCHAR2,\r\n&gt;                 GEOCOLNAME IN VARCHAR2,\r\n&gt;                 LAYER_GTYPE IN VARCHAR2,\r\n&gt;                 UPDATE_FLAG IN VARCHAR2)\r\n&gt; IS\r\n&gt;   EXTERNAL\r\n&gt;   NAME \"mdmig\"\r\n&gt;   LIBRARY ORDMD_MIG_LIBS\r\n&gt;   WITH CONTEXT\r\n&gt;   PARAMETERS(CONTEXT, LAYER OCISTRING, NEWTABNAME OCISTRING,\r\n&gt;              GIDCOLUMN OCISTRING, GEOCOLNAME OCISTRING,\r\n&gt;              LAYER_GTYPE OCISTRING, UPDATE_FLAG OCISTRING);\r\n&gt; \r\n&gt; \r\n&gt; PROCEDURE TO_81X(LAYER IN VARCHAR2,\r\n&gt;                  NEWTABNAME IN VARCHAR2,\r\n&gt;                  GIDCOLUMN IN VARCHAR2,\r\n&gt;                  GEOCOLNAME IN VARCHAR2,\r\n&gt;                  LAYER_GTYPE IN VARCHAR2,\r\n&gt;                  UPDATE_FLAG IN VARCHAR2)\r\n&gt; IS\r\n&gt;   CNT NUMBER;\r\n&gt;   USER1 VARCHAR2(130);\r\n&gt;   TAB1 VARCHAR2(130);\r\n&gt;   USER2 VARCHAR2(130);\r\n&gt;   TAB2 VARCHAR2(130);\r\n&gt;   RES VARCHAR2(10);\r\n&gt;   STMT VARCHAR2(4000);\r\n&gt;   U1 VARCHAR2(200);\r\n&gt;   U2 VARCHAR2(200);\r\n&gt;   D1 VARCHAR2(200);\r\n&gt;   G1 VARCHAR2(200);\r\n&gt;   T2 VARCHAR2(200);\r\n191c213,217\r\n&lt;       TAB1 := NLS_UPPER(LAYER);\r\n---\r\n&gt;       IF ( SDO_UTIL.IS_BUMPY_CASE(LAYER) ) THEN\r\n&gt;         TAB1 := LAYER;\r\n&gt;       ELSE\r\n&gt;         TAB1 := REPLACE(NLS_UPPER(LAYER), '\"');\r\n&gt;       END IF;\r\n194c220,223\r\n&lt;       TAB1 := NLS_UPPER(SUBSTR(LAYER, CNT+1));\r\n---\r\n&gt;       TAB1 := SUBSTR(LAYER, CNT+1);\r\n&gt;       IF ( NOT SDO_UTIL.IS_BUMPY_CASE(TAB1) ) THEN\r\n&gt;         TAB1 := REPLACE(NLS_UPPER(TAB1), '\"');\r\n&gt;       END IF;\r\n208c237,241\r\n&lt;       TAB2 := NLS_UPPER(NEWTABNAME);\r\n---\r\n&gt;       IF ( SDO_UTIL.IS_BUMPY_CASE(NEWTABNAME) ) THEN\r\n&gt;         TAB2 := NEWTABNAME;\r\n&gt;       ELSE\r\n&gt;         TAB2 := REPLACE(NLS_UPPER(NEWTABNAME), '\"');\r\n&gt;       END IF;\r\n211c244,247\r\n&lt;       TAB2 := NLS_UPPER(SUBSTR(NEWTABNAME, CNT+1));\r\n---\r\n&gt;       TAB2 := SUBSTR(NEWTABNAME, CNT+1);\r\n&gt;       IF ( NOT SDO_UTIL.IS_BUMPY_CASE(TAB2) ) THEN\r\n&gt;         TAB2 := REPLACE(NLS_UPPER(TAB2), '\"');\r\n&gt;       END IF;\r\n213a250,255\r\n&gt;    T2 := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TAB2);\r\n&gt;    U2 := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(USER2);\r\n&gt;    D1 := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(REPLACE(TAB1, '\"')) || '_SDODIM';\r\n&gt;    G1 := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(REPLACE(TAB1, '\"')) || '_SDOGEOM';\r\n&gt;    U1 := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(USER1);\r\n&gt; \r\n215,223c257,267\r\n&lt;    EXECUTE IMMEDIATE\r\n&lt;    'SELECT COUNT(TABLE_NAME) FROM SYS.ALL_TABLES WHERE '||\r\n&lt;    '(TABLE_NAME=  :tab2 AND OWNER= :user2) OR  ' ||\r\n&lt;      ' (TABLE_NAME= :tab1 AND OWNER= :user1) '\r\n&lt;    INTO CNT\r\n&lt;      USING SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TAB2),\r\n&lt;            SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(USER2),\r\n&lt;            SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TAB1)||'_SDOGEOM',\r\n&lt;            SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(USER1);\r\n---\r\n&gt;    STMT := 'SELECT COUNT(TABLE_NAME) ' ||\r\n&gt;            'FROM SYS.ALL_TABLES ' ||\r\n&gt;            'WHERE (TABLE_NAME = :tab2 AND OWNER = :user2) ' ||\r\n&gt;            'OR    (TABLE_NAME = :tab1 AND OWNER = :user1)';\r\n&gt;    BEGIN\r\n&gt;      EXECUTE IMMEDIATE STMT INTO CNT\r\n&gt;        USING T2, U2, G1, U1;\r\n&gt; \r\n&gt;      EXCEPTION WHEN OTHERS THEN\r\n&gt;        RAISE;\r\n&gt;    END;\r\n226c270\r\n&lt;       MDERR.RAISE_MD_ERROR('MD','SDO',-13108, NEWTABNAME||'_OR_'||LAYER||'_SDOGEOM');\r\n---\r\n&gt;       MDERR.RAISE_MD_ERROR('MD','SDO',-13108, T2 || ' _OR_ ' || G1);\r\n234,245c278,291\r\n&lt;        EXECUTE IMMEDIATE\r\n&lt;          'UPDATE '|| \r\n&lt;         SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(USER2) ||'.'|| \r\n&lt;         SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TAB2) || ' a ' ||\r\n&lt;          'SET ' || \r\n&lt;         SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GEOCOLNAME) || ' = (SELECT ' ||\r\n&lt;          'MDSYS.SDO_GEOMETRY(1,NULL,MDSYS.SDO_POINT_TYPE(sdo_x1,sdo_y1,NULL),NULL,NULL)'||\r\n&lt;          'FROM ' || \r\n&lt;         SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(USER1) || '.' || \r\n&lt;         SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TAB1) || '_SDOGEOM b ' ||\r\n&lt;          'WHERE a.' || \r\n&lt;         SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GIDCOLUMN) ||' = b.sdo_gid)'; \r\n---\r\n&gt;         STMT := 'UPDATE \"' || U2 || '\".\"' || T2 || '\" a ' ||\r\n&gt;                 'SET \"' ||\r\n&gt;                 SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GEOCOLNAME) ||\r\n&gt;                 '\" = (SELECT ' ||\r\n&gt;                 'MDSYS.SDO_GEOMETRY(1,NULL,MDSYS.SDO_POINT_TYPE(sdo_x1,sdo_y1,NULL),NULL,NULL)' ||\r\n&gt;                 'FROM \"' || U1 || '\".\"' || G1 || '\" b ' ||\r\n&gt;                 'WHERE a.' ||\r\n&gt;                 SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GIDCOLUMN) ||' = b.sdo_gid)';\r\n&gt;        BEGIN\r\n&gt;          EXECUTE IMMEDIATE STMT;\r\n&gt; \r\n&gt;          EXCEPTION WHEN OTHERS THEN\r\n&gt;            RAISE;\r\n&gt;        END;\r\n247,257c293,304\r\n&lt;        EXECUTE IMMEDIATE\r\n&lt;          'INSERT INTO '|| \r\n&lt;         SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(USER2) ||'.'|| \r\n&lt;         SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TAB2) ||\r\n&lt;          '(' || \r\n&lt;         SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GIDCOLUMN) || ',' || \r\n&lt;         SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GEOCOLNAME) || ') SELECT SDO_GID,'||\r\n&lt;          'MDSYS.SDO_GEOMETRY(1,NULL,MDSYS.SDO_POINT_TYPE(sdo_x1,sdo_y1,NULL),NULL,NULL)'||\r\n&lt;          'FROM ' || \r\n&lt;         SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(USER1) || '.' || \r\n&lt;         SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TAB1) || '_SDOGEOM';\r\n---\r\n&gt;         STMT := 'INSERT INTO ' || U2 || '.' || T2 || '(' ||\r\n&gt;                 SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GIDCOLUMN) || ',' ||\r\n&gt;                 SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GEOCOLNAME) || ') ' ||\r\n&gt;                 'SELECT SDO_GID,' ||\r\n&gt;                  'MDSYS.SDO_GEOMETRY(1,NULL,MDSYS.SDO_POINT_TYPE(sdo_x1,sdo_y1,NULL),NULL,NULL)' ||\r\n&gt;                  'FROM ' || U1 || '.' || G1;\r\n&gt;        BEGIN\r\n&gt;          EXECUTE IMMEDIATE STMT;\r\n&gt; \r\n&gt;          EXCEPTION WHEN OTHERS THEN\r\n&gt;            RAISE;\r\n&gt;        END;\r\n261,262c308\r\n&lt;        MDMIG(NLS_UPPER(LAYER), NLS_UPPER(NEWTABNAME), NLS_UPPER(GIDCOLUMN), \r\n&lt;              NLS_UPPER(GEOCOLNAME), 'NOTPOINT', 'UPDATE');\r\n---\r\n&gt;        MDMIG(LAYER, NEWTABNAME, GIDCOLUMN, GEOCOLNAME, 'NOTPOINT', 'UPDATE');\r\n264,265c310\r\n&lt;        MDMIG(NLS_UPPER(LAYER), NLS_UPPER(NEWTABNAME), NLS_UPPER(GIDCOLUMN), \r\n&lt;              NLS_UPPER(GEOCOLNAME), 'NOTPOINT', 'INSERT');\r\n---\r\n&gt;        MDMIG(LAYER, NEWTABNAME, GIDCOLUMN, GEOCOLNAME, 'NOTPOINT', 'INSERT');\r\n270,274c315,325\r\n&lt;    EXECUTE IMMEDIATE\r\n&lt;    'SELECT COUNT(TABLE_NAME) FROM MDSYS.ALL_SDO_GEOM_METADATA '||\r\n&lt;    '  WHERE OWNER = :user2  AND  TABLE_NAME= :tab2 '\r\n&lt;    INTO CNT USING SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(USER2),\r\n&lt;                   SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TAB2);\r\n---\r\n&gt;    STMT := 'SELECT COUNT(TABLE_NAME) ' ||\r\n&gt;            'FROM MDSYS.ALL_SDO_GEOM_METADATA '||\r\n&gt;            'WHERE OWNER = :user2 ' ||\r\n&gt;            'AND TABLE_NAME = :tab2';\r\n&gt;    BEGIN\r\n&gt;      EXECUTE IMMEDIATE STMT INTO CNT\r\n&gt;        USING U2, T2;\r\n&gt; \r\n&gt;          EXCEPTION WHEN OTHERS THEN\r\n&gt;            RAISE;\r\n&gt;    END;\r\n277,293c328,352\r\n&lt;       EXECUTE IMMEDIATE \r\n&lt;      'INSERT INTO MDSYS.USER_SDO_GEOM_METADATA VALUES (:tab2, :col,  '||\r\n&lt;       '  MDSYS.SDO_DIM_ARRAY(),NULL)' \r\n&lt;        USING SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TAB2), \r\n&lt;               NLS_UPPER(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GEOCOLNAME));\r\n&lt;    \r\n&lt;      BEGIN \r\n&lt;        EXECUTE IMMEDIATE\r\n&lt;        'UPDATE MDSYS.USER_SDO_GEOM_METADATA SET DIMINFO = '||\r\n&lt;            '(SELECT CAST(MULTISET(SELECT MDSYS.SDO_DIM_ELEMENT(SDO_DIMNAME,'||\r\n&lt;            'SDO_LB, SDO_UB, SDO_TOLERANCE) FROM ' || \r\n&lt;         SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(USER1) || '.' || \r\n&lt;         SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TAB1) || \r\n&lt;               '_SDODIM' ||\r\n&lt;            ') AS MDSYS.SDO_DIM_ARRAY) FROM SYS.DUAL) WHERE ' ||\r\n&lt;              ' TABLE_NAME =  :tab '\r\n&lt;            USING  SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TAB2);\r\n---\r\n&gt;      STMT := 'INSERT INTO MDSYS.USER_SDO_GEOM_METADATA ' ||\r\n&gt;              'VALUES(:tab2, :col, MDSYS.SDO_DIM_ARRAY(), NULL)';\r\n&gt;      BEGIN\r\n&gt;        EXECUTE IMMEDIATE STMT\r\n&gt;          USING T2, SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(GEOCOLNAME);\r\n&gt; \r\n&gt;        EXCEPTION WHEN OTHERS THEN\r\n&gt;          RAISE;\r\n&gt;       END;\r\n&gt;      BEGIN\r\n&gt;        STMT := 'UPDATE MDSYS.USER_SDO_GEOM_METADATA ' ||\r\n&gt;                'SET DIMINFO = '||\r\n&gt;                '(SELECT CAST(MULTISET(SELECT MDSYS.SDO_DIM_ELEMENT(SDO_DIMNAME,'||\r\n&gt;                ' SDO_LB, SDO_UB, SDO_TOLERANCE) ' ||\r\n&gt;                ' FROM ' || U1 || '.' || D1 ||\r\n&gt;                ') AS MDSYS.SDO_DIM_ARRAY) FROM SYS.DUAL) ' ||\r\n&gt;                'WHERE TABLE_NAME = :tab';\r\n&gt;        BEGIN\r\n&gt;          EXECUTE IMMEDIATE STMT\r\n&gt;            USING T2;\r\n&gt; \r\n&gt;          EXCEPTION WHEN OTHERS THEN\r\n&gt;            RAISE;\r\n&gt;        END;\r\n&gt; \r\n297,306c356,366\r\n&lt;            EXECUTE IMMEDIATE\r\n&lt;            'UPDATE MDSYS.USER_SDO_GEOM_METADATA SET DIMINFO = '||\r\n&lt;                '(SELECT CAST(MULTISET(SELECT MDSYS.SDO_DIM_ELEMENT(NULL,'||\r\n&lt;                'SDO_LB, SDO_UB, SDO_TOLERANCE) FROM ' || \r\n&lt;           SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(USER1) || '.' || \r\n&lt;           SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TAB1) ||\r\n&lt;                   '_SDODIM' ||\r\n&lt;                ') AS MDSYS.SDO_DIM_ARRAY) FROM SYS.DUAL) WHERE ' ||\r\n&lt;                  ' TABLE_NAME =  :tab '\r\n&lt;            USING SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TAB2);\r\n---\r\n&gt;            STMT := 'UPDATE MDSYS.USER_SDO_GEOM_METADATA ' ||\r\n&gt;                    'SET DIMINFO = '||\r\n&gt;                    '(SELECT CAST(MULTISET(SELECT MDSYS.SDO_DIM_ELEMENT(NULL,'||\r\n&gt;                    ' SDO_LB, SDO_UB, SDO_TOLERANCE) ' ||\r\n&gt;                    ' FROM ' ||\r\n&gt;                    SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(USER1) || '.' ||\r\n&gt;                    SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TAB1) || '_SDODIM' ||\r\n&gt;                    ') AS MDSYS.SDO_DIM_ARRAY) FROM SYS.DUAL) ' ||\r\n&gt;                    'WHERE TABLE_NAME = :tab';\r\n&gt;            EXECUTE IMMEDIATE STMT\r\n&gt;              USING SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TAB2);\r\n320,322c380,386\r\n&lt; PROCEDURE TO_CURRENT(LAYER IN VARCHAR2, NEWTABNAME IN VARCHAR2,\r\n&lt;                  GIDCOLUMN IN VARCHAR2, GEOCOLNAME IN VARCHAR2, \r\n&lt;                  LAYER_GTYPE IN VARCHAR2, UPDATE_FLAG IN VARCHAR2) IS\r\n---\r\n&gt; PROCEDURE TO_CURRENT(LAYER IN VARCHAR2,\r\n&gt;                      NEWTABNAME IN VARCHAR2,\r\n&gt;                      GIDCOLUMN IN VARCHAR2,\r\n&gt;                      GEOCOLNAME IN VARCHAR2,\r\n&gt;                      LAYER_GTYPE IN VARCHAR2,\r\n&gt;                      UPDATE_FLAG IN VARCHAR2)\r\n&gt; IS\r\n324,325c388,389\r\n&lt;  TO_81X(LAYER, NEWTABNAME, GIDCOLUMN, GEOCOLNAME, LAYER_GTYPE, UPDATE_FLAG);\r\n&lt; END;\r\n---\r\n&gt;   TO_81X(LAYER, NEWTABNAME, GIDCOLUMN, GEOCOLNAME, LAYER_GTYPE, UPDATE_FLAG);\r\n&gt; END TO_CURRENT;\r\n329,336c393,401\r\n&lt; RETURN  MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE IS\r\n&lt;    EXTERNAL\r\n&lt;    NAME \"mdmige\"\r\n&lt;    LIBRARY ORDMD_MIG_LIBS\r\n&lt;    WITH CONTEXT\r\n&lt;    PARAMETERS(CONTEXT, DIMOBJ, DIMOBJ INDICATOR,\r\n&lt;              GEOMOBJ, GEOMOBJ INDICATOR STRUCT, \r\n&lt;              RETURN  INDICATOR STRUCT, RETURN);\r\n---\r\n&gt; RETURN  MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE\r\n&gt; IS\r\n&gt;   EXTERNAL\r\n&gt;   NAME \"mdmige\"\r\n&gt;   LIBRARY ORDMD_MIG_LIBS\r\n&gt;   WITH CONTEXT\r\n&gt;   PARAMETERS(CONTEXT, DIMOBJ, DIMOBJ INDICATOR,\r\n&gt;              GEOMOBJ, GEOMOBJ INDICATOR STRUCT,\r\n&gt;              RETURN INDICATOR STRUCT, RETURN);\r\n339,340c404,407\r\n&lt; PROCEDURE FROM_815_TO_81X(TABNAME IN VARCHAR2, COLNAME IN VARCHAR2,\r\n&lt;                           COMMIT_INT IN NUMBER) IS\r\n---\r\n&gt; PROCEDURE FROM_815_TO_81X(TABNAME IN VARCHAR2,\r\n&gt;                           COLNAME IN VARCHAR2,\r\n&gt;                           COMMIT_INT IN NUMBER)\r\n&gt; IS\r\n356a424,427\r\n&gt;   G_TABNAME VARCHAR2(130);\r\n&gt;   G_TABNAME_NQ VARCHAR2(130);\r\n&gt;   G_COLNAME VARCHAR2(1024);\r\n&gt;   G_COLNAME_NQ VARCHAR2(1024);\r\n357a429,442\r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(TABNAME) ) THEN\r\n&gt;     G_TABNAME := TABNAME;\r\n&gt;   ELSE\r\n&gt;     G_TABNAME := REPLACE(NLS_UPPER(TABNAME), '\"');\r\n&gt;   END IF;\r\n&gt;   G_TABNAME_NQ := REPLACE(G_TABNAME, '\"');\r\n&gt; \r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(COLNAME) ) THEN\r\n&gt;     G_COLNAME := COLNAME;\r\n&gt;   ELSE\r\n&gt;     G_COLNAME := REPLACE(NLS_UPPER(COLNAME), '\"');\r\n&gt;   END IF;\r\n&gt;   G_COLNAME_NQ := REPLACE(G_COLNAME, '\"');\r\n&gt; \r\n361,362c446,447\r\n&lt;     SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TABNAME),\r\n&lt;     SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(COLNAME),\r\n---\r\n&gt;     SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_TABNAME),\r\n&gt;     SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAME),\r\n367,377c452,462\r\n&lt;  \r\n&lt;   STMT1 := 'SELECT rowid, ' || \r\n&lt;            SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(COLNAME)\r\n&lt;               || ' FROM ' ||\r\n&lt;                SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TABNAME) ||\r\n&lt;            ' WHERE ' ||\r\n&lt;              SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(COLNAME) || ' is not null ';\r\n&lt;   STMT2 := 'UPDATE ' || \r\n&lt;          SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TABNAME) || ' SET ' || \r\n&lt;            SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(COLNAME) || ' = :geom ' ||\r\n&lt;            'WHERE rowid = :rid';  \r\n---\r\n&gt; \r\n&gt;   STMT1 := 'SELECT rowid, \"' ||\r\n&gt;            SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAME_NQ) ||\r\n&gt;            '\" FROM \"' || SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_TABNAME_NQ) ||\r\n&gt;            '\" WHERE \"' || SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(COLNAME) ||\r\n&gt;            '\" is not null';\r\n&gt;   STMT2 := 'UPDATE \"' ||\r\n&gt;            SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_TABNAME_NQ) ||\r\n&gt;            '\" SET \"' ||\r\n&gt;            SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAME_NQ) ||\r\n&gt;            '\" = :geom WHERE rowid = :rid';\r\n420a506\r\n&gt; \r\n433c519,521\r\n&lt; PROCEDURE FROM_815_TO_81X(TABNAME IN VARCHAR2, COMMIT_INT IN NUMBER) IS\r\n---\r\n&gt; PROCEDURE FROM_815_TO_81X(TABNAME IN VARCHAR2,\r\n&gt;                           COMMIT_INT IN NUMBER)\r\n&gt; IS\r\n438c526,528\r\n&lt;   COLNAME  VARCHAR2(260);\r\n---\r\n&gt;   G_TABNAME VARCHAR2(130);\r\n&gt;   G_TABNAME_NQ VARCHAR2(130);\r\n&gt;   COLNAME  VARCHAR2(1024);\r\n441,442c531,540\r\n&lt;   STMT := 'SELECT count(*) FROM tab ' ||\r\n&lt;           'WHERE tname =  :tab ';\r\n---\r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(TABNAME) ) THEN\r\n&gt;     G_TABNAME := TABNAME;\r\n&gt;   ELSE\r\n&gt;     G_TABNAME := REPLACE(NLS_UPPER(TABNAME), '\"');\r\n&gt;   END IF;\r\n&gt;   G_TABNAME_NQ := REPLACE(G_TABNAME, '\"');\r\n&gt; \r\n&gt;   STMT := 'SELECT count(*) ' ||\r\n&gt;           'FROM tab ' ||\r\n&gt;           'WHERE tname = :tab';\r\n444c542\r\n&lt;               USING NLS_UPPER(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TABNAME));\r\n---\r\n&gt;     USING SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_TABNAME_NQ);\r\n449,451c547,550\r\n&lt;   STMT := 'SELECT column_name FROM sys.user_tab_columns ' ||\r\n&lt;           'WHERE table_name =  :tab  AND ' ||\r\n&lt;                 'data_type = ''SDO_GEOMETRY'' ';\r\n---\r\n&gt;   STMT := 'SELECT column_name ' ||\r\n&gt;           'FROM sys.user_tab_columns ' ||\r\n&gt;           'WHERE table_name = :tab ' ||\r\n&gt;           'AND data_type = ''SDO_GEOMETRY'' ';\r\n454c553\r\n&lt;       USING NLS_UPPER(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TABNAME));\r\n---\r\n&gt;     USING SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_TABNAME_NQ);\r\n457a557\r\n&gt; \r\n472,473c572,575\r\n&lt; PROCEDURE TO_CURRENT(TABNAME IN VARCHAR2, COLUMN_NAME IN VARCHAR2,\r\n&lt;        COMMIT_INT IN NUMBER) IS\r\n---\r\n&gt; PROCEDURE TO_CURRENT(TABNAME IN VARCHAR2,\r\n&gt;                      COLUMN_NAME IN VARCHAR2,\r\n&gt;                      COMMIT_INT IN NUMBER)\r\n&gt; IS\r\n475,479c577,581\r\n&lt;  IF (COLUMN_NAME IS NULL) THEN \r\n&lt;    FROM_815_TO_81X(TABNAME, COMMIT_INT);\r\n&lt;  ELSE\r\n&lt;    FROM_815_TO_81X(TABNAME, COLUMN_NAME, COMMIT_INT);\r\n&lt;  END IF;\r\n---\r\n&gt;   IF (COLUMN_NAME IS NULL) THEN\r\n&gt;     FROM_815_TO_81X(TABNAME, COMMIT_INT);\r\n&gt;   ELSE\r\n&gt;     FROM_815_TO_81X(TABNAME, COLUMN_NAME, COMMIT_INT);\r\n&gt;   END IF;\r\n483c585,586\r\n&lt;    PROCEDURE OGIS_METADATA_FROM IS\r\n---\r\n&gt;    PROCEDURE OGIS_METADATA_FROM\r\n&gt;    IS\r\n567c670,671\r\n&lt;   FUNCTION TO_CURRENT(GEOM IN MDSYS.SDO_GEOMETRY,\r\n---\r\n&gt; \r\n&gt; FUNCTION TO_CURRENT(GEOM IN MDSYS.SDO_GEOMETRY,\r\n569c673,674\r\n&lt;   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE IS\r\n---\r\n&gt; RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE\r\n&gt; IS\r\n576c681\r\n&lt;  BEGIN\r\n---\r\n&gt; BEGIN\r\n594,602c699,707\r\n&lt;      GEOM2 := GEOM;\r\n&lt;      FOR  I IN 1 .. GEOM2.SDO_ELEM_INFO.COUNT LOOP\r\n&lt;        IF (MOD(I,3) = 2) THEN \r\n&lt;            ETYPE := MOD(GEOM2.SDO_ELEM_INFO(I), 10);\r\n&lt;            GEOM2.SDO_ELEM_INFO(I) := ETYPE;\r\n&lt;         END IF;\r\n&lt;      END LOOP;\r\n&lt;      RETURN MDMIGE(DIM, GEOM2);   \r\n&lt;    END IF;\r\n---\r\n&gt;     GEOM2 := GEOM;\r\n&gt;     FOR  I IN 1 .. GEOM2.SDO_ELEM_INFO.COUNT LOOP\r\n&gt;       IF (MOD(I,3) = 2) THEN \r\n&gt;         ETYPE := MOD(GEOM2.SDO_ELEM_INFO(I), 10);\r\n&gt;         GEOM2.SDO_ELEM_INFO(I) := ETYPE;\r\n&gt;       END IF;\r\n&gt;     END LOOP;\r\n&gt;     RETURN MDMIGE(DIM, GEOM2);\r\n&gt;   END IF;\r\n604,605c709,710\r\n&lt;    RETURN MDMIGE(DIM, GEOM);   \r\n&lt;  END TO_CURRENT;\r\n---\r\n&gt;   RETURN MDMIGE(DIM, GEOM);\r\n&gt; END TO_CURRENT;\r\n<\/pre>\n<div id=\"MDSYS.SDO_PC_PKG.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_PC_PKG &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">292c292\r\n&lt;       BLOCK_TABLE VARCHAR2(270) := UPPER(SYS.DBMS_ASSERT.ENQUOTE_NAME(PC.BLK_TABLE));\r\n---\r\n&gt;       BLOCK_TABLE VARCHAR2(270) := NLS_UPPER(SYS.DBMS_ASSERT.ENQUOTE_NAME(PC.BLK_TABLE));\r\n302,303c302,303\r\n&lt;     WHERE  UPPER(TABLE_NAME) = UPPER(PC.BLK_TABLE) AND\r\n&lt;            UPPER(COLUMN_NAME) = 'BLK_EXTENT';\r\n---\r\n&gt;     WHERE  NLS_UPPER(TABLE_NAME) = NLS_UPPER(PC.BLK_TABLE) AND\r\n&gt;            NLS_UPPER(COLUMN_NAME) = 'BLK_EXTENT';\r\n308c308\r\n&lt;         UPPER(PC.BLK_TABLE),\r\n---\r\n&gt;         NLS_UPPER(PC.BLK_TABLE),\r\n331,332c331,332\r\n&lt;     WHERE  UPPER(TABLE_NAME) = UPPER(PC.BLK_TABLE) AND\r\n&lt;            UPPER(COLUMN_NAME) = 'BLK_EXTENT';\r\n---\r\n&gt;     WHERE  NLS_UPPER(TABLE_NAME) = NLS_UPPER(PC.BLK_TABLE) AND\r\n&gt;            NLS_UPPER(COLUMN_NAME) = 'BLK_EXTENT';\r\n347a348,354\r\n&gt;     \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(INPTABLE) ) THEN\r\n&gt;       MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;         'Bumpy-case \"inptable\" name is not supported');\r\n&gt;       RETURN;\r\n&gt;     END IF;\r\n&gt; \r\n407c414\r\n&lt;                                     LOWER(INP.PTN_PARAMS),\r\n---\r\n&gt;                                     NLS_LOWER(INP.PTN_PARAMS),\r\n1085c1092\r\n&lt;       TABLE_NAME = UPPER(PC.BLK_TABLE) AND\r\n---\r\n&gt;       TABLE_NAME = NLS_UPPER(PC.BLK_TABLE) AND\r\n4202c4209\r\n&lt;       BLOCK_TABLE_NAME_FOR_MD    VARCHAR2(270) := UPPER(DATA_TABLE_NAME_BASE || '$blocks');\r\n---\r\n&gt;       BLOCK_TABLE_NAME_FOR_MD    VARCHAR2(270) := NLS_UPPER(DATA_TABLE_NAME_BASE || '$blocks');\r\n4212c4219\r\n&lt;       SOURCE_TABLE_NAME_UPPER    VARCHAR2(270) := UPPER(SOURCE_TABLE_NAME);\r\n---\r\n&gt;       SOURCE_TABLE_NAME_UPPER    VARCHAR2(270) := NLS_UPPER(SOURCE_TABLE_NAME);\r\n4445c4452\r\n&lt;       BASE_TABLE2 VARCHAR2(270) := UPPER(SYS.DBMS_ASSERT.ENQUOTE_NAME(BASE_TABLE));\r\n---\r\n&gt;       BASE_TABLE2 VARCHAR2(270) := NLS_UPPER(SYS.DBMS_ASSERT.ENQUOTE_NAME(BASE_TABLE));\r\n4488,4489c4495,4496\r\n&lt;       UPPER(INP_TABLE) IN (UPPER(TABLE_NAME), UPPER(OWNER || '.' || TABLE_NAME)) AND\r\n&lt;       REGEXP_LIKE(UPPER(COLUMN_NAME), 'VAL_D[123456789][0123456789]*');\r\n---\r\n&gt;       NLS_UPPER(INP_TABLE) IN (NLS_UPPER(TABLE_NAME), NLS_UPPER(OWNER || '.' || TABLE_NAME)) AND\r\n&gt;       REGEXP_LIKE(NLS_UPPER(COLUMN_NAME), 'VAL_D[123456789][0123456789]*');\r\n4588c4595\r\n&lt;          'create table ' || UPPER(SYS.DBMS_ASSERT.ENQUOTE_NAME(DATA_TABLE)) || ' as\r\n---\r\n&gt;          'create table ' || NLS_UPPER(SYS.DBMS_ASSERT.ENQUOTE_NAME(DATA_TABLE)) || ' as\r\n4596c4603\r\n&lt;               ' || UPPER(SYS.DBMS_ASSERT.ENQUOTE_NAME(INP_TABLE)) || ' s';\r\n---\r\n&gt;               ' || NLS_UPPER(SYS.DBMS_ASSERT.ENQUOTE_NAME(INP_TABLE)) || ' s';\r\n4649c4656\r\n&lt;       USING (UPPER(DATA_TABLE_NAME_BASE) || '$BLOCKS');\r\n---\r\n&gt;       USING (NLS_UPPER(DATA_TABLE_NAME_BASE) || '$BLOCKS');\r\n4688c4695\r\n&lt;       TABLE_NAME = UPPER(SOURCE_TABLE_NAME);\r\n---\r\n&gt;       TABLE_NAME = NLS_UPPER(SOURCE_TABLE_NAME);\r\n4747c4754\r\n&lt;         TABLE_NAME = UPPER(DATA_TABLE_NAME_BASE || '$FINAL') AND\r\n---\r\n&gt;         TABLE_NAME = NLS_UPPER(DATA_TABLE_NAME_BASE || '$FINAL') AND\r\n5376a5384,5395\r\n&gt;         WHEN TOO_MANY_ROWS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[prvtpc.sql(' || $$PLSQL_LINE || ')16a2]: ' || SQLERRM);\r\n&gt;           MDERR.RAISE_MD_ERROR(\r\n&gt;             'MD',\r\n&gt;             'CLIP_PC_INTO_TABLE',\r\n&gt;             -13249,\r\n&gt;             'Query &lt;' ||\r\n&gt;             'select ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(PC_COLUMN) ||\r\n&gt;             ' from '  || SYS.DBMS_ASSERT.ENQUOTE_NAME(PC_TABLE)  ||\r\n&gt;             ' where ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(ID_COLUMN) || ' = ' || ID || '&gt; yielded more than one result. Consider using a primary key to avoid this.');\r\n6086,6088c6105,6107\r\n&lt;         ' where upper(table_name) = :table_name and' ||\r\n&lt;         ' upper(column_name) = ''BLK_EXTENT'''\r\n&lt;         USING SRID, UPPER(PC.BLK_TABLE);\r\n---\r\n&gt;         ' where nls_upper(table_name) = :table_name and' ||\r\n&gt;         ' nls_upper(column_name) = ''BLK_EXTENT'''\r\n&gt;         USING SRID, NLS_UPPER(PC.BLK_TABLE);\r\n6101,6102c6120,6121\r\n&lt;             ' where upper(table_name) = :table_name and' ||\r\n&lt;             ' upper(column_name) = ''BLK_EXTENT''&gt; failed. Consider committing any inserts.');\r\n---\r\n&gt;             ' where nls_upper(table_name) = :table_name and' ||\r\n&gt;             ' nls_upper(column_name) = ''BLK_EXTENT''&gt; failed. Consider committing any inserts.');\r\n6283,6286c6302,6305\r\n&lt;         UPPER(TEMP_TABLE_NAME_BASE || '$1'),\r\n&lt;         UPPER(TEMP_TABLE_NAME_BASE || '$2'),\r\n&lt;         UPPER(TEMP_TABLE_NAME_BASE || '$3'),\r\n&lt;         UPPER(TEMP_TABLE_NAME_BASE || '$4');\r\n---\r\n&gt;         NLS_UPPER(TEMP_TABLE_NAME_BASE || '$1'),\r\n&gt;         NLS_UPPER(TEMP_TABLE_NAME_BASE || '$2'),\r\n&gt;         NLS_UPPER(TEMP_TABLE_NAME_BASE || '$3'),\r\n&gt;         NLS_UPPER(TEMP_TABLE_NAME_BASE || '$4');\r\n<\/pre>\n<div id=\"MDSYS.SDO_RDF_INTERNAL.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_RDF_INTERNAL &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">25446c25446\r\n&lt;         PRIV := (CASE UPPER(TAB_LIST(I)) WHEN 'RDF_SESSION_EVENT$' THEN 'SELECT, INSERT, UPDATE, DELETE' ELSE 'READ' END); \r\n---\r\n&gt;         PRIV := (CASE NLS_UPPER(TAB_LIST(I)) WHEN 'RDF_SESSION_EVENT$' THEN 'SELECT, INSERT, UPDATE, DELETE' ELSE 'READ' END); \r\n<\/pre>\n<div id=\"MDSYS.SDO_SAM.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_SAM &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">72c72,75\r\n&lt;         SELECT NLS_UPPER(SUBSTR(TABLE_NAME1, LEN+1)) INTO TNAMET FROM SYS.DUAL;\r\n---\r\n&gt;         SELECT SUBSTR(TABLE_NAME1, LEN+1) INTO TNAMET FROM SYS.DUAL;\r\n&gt;         IF ( NOT SDO_UTIL.IS_BUMPY_CASE(TNAMET) ) THEN\r\n&gt;           TNAMET := REPLACE(NLS_UPPER(TNAMET), '\"');\r\n&gt;         END IF;\r\n77c80,84\r\n&lt;       TNAMET := NLS_UPPER(TABLE_NAME1);\r\n---\r\n&gt;       IF ( SDO_UTIL.IS_BUMPY_CASE(TABLE_NAME1) ) THEN\r\n&gt;         TNAMET := TABLE_NAME1;\r\n&gt;       ELSE\r\n&gt;         TNAMET := REPLACE(NLS_UPPER(TABLE_NAME1), '\"');\r\n&gt;       END IF;\r\n95c102,105\r\n&lt;         SELECT NLS_UPPER(SUBSTR(TABLE_NAME2, LEN+1)) INTO TNAMET FROM SYS.DUAL;\r\n---\r\n&gt;         SELECT SUBSTR(TABLE_NAME2, LEN+1) INTO TNAMET FROM SYS.DUAL;\r\n&gt;         IF ( NOT SDO_UTIL.IS_BUMPY_CASE(TNAMET) ) THEN\r\n&gt;           TNAMET := REPLACE(NLS_UPPER(TNAMET), '\"');\r\n&gt;         END IF;\r\n100c110,114\r\n&lt;       TNAMET := NLS_UPPER(TABLE_NAME2);\r\n---\r\n&gt;       IF ( SDO_UTIL.IS_BUMPY_CASE(TABLE_NAME2) ) THEN\r\n&gt;         TNAMET := TABLE_NAME2;\r\n&gt;       ELSE\r\n&gt;         TNAMET := REPLACE(NLS_UPPER(TABLE_NAME2), '\"');\r\n&gt;       END IF;\r\n117,118c131,141\r\n&lt;     CNAME1 := NLS_UPPER(COLUMN_NAME1);\r\n&lt;     CNAME2 := NLS_UPPER(COLUMN_NAME2);\r\n---\r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(COLUMN_NAME1) ) THEN\r\n&gt;       CNAME1 := COLUMN_NAME1;\r\n&gt;     ELSE\r\n&gt;       CNAME1 := REPLACE(NLS_UPPER(COLUMN_NAME1), '\"');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(COLUMN_NAME2) ) THEN\r\n&gt;       CNAME2 := COLUMN_NAME2;\r\n&gt;     ELSE\r\n&gt;       CNAME2 := REPLACE(NLS_UPPER(COLUMN_NAME2), '\"');\r\n&gt;     END IF;\r\n310a334,337\r\n&gt;     G_TABNAM    VARCHAR2(130);\r\n&gt;     G_TABNAM_NQ VARCHAR2(130);\r\n&gt;     G_COLNAM    VARCHAR2(1024);\r\n&gt;     G_COLNAM_NQ VARCHAR2(1024);\r\n325,326c352,367\r\n&lt;     STHEME_TABLENAME := SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NLS_UPPER(THEME_TABLENAME));\r\n&lt;     STHEME_COLNAME := SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NLS_UPPER(THEME_COLNAME));\r\n---\r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(THEME_TABLENAME) ) THEN\r\n&gt;       G_TABNAM := THEME_TABLENAME;\r\n&gt;     ELSE\r\n&gt;       G_TABNAM := REPLACE(NLS_UPPER(THEME_TABLENAME), '\"');\r\n&gt;     END IF;\r\n&gt;     G_TABNAM_NQ := REPLACE(G_TABNAM, '\"');\r\n&gt; \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(THEME_COLNAME) ) THEN\r\n&gt;       G_COLNAM := THEME_COLNAME;\r\n&gt;     ELSE\r\n&gt;       G_COLNAM := REPLACE(NLS_UPPER(THEME_COLNAME), '\"');\r\n&gt;     END IF;\r\n&gt;     G_COLNAM_NQ := REPLACE(G_COLNAM, '\"');\r\n&gt; \r\n&gt;     STHEME_TABLENAME := SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(G_TABNAM);\r\n&gt;     STHEME_COLNAME := SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(G_COLNAM);\r\n341,342c382,383\r\n&lt;       STHEME_TABLENAME,\r\n&lt;       STHEME_COLNAME,\r\n---\r\n&gt;       SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_TABNAM),\r\n&gt;       SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM),\r\n540a582,592\r\n&gt;    IF ( SDO_UTIL.IS_BUMPY_CASE(BIN_COLNAME) ) THEN\r\n&gt;      SBIN_COLNAME := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(BIN_COLNAME);\r\n&gt;    ELSE\r\n&gt;      SBIN_COLNAME := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(REPLACE(NLS_UPPER(BIN_COLNAME), '\"'));\r\n&gt;    END IF;\r\n&gt; \r\n&gt;    IF ( SDO_UTIL.IS_BUMPY_CASE(BIN_TABLENAME) ) THEN\r\n&gt;      SBIN_TABLENAME := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(BIN_TABLENAME);\r\n&gt;    ELSE\r\n&gt;      SBIN_TABLENAME := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(REPLACE(NLS_UPPER(BIN_TABLENAME), '\"'));\r\n&gt;    END IF;\r\n542,543d593\r\n&lt;    SBIN_COLNAME := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(NLS_UPPER(BIN_COLNAME));\r\n&lt;    SBIN_TABLENAME := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(NLS_UPPER(BIN_TABLENAME));\r\n613a664,667\r\n&gt;     G_TABNAM    VARCHAR2(130);\r\n&gt;     G_TABNAM_NQ VARCHAR2(130);\r\n&gt;     G_COLNAM    VARCHAR2(1024);\r\n&gt;     G_COLNAM_NQ VARCHAR2(1024);\r\n637a692,702\r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(COLNAME) ) THEN\r\n&gt;       SCOLNAME := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(COLNAME);\r\n&gt;     ELSE\r\n&gt;       SCOLNAME := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(REPLACE(NLS_UPPER(COLNAME), '\"'));\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(TABLENAME) ) THEN\r\n&gt;       STABLENAME := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TABLENAME);\r\n&gt;     ELSE\r\n&gt;       STABLENAME := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(REPLACE(NLS_UPPER(TABLENAME), '\"'));\r\n&gt;     END IF;\r\n639,640d703\r\n&lt;     SCOLNAME := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(NLS_UPPER(COLNAME));\r\n&lt;     STABLENAME := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(NLS_UPPER(TABLENAME));\r\n759c822,825\r\n&lt;         SELECT NLS_UPPER(SUBSTR(TABLENAME, LEN+1)) INTO TNAME FROM SYS.DUAL;\r\n---\r\n&gt;         SELECT SUBSTR(TABLENAME, LEN+1) INTO TNAME FROM SYS.DUAL;\r\n&gt;         IF ( NOT SDO_UTIL.IS_BUMPY_CASE(TNAME) ) THEN\r\n&gt;           TNAME := REPLACE(NLS_UPPER(TNAME), '\"');\r\n&gt;         END IF;\r\n764c830,834\r\n&lt;       TNAME := NLS_UPPER(TABLENAME);\r\n---\r\n&gt;       IF ( SDO_UTIL.IS_BUMPY_CASE(TABLENAME) ) THEN\r\n&gt;         TNAME := TABLENAME;\r\n&gt;       ELSE\r\n&gt;         TNAME := REPLACE(NLS_UPPER(TABLENAME), '\"');\r\n&gt;       END IF;\r\n967a1038,1041\r\n&gt;     G_TABNAM    VARCHAR2(130);\r\n&gt;     G_TABNAM_NQ VARCHAR2(130);\r\n&gt;     G_COLNAM    VARCHAR2(1024);\r\n&gt;     G_COLNAM_NQ VARCHAR2(1024);\r\n991a1066,1079\r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(THEME_NAME) ) THEN\r\n&gt;       G_TABNAM := THEME_NAME;\r\n&gt;     ELSE\r\n&gt;       G_TABNAM := REPLACE(NLS_UPPER(THEME_NAME), '\"');\r\n&gt;     END IF;\r\n&gt;     G_TABNAM_NQ := REPLACE(G_TABNAM, '\"');\r\n&gt; \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(THEME_COLNAME) ) THEN\r\n&gt;       G_COLNAM := THEME_COLNAME;\r\n&gt;     ELSE\r\n&gt;       G_COLNAM := REPLACE(NLS_UPPER(THEME_COLNAME), '\"');\r\n&gt;     END IF;\r\n&gt;     G_COLNAM_NQ := REPLACE(G_COLNAM, '\"');\r\n&gt; \r\n994,996c1082,1083\r\n&lt;     STHEME_COLNAME :=\r\n&lt;       SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(NLS_UPPER(THEME_COLNAME));\r\n&lt;     STHEME_NAME := SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NLS_UPPER(THEME_NAME));\r\n---\r\n&gt;     STHEME_COLNAME := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM);\r\n&gt;     STHEME_NAME := SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(NLS_UPPER(G_TABNAM));\r\n1035c1122\r\n&lt;       USING NLS_UPPER(STHEME_NAME), NLS_UPPER(AGGR_COL_STRING);\r\n---\r\n&gt;       USING STHEME_NAME, NLS_UPPER(AGGR_COL_STRING);\r\n1050c1137\r\n&lt;         INTO OWNR USING NLS_UPPER(STHEME_NAME);\r\n---\r\n&gt;         INTO OWNR USING STHEME_NAME;\r\n1063c1150\r\n&lt;       USING NLS_UPPER(STHEME_NAME), NLS_UPPER(AGGR_COL_STRING), OWNR;\r\n---\r\n&gt;       USING STHEME_NAME, NLS_UPPER(AGGR_COL_STRING), OWNR;\r\n1317c1404,1408\r\n&lt;     \r\n---\r\n&gt;     G_TABNAM    VARCHAR2(130);\r\n&gt;     G_TABNAM_NQ VARCHAR2(130);\r\n&gt;     G_COLNAM    VARCHAR2(1024);\r\n&gt;     G_COLNAM_NQ VARCHAR2(1024);\r\n&gt; \r\n1334a1426,1439\r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(THEME_NAME) ) THEN\r\n&gt;       G_TABNAM := THEME_NAME;\r\n&gt;     ELSE\r\n&gt;       G_TABNAM := REPLACE(NLS_UPPER(THEME_NAME), '\"');\r\n&gt;     END IF;\r\n&gt;     G_TABNAM_NQ := REPLACE(G_TABNAM, '\"');\r\n&gt; \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(THEME_COLNAME) ) THEN\r\n&gt;       G_COLNAM := THEME_COLNAME;\r\n&gt;     ELSE\r\n&gt;       G_COLNAM := REPLACE(NLS_UPPER(THEME_COLNAME), '\"');\r\n&gt;     END IF;\r\n&gt;     G_COLNAM_NQ := REPLACE(G_COLNAM, '\"');\r\n&gt; \r\n1349,1350c1454,1455\r\n&lt;           SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(THEME_NAME),\r\n&lt;           SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(THEME_COLNAME),\r\n---\r\n&gt;           SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_TABNAM),\r\n&gt;           SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM),\r\n1362,1363c1467,1468\r\n&lt;           SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(THEME_NAME),\r\n&lt;           SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(THEME_COLNAME),\r\n---\r\n&gt;           SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_TABNAM),\r\n&gt;           SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM),\r\n<\/pre>\n<div id=\"MDSYS.SDO_TIN_PKG.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_TIN_PKG &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">133a134,140\r\n&gt;     \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(INPTABLE) ) THEN\r\n&gt;       MDSYS.MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;         'Bumpy-case \"inptable\" name is not supported');\r\n&gt;       RETURN;\r\n&gt;     END IF;\r\n&gt; \r\n<\/pre>\n<div id=\"MDSYS.SDO_TPIDX.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_TPIDX &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1c1\r\n&lt; PACKAGE BODY       sdo_tpidx AS\r\n---\r\n&gt; PACKAGE BODY sdo_tpidx AS\r\n3,4c3,4\r\n&lt; INVALID_TG_LAYER_ID       exception;\r\n&lt; INVALID_TG_LAYER_GTYPE    exception;\r\n---\r\n&gt; INVALID_TG_LAYER_ID       EXCEPTION;\r\n&gt; INVALID_TG_LAYER_GTYPE    EXCEPTION;\r\n6,33c6,27\r\n&lt;  FUNCTION Index_Update (ia sys.odciindexinfo, rid varchar2,\r\n&lt;                         oldval mdsys.sdo_topo_geometry,\r\n&lt;                         newval mdsys.sdo_topo_geometry,\r\n&lt;                         env sys.ODCIEnv) return number is\r\n&lt;     retval number;\r\n&lt;     stmt varchar2(1000);\r\n&lt;     upd_stmt varchar2(1000);\r\n&lt;     cnt NUMBER;\r\n&lt;     topology varchar2(130);\r\n&lt;     topology_in varchar2(130);\r\n&lt;     type        cursor_type is REF CURSOR;\r\n&lt;     query_crs   cursor_type ;\r\n&lt;     p_tgl_id    number;\r\n&lt;     layer_level number;\r\n&lt;     stmt_n     varchar2(200);\r\n&lt;     stmt_e     varchar2(200);\r\n&lt;     stmt_f     varchar2(200);\r\n&lt;     id         number;\r\n&lt;     WS         varchar2(130);\r\n&lt;     isVersioned number;\r\n&lt;    begin\r\n&lt;      \/* In the relation table, copy over the old values to the new\r\n&lt;         topo_geometry if there are records.\r\n&lt;         1. Delete for the old tg_id those records that are set with a 'D'\r\n&lt;            for the new tg_id.\r\n&lt;         2. Delete the records with a 'D' for the new tg_id.\r\n&lt;         2. Copy the rows from the old tg_id to the new tg_id.\r\n&lt;       *\/\r\n---\r\n&gt;  FUNCTION INDEX_UPDATE (IA SYS.ODCIINDEXINFO, RID VARCHAR2,\r\n&gt;                         OLDVAL MDSYS.SDO_TOPO_GEOMETRY,\r\n&gt;                         NEWVAL MDSYS.SDO_TOPO_GEOMETRY,\r\n&gt;                         ENV SYS.ODCIENV) RETURN NUMBER IS\r\n&gt;     RETVAL NUMBER;\r\n&gt;     STMT VARCHAR2(1000);\r\n&gt;     UPD_STMT VARCHAR2(1000);\r\n&gt;     CNT NUMBER;\r\n&gt;     TOPOLOGY VARCHAR2(130);\r\n&gt;     TOPOLOGY_IN VARCHAR2(130);\r\n&gt;     TYPE        CURSOR_TYPE IS REF CURSOR;\r\n&gt;     QUERY_CRS   CURSOR_TYPE ;\r\n&gt;     P_TGL_ID    NUMBER;\r\n&gt;     LAYER_LEVEL NUMBER;\r\n&gt;     STMT_N     VARCHAR2(200);\r\n&gt;     STMT_E     VARCHAR2(200);\r\n&gt;     STMT_F     VARCHAR2(200);\r\n&gt;     ID         NUMBER;\r\n&gt;     WS         VARCHAR2(130);\r\n&gt;     ISVERSIONED NUMBER;\r\n&gt;    BEGIN\r\n&gt;      \r\n35,36c29,36\r\n&lt;      IF ( (newval is NOT NULL) AND (oldval is not NULL) ) THEN\r\n&lt;       stmt := ' SELECT distinct topology from mdsys.user_sdo_topo_metadata ' ||\r\n---\r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt;      IF ( (NEWVAL IS NOT NULL) AND (OLDVAL IS NOT NULL) ) THEN\r\n&gt;       STMT := ' SELECT distinct topology from mdsys.user_sdo_topo_metadata ' ||\r\n38c38,44\r\n&lt;        EXECUTE IMMEDIATE stmt into topology_in USING newval.topology_id;\r\n---\r\n&gt;        EXECUTE IMMEDIATE STMT INTO TOPOLOGY_IN USING NEWVAL.TOPOLOGY_ID;\r\n&gt; \r\n&gt;       TOPOLOGY := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TOPOLOGY_IN);\r\n&gt;       ISVERSIONED := SDO_TPIDX.ISVERSIONED(TOPOLOGY);\r\n&gt;      \r\n&gt;       \r\n&gt; \r\n40,41d45\r\n&lt;       topology := SYS.DBMS_ASSERT.qualified_sql_name(topology_in);\r\n&lt;       isVersioned := sdo_tpidx.isversioned(topology);\r\n43,47d46\r\n&lt;       \/* first cleanup the higher level layers so that they point to the\r\n&lt;          new tg_id in the relation$ table.\r\n&lt;           for each parent layer with current layer as the child layer\r\n&lt;             update the relation$\r\n&lt;        *\/\r\n49c48,49\r\n&lt;        stmt := ' select TG_LAYER_ID from mdsys.user_sdo_topo_metadata '||\r\n---\r\n&gt; \r\n&gt;        STMT := ' select TG_LAYER_ID from mdsys.user_sdo_topo_metadata '||\r\n51,52c51,52\r\n&lt;        OPEN query_crs FOR stmt using newval.topology_id,\r\n&lt;                                 abs(newval.tg_layer_id);\r\n---\r\n&gt;        OPEN QUERY_CRS FOR STMT USING NEWVAL.TOPOLOGY_ID,\r\n&gt;                                 ABS(NEWVAL.TG_LAYER_ID);\r\n55,57c55,57\r\n&lt;            FETCH query_crs INTO p_tgl_id;\r\n&lt;            EXIT when query_crs%NOTFOUND ;\r\n&lt;             upd_stmt := ' update '||topology||'_RELATION$ ' ||\r\n---\r\n&gt;            FETCH QUERY_CRS INTO P_TGL_ID;\r\n&gt;            EXIT WHEN QUERY_CRS%NOTFOUND ;\r\n&gt;             UPD_STMT := ' update '||TOPOLOGY||'_RELATION$ ' ||\r\n61,62c61,62\r\n&lt;             EXECUTE immediate upd_stmt\r\n&lt;                      USING newval.tg_id, p_tgl_id, oldval.tg_id;\r\n---\r\n&gt;             EXECUTE IMMEDIATE UPD_STMT \r\n&gt;                      USING NEWVAL.TG_ID, P_TGL_ID, OLDVAL.TG_ID;\r\n65c65,66\r\n&lt;        CLOSE query_crs ;\r\n---\r\n&gt;        CLOSE QUERY_CRS ;\r\n&gt; \r\n66a68\r\n&gt;        \r\n68,70c70\r\n&lt;        \/* lock the old rows from the primitive tables, if the tg_layer_id\r\n&lt;           is a leaf level layer *\/\r\n&lt;         EXECUTE IMMEDIATE\r\n---\r\n&gt;         EXECUTE IMMEDIATE \r\n73c73\r\n&lt;          into layer_level using newval.topology_id,  newval.tg_layer_id;\r\n---\r\n&gt;          INTO LAYER_LEVEL USING NEWVAL.TOPOLOGY_ID,  NEWVAL.TG_LAYER_ID;     \r\n75,77c75,77\r\n&lt;         if ( newval.tg_layer_id &lt; 0) then\r\n&lt;            layer_level := 0;\r\n&lt;         end if;\r\n---\r\n&gt;         IF ( NEWVAL.TG_LAYER_ID &lt; 0) THEN \r\n&gt;            LAYER_LEVEL := 0;\r\n&gt;         END IF;\r\n79c79\r\n&lt;         IF (layer_level = 0) then\r\n---\r\n&gt;         IF (LAYER_LEVEL = 0) THEN\r\n81c81\r\n&lt;           stmt_n := ' select topo_id from  '||topology||'_RELATION$ '||\r\n---\r\n&gt;           STMT_N := ' select topo_id from  '||TOPOLOGY||'_RELATION$ '||\r\n83,84c83,84\r\n&lt;                   ' and tg_layer_id = :lid ';\r\n&lt;           stmt_e := ' select topo_id from  '||topology||'_RELATION$ '||\r\n---\r\n&gt;                   ' and tg_layer_id = :lid '; \r\n&gt;           STMT_E := ' select topo_id from  '||TOPOLOGY||'_RELATION$ '||\r\n86,87c86,87\r\n&lt;                   ' and tg_layer_id = :lid ';\r\n&lt;           stmt_f := ' select topo_id from  '||topology||'_RELATION$ '||\r\n---\r\n&gt;                   ' and tg_layer_id = :lid '; \r\n&gt;           STMT_F := ' select topo_id from  '||TOPOLOGY||'_RELATION$ '||\r\n91,92c91,92\r\n&lt;          stmt := ' select node_id from  '||topology||'_NODE$'  ||\r\n&lt;                  ' where node_id in ( ' ||stmt_n|| ') for update ';\r\n---\r\n&gt;          STMT := ' select node_id from  '||TOPOLOGY||'_NODE$'  ||\r\n&gt;                  ' where node_id in ( ' ||STMT_N|| ') for update ';\r\n94c94\r\n&lt;          OPEN query_crs FOR stmt using newval.tg_id, newval.tg_layer_id;\r\n---\r\n&gt;          OPEN QUERY_CRS FOR STMT USING NEWVAL.TG_ID, NEWVAL.TG_LAYER_ID; \r\n97,99c97,99\r\n&lt;               FETCH query_crs into id;\r\n&lt;                IF (id is not NULL AND isVersioned = 1) THEN\r\n&lt;                 EXECUTE IMMEDIATE 'SELECT DBMS_WM.GetWorkspace FROM SYS.DUAL ' into WS;\r\n---\r\n&gt;               FETCH QUERY_CRS INTO ID;\r\n&gt;                IF (ID IS NOT NULL AND ISVERSIONED = 1) THEN\r\n&gt;                 EXECUTE IMMEDIATE 'SELECT DBMS_WM.GetWorkspace FROM SYS.DUAL ' INTO WS;\r\n101c101\r\n&lt;                 EXECUTE IMMEDIATE\r\n---\r\n&gt;                 EXECUTE IMMEDIATE \r\n103c103\r\n&lt;                   USING WS, topology||'_NODE$', 'node_id = '||sdo_util.number_to_char(id) ;\r\n---\r\n&gt;                   USING WS, TOPOLOGY||'_NODE$', 'node_id = '||SDO_UTIL.NUMBER_TO_CHAR(ID) ; \r\n105,106c105,106\r\n&lt;                END IF;\r\n&lt;               EXIT when query_crs%NOTFOUND ;\r\n---\r\n&gt;                END IF; \r\n&gt;               EXIT WHEN QUERY_CRS%NOTFOUND ;\r\n109c109\r\n&lt;          CLOSE query_crs;\r\n---\r\n&gt;          CLOSE QUERY_CRS;\r\n111,112c111,112\r\n&lt;          stmt := ' select edge_id from  '||topology||'_EDGE$'  ||\r\n&lt;                  ' where edge_id in ( ' ||stmt_e|| ') for update ';\r\n---\r\n&gt;          STMT := ' select edge_id from  '||TOPOLOGY||'_EDGE$'  ||\r\n&gt;                  ' where edge_id in ( ' ||STMT_E|| ') for update ';\r\n114c114\r\n&lt;          OPEN query_crs FOR stmt using newval.tg_id, newval.tg_layer_id;\r\n---\r\n&gt;          OPEN QUERY_CRS FOR STMT USING NEWVAL.TG_ID, NEWVAL.TG_LAYER_ID; \r\n117,119c117,119\r\n&lt;               FETCH query_crs into id;\r\n&lt;                IF (id is not NULL AND isVersioned = 1) THEN\r\n&lt;                 EXECUTE IMMEDIATE 'SELECT DBMS_WM.GetWorkspace FROM SYS.DUAL ' into WS;\r\n---\r\n&gt;               FETCH QUERY_CRS INTO ID;\r\n&gt;                IF (ID IS NOT NULL AND ISVERSIONED = 1) THEN\r\n&gt;                 EXECUTE IMMEDIATE 'SELECT DBMS_WM.GetWorkspace FROM SYS.DUAL ' INTO WS;\r\n121c121\r\n&lt;                 EXECUTE IMMEDIATE\r\n---\r\n&gt;                 EXECUTE IMMEDIATE \r\n123c123\r\n&lt;                   USING WS, topology||'_EDGE$', 'edge_id = '||sdo_util.number_to_char(id) ;\r\n---\r\n&gt;                   USING WS, TOPOLOGY||'_EDGE$', 'edge_id = '||SDO_UTIL.NUMBER_TO_CHAR(ID) ; \r\n125,126c125,126\r\n&lt;                END IF;\r\n&lt;               EXIT when query_crs%NOTFOUND ;\r\n---\r\n&gt;                END IF; \r\n&gt;               EXIT WHEN QUERY_CRS%NOTFOUND ;\r\n129c129\r\n&lt;          CLOSE query_crs;\r\n---\r\n&gt;          CLOSE QUERY_CRS;\r\n131,132c131,132\r\n&lt;          stmt := ' select face_id from  '||topology||'_FACE$'  ||\r\n&lt;                  ' where face_id in ( ' ||stmt_f|| ') for update ';\r\n---\r\n&gt;          STMT := ' select face_id from  '||TOPOLOGY||'_FACE$'  ||\r\n&gt;                  ' where face_id in ( ' ||STMT_F|| ') for update ';\r\n134c134\r\n&lt;          OPEN query_crs FOR stmt using newval.tg_id, newval.tg_layer_id;\r\n---\r\n&gt;          OPEN QUERY_CRS FOR STMT USING NEWVAL.TG_ID, NEWVAL.TG_LAYER_ID; \r\n137,139c137,139\r\n&lt;               FETCH query_crs into id;\r\n&lt;                IF (id is not NULL AND isVersioned = 1) THEN\r\n&lt;                 EXECUTE IMMEDIATE 'SELECT DBMS_WM.GetWorkspace FROM SYS.DUAL ' into WS;\r\n---\r\n&gt;               FETCH QUERY_CRS INTO ID;\r\n&gt;                IF (ID IS NOT NULL AND ISVERSIONED = 1) THEN\r\n&gt;                 EXECUTE IMMEDIATE 'SELECT DBMS_WM.GetWorkspace FROM SYS.DUAL ' INTO WS;\r\n141c141\r\n&lt;                 EXECUTE IMMEDIATE\r\n---\r\n&gt;                 EXECUTE IMMEDIATE \r\n143c143\r\n&lt;                  USING WS, topology||'_FACE$', 'face_id = '||sdo_util.number_to_char(id);\r\n---\r\n&gt;                  USING WS, TOPOLOGY||'_FACE$', 'face_id = '||SDO_UTIL.NUMBER_TO_CHAR(ID); \r\n145,146c145,146\r\n&lt;                END IF;\r\n&lt;               EXIT when query_crs%NOTFOUND ;\r\n---\r\n&gt;                END IF; \r\n&gt;               EXIT WHEN QUERY_CRS%NOTFOUND ;\r\n149c149,151\r\n&lt;          CLOSE query_crs;\r\n---\r\n&gt;          CLOSE QUERY_CRS;\r\n&gt; \r\n&gt;         END IF;\r\n151c153\r\n&lt;         end if;\r\n---\r\n&gt;       \r\n153,155c155\r\n&lt;       \/* delete rows from the old tg_id corresponding to rows set to 'D' for\r\n&lt;          new tg_id *\/\r\n&lt;       stmt := ' DELETE FROM '||topology||'_RELATION$ ' ||\r\n---\r\n&gt;       STMT := ' DELETE FROM '||TOPOLOGY||'_RELATION$ ' ||\r\n157c157\r\n&lt;               ' ( SELECT tg_layer_id, '||sdo_util.number_to_char(oldval.tg_id)||', '||\r\n---\r\n&gt;               ' ( SELECT tg_layer_id, '||SDO_UTIL.NUMBER_TO_CHAR(OLDVAL.TG_ID)||', '||\r\n161c161\r\n&lt;       EXECUTE IMMEDIATE stmt using newval.tg_layer_id, newval.tg_id;\r\n---\r\n&gt;       EXECUTE IMMEDIATE STMT USING NEWVAL.TG_LAYER_ID, NEWVAL.TG_ID;\r\n163,164c163,164\r\n&lt;       \/* if there are rows to append from the old tg_id, do it here *\/\r\n&lt;       \/* and do this only if the tg_id is different from the old value *\/\r\n---\r\n&gt;       \r\n&gt;       \r\n166,167c166,167\r\n&lt;       if (newval.tg_id &lt;&gt; oldval.tg_id) then\r\n&lt;         stmt := ' SELECT count(*) from MDSYS.SDO_TOPO_RELATION_DATA ' ||\r\n---\r\n&gt;       IF (NEWVAL.TG_ID &lt;&gt; OLDVAL.TG_ID) THEN\r\n&gt;         STMT := ' SELECT count(*) from MDSYS.SDO_TOPO_RELATION_DATA ' ||\r\n170c170\r\n&lt;          EXECUTE IMMEDIATE stmt into cnt using newval.TG_LAYER_ID, newval.TG_ID;\r\n---\r\n&gt;          EXECUTE IMMEDIATE STMT INTO CNT USING NEWVAL.TG_LAYER_ID, NEWVAL.TG_ID;\r\n172,174c172,174\r\n&lt;          IF (cnt = 1) THEN  \/* we need to copy the rows from oldval to newval *\/\r\n&lt;           stmt := ' INSERT INTO '||topology||'_RELATION$ ' ||\r\n&lt;                   ' SELECT tg_layer_id, '||sdo_util.number_to_char(newval.tg_id)||', '||\r\n---\r\n&gt;          IF (CNT = 1) THEN  \r\n&gt;           STMT := ' INSERT INTO '||TOPOLOGY||'_RELATION$ ' ||\r\n&gt;                   ' SELECT tg_layer_id, '||SDO_UTIL.NUMBER_TO_CHAR(NEWVAL.TG_ID)||', '||\r\n176c176\r\n&lt;                   ' FROM '||topology||'_RELATION$ '||\r\n---\r\n&gt;                   ' FROM '||TOPOLOGY||'_RELATION$ '||\r\n178,179c178,179\r\n&lt;           EXECUTE IMMEDIATE stmt USING\r\n&lt;                      oldval.tg_layer_id, oldval.tg_id;\r\n---\r\n&gt;           EXECUTE IMMEDIATE STMT USING \r\n&gt;                      OLDVAL.TG_LAYER_ID, OLDVAL.TG_ID;       \r\n181c181\r\n&lt;         stmt := ' SELECT count(*) from MDSYS.SDO_TOPO_RELATION_DATA ' ||\r\n---\r\n&gt;         STMT := ' SELECT count(*) from MDSYS.SDO_TOPO_RELATION_DATA ' ||\r\n183,185c183,185\r\n&lt;          EXECUTE IMMEDIATE stmt into cnt using newval.TG_LAYER_ID, newval.TG_ID;\r\n&lt;          IF (cnt = 0) THEN  \/* Error: bug 4681927 *\/\r\n&lt;               mderr.raise_md_error('MD','SDO',-13122);\r\n---\r\n&gt;          EXECUTE IMMEDIATE STMT INTO CNT USING NEWVAL.TG_LAYER_ID, NEWVAL.TG_ID;\r\n&gt;          IF (CNT = 0) THEN  \r\n&gt;               MDERR.RAISE_MD_ERROR('MD','SDO',-13122);\r\n187c187\r\n&lt;        end if;\r\n---\r\n&gt;        END IF;\r\n189,190c189,190\r\n&lt;       \/* now cleanup the rows with 'A' and 'D' values for the topo_attribute *\/\r\n&lt;        stmt := ' DELETE FROM MDSYS.SDO_TOPO_RELATION_DATA ' ||\r\n---\r\n&gt;       \r\n&gt;        STMT := ' DELETE FROM MDSYS.SDO_TOPO_RELATION_DATA ' ||\r\n193c193\r\n&lt;        EXECUTE IMMEDIATE stmt using newval.TG_LAYER_ID, newval.TG_ID;\r\n---\r\n&gt;        EXECUTE IMMEDIATE STMT USING NEWVAL.TG_LAYER_ID, NEWVAL.TG_ID;\r\n196,200c196,200\r\n&lt;      \/* remove the dummy entries in MDSYS.SDO_TOPO_RELATION_DATA\r\n&lt;         for this special case *\/\r\n&lt;      if ( (oldval is NULL) AND (newval is not NULL) ) then\r\n&lt;       \/* now cleanup the rows with 'A' and 'D' values for the topo_attribute *\/\r\n&lt;        stmt := ' DELETE FROM MDSYS.SDO_TOPO_RELATION_DATA ' ||\r\n---\r\n&gt;      \r\n&gt; \r\n&gt;      IF ( (OLDVAL IS NULL) AND (NEWVAL IS NOT NULL) ) THEN\r\n&gt;       \r\n&gt;        STMT := ' DELETE FROM MDSYS.SDO_TOPO_RELATION_DATA ' ||\r\n203,204c203,215\r\n&lt;        EXECUTE IMMEDIATE stmt using newval.TG_LAYER_ID, newval.TG_ID;\r\n&lt;      end if;\r\n---\r\n&gt;        EXECUTE IMMEDIATE STMT USING NEWVAL.TG_LAYER_ID, NEWVAL.TG_ID;\r\n&gt;      END IF;\r\n&gt;    \r\n&gt;      IF ( (NEWVAL IS NOT NULL) AND (OLDVAL IS NOT NULL) AND \r\n&gt;                   (OLDVAL.TG_ID = NEWVAL.TG_ID) ) THEN\r\n&gt;         RETVAL := SDO_TPIDX.INDEX_DELETE(IA, NULL, OLDVAL, ENV);\r\n&gt;         RETVAL := SDO_TPIDX.INDEX_INSERT(IA, NULL, NEWVAL, ENV);\r\n&gt;      ELSE\r\n&gt;         RETVAL := SDO_TPIDX.INDEX_DELETE(IA, RID, OLDVAL, ENV);\r\n&gt;         RETVAL := SDO_TPIDX.INDEX_INSERT(IA, RID, NEWVAL, ENV);\r\n&gt;      END IF;\r\n&gt;      RETURN RETVAL;\r\n&gt;    END;\r\n206,224c217,224\r\n&lt;      if ( (newval is not NULL) AND (oldval is not NULL) AND\r\n&lt;                   (oldval.tg_id = newval.tg_id) ) then\r\n&lt;         retval := sdo_tpidx.index_delete(ia, null, oldval, env);\r\n&lt;         retval := sdo_tpidx.index_insert(ia, null, newval, env);\r\n&lt;      else\r\n&lt;         retval := sdo_tpidx.index_delete(ia, rid, oldval, env);\r\n&lt;         retval := sdo_tpidx.index_insert(ia, rid, newval, env);\r\n&lt;      end if;\r\n&lt;      return retval;\r\n&lt;    end;\r\n&lt; \r\n&lt;   -----------------------------index_insert------------------------------------\r\n&lt;   ---\r\n&lt;   --- BUGS:\r\n&lt;   ---   internal: 02\/27\/04, add the collection type dealing\r\n&lt;   ---\r\n&lt;   FUNCTION index_insert (ia sys.odciindexinfo, rid varchar2,\r\n&lt;                           newval mdsys.sdo_topo_geometry,\r\n&lt;                           env sys.ODCIEnv)\r\n---\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION INDEX_INSERT (IA SYS.ODCIINDEXINFO, RID VARCHAR2,\r\n&gt;                           NEWVAL MDSYS.SDO_TOPO_GEOMETRY,\r\n&gt;                           ENV SYS.ODCIENV)\r\n226,239c226,239\r\n&lt;   stmt          varchar2(1000);\r\n&lt;   stmt1          varchar2(1000);\r\n&lt;   table_name    varchar2(260);\r\n&lt;   column_name   varchar2(130);\r\n&lt;   topology      varchar2(130);\r\n&lt;   topology_in   varchar2(130);\r\n&lt;   topology_id   number;\r\n&lt;   feature_L_id  number;\r\n&lt;   feature_type  number;\r\n&lt;   feature_id    number;\r\n&lt;   idx_columns   SYS.ODCIColInfoList;\r\n&lt;   cnt           number;\r\n&lt;   layer_gtype   varchar2(32);\r\n&lt;   idx_tab       varchar2(260);\r\n---\r\n&gt;   STMT          VARCHAR2(1000);\r\n&gt;   STMT1          VARCHAR2(1000);\r\n&gt;   TABLE_NAME    VARCHAR2(260);\r\n&gt;   COLUMN_NAME   VARCHAR2(130);\r\n&gt;   TOPOLOGY      VARCHAR2(130);\r\n&gt;   TOPOLOGY_IN   VARCHAR2(130);\r\n&gt;   TOPOLOGY_ID   NUMBER;\r\n&gt;   FEATURE_L_ID  NUMBER;\r\n&gt;   FEATURE_TYPE  NUMBER;\r\n&gt;   FEATURE_ID    NUMBER;\r\n&gt;   IDX_COLUMNS   SYS.ODCICOLINFOLIST;\r\n&gt;   CNT           NUMBER;\r\n&gt;   LAYER_GTYPE   VARCHAR2(32);\r\n&gt;   IDX_TAB       VARCHAR2(260);\r\n242,243c242,243\r\n&lt;     IF (newval is NULL) THEN\r\n&lt;       return SYS.ODCIConst.Success;\r\n---\r\n&gt;     IF (NEWVAL IS NULL) THEN\r\n&gt;       RETURN SYS.ODCICONST.SUCCESS;\r\n246,252c246,252\r\n&lt;     idx_columns := ia.IndexCols;\r\n&lt;     table_name := idx_columns(1).TableName;\r\n&lt;     column_name := idx_columns(1).ColName;\r\n&lt;     column_name := REPLACE(column_name, '\"');\r\n&lt;     topology_id := newval.topology_id;\r\n&lt;     feature_L_id := newval.tg_layer_id;\r\n&lt;     feature_id := newval.tg_id;\r\n---\r\n&gt;     IDX_COLUMNS := IA.INDEXCOLS;\r\n&gt;     TABLE_NAME := IDX_COLUMNS(1).TABLENAME;\r\n&gt;     COLUMN_NAME := IDX_COLUMNS(1).COLNAME;\r\n&gt;     COLUMN_NAME := REPLACE(COLUMN_NAME, '\"');\r\n&gt;     TOPOLOGY_ID := NEWVAL.TOPOLOGY_ID;\r\n&gt;     FEATURE_L_ID := NEWVAL.TG_LAYER_ID;\r\n&gt;     FEATURE_ID := NEWVAL.TG_ID;\r\n255,257c255,257\r\n&lt;       IF (feature_L_id IS NULL) THEN\r\n&lt;         mderr.raise_md_error('MD', 'SDO', -13113);\r\n&lt;         RETURN SYS.ODCIConst.Error;\r\n---\r\n&gt;       IF (FEATURE_L_ID IS NULL) THEN\r\n&gt;         MDERR.RAISE_MD_ERROR('MD', 'SDO', -13113);\r\n&gt;         RETURN SYS.ODCICONST.ERROR;\r\n260,261c260,261\r\n&lt;       -- check the layer_id consistency\r\n&lt;       topology_in := NULL;\r\n---\r\n&gt;       \r\n&gt;       TOPOLOGY_IN := NULL;\r\n263c263\r\n&lt;       stmt := 'select topology from mdsys.user_sdo_topo_info where owner = :owner ' ||\r\n---\r\n&gt;       STMT := 'select topology from mdsys.user_sdo_topo_info where owner = :owner ' ||\r\n267,269c267,269\r\n&lt;         EXECUTE IMMEDIATE stmt INTO topology_in\r\n&lt;           USING ia.IndexSchema, topology_id,table_name,\r\n&lt;                 column_name, abs(feature_L_id);\r\n---\r\n&gt;         EXECUTE IMMEDIATE STMT INTO TOPOLOGY_IN\r\n&gt;           USING IA.INDEXSCHEMA, TOPOLOGY_ID,TABLE_NAME,\r\n&gt;                 COLUMN_NAME, ABS(FEATURE_L_ID);\r\n272,273c272,273\r\n&lt;         mderr.raise_md_error('MD', 'SDO', -13113);\r\n&lt;         RETURN SYS.ODCIConst.Error;\r\n---\r\n&gt;         MDERR.RAISE_MD_ERROR('MD', 'SDO', -13113);\r\n&gt;         RETURN SYS.ODCICONST.ERROR;\r\n276,279c276,279\r\n&lt; \r\n&lt;       IF (topology_in IS NULL) THEN\r\n&lt;         mderr.raise_md_error('MD', 'SDO', -13261, stmt);\r\n&lt;         raise INVALID_TG_LAYER_ID;\r\n---\r\n&gt;  \r\n&gt;       IF (TOPOLOGY_IN IS NULL) THEN\r\n&gt;         MDERR.RAISE_MD_ERROR('MD', 'SDO', -13261, STMT);\r\n&gt;         RAISE INVALID_TG_LAYER_ID;\r\n281,285c281,285\r\n&lt; \r\n&lt;       topology := SYS.DBMS_ASSERT.qualified_sql_name(topology_in);\r\n&lt; \r\n&lt;       -- check the feature type consistency\r\n&lt;       stmt := ' select SDO_LAYER_GTYPE from mdsys.all_sdo_index_metadata ' ||\r\n---\r\n&gt;    \r\n&gt;       TOPOLOGY := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TOPOLOGY_IN);\r\n&gt;  \r\n&gt;       \r\n&gt;       STMT := ' select SDO_LAYER_GTYPE from mdsys.all_sdo_index_metadata ' ||\r\n287c287\r\n&lt;       EXECUTE IMMEDIATE stmt INTO layer_gtype USING ia.IndexSchema, ia.IndexName;\r\n---\r\n&gt;       EXECUTE IMMEDIATE STMT INTO LAYER_GTYPE USING IA.INDEXSCHEMA, IA.INDEXNAME;\r\n289,292c289,292\r\n&lt;       IF (layer_gtype = 'POLYGON' ) THEN\r\n&lt;         IF (newval.tg_type &lt;&gt; 3) THEN\r\n&lt;           -- rollback if there is an error\r\n&lt;           stmt := 'delete from '||topology||'_relation$ where  ' ||\r\n---\r\n&gt;       IF (LAYER_GTYPE = 'POLYGON' ) THEN\r\n&gt;         IF (NEWVAL.TG_TYPE &lt;&gt; 3) THEN\r\n&gt;           \r\n&gt;           STMT := 'delete from '||TOPOLOGY||'_relation$ where  ' ||\r\n294,295c294,295\r\n&lt;           EXECUTE IMMEDIATE stmt USING feature_L_id,  feature_id;\r\n&lt;           raise INVALID_TG_LAYER_GTYPE;\r\n---\r\n&gt;           EXECUTE IMMEDIATE STMT USING FEATURE_L_ID,  FEATURE_ID;\r\n&gt;           RAISE INVALID_TG_LAYER_GTYPE;\r\n297,300c297,300\r\n&lt;       ELSIF  (layer_gtype = 'LINE'  OR layer_gtype = 'CURVE' ) THEN\r\n&lt;         IF (newval.tg_type &lt;&gt; 2) THEN\r\n&lt;           -- rollback if there is an error\r\n&lt;           stmt := 'delete from '||topology||'_relation$ where  ' ||\r\n---\r\n&gt;       ELSIF  (LAYER_GTYPE = 'LINE'  OR LAYER_GTYPE = 'CURVE' ) THEN\r\n&gt;         IF (NEWVAL.TG_TYPE &lt;&gt; 2) THEN\r\n&gt;           \r\n&gt;           STMT := 'delete from '||TOPOLOGY||'_relation$ where  ' ||\r\n302,303c302,303\r\n&lt;           EXECUTE IMMEDIATE stmt USING feature_L_id,  feature_id;\r\n&lt;          raise INVALID_TG_LAYER_GTYPE;\r\n---\r\n&gt;           EXECUTE IMMEDIATE STMT USING FEATURE_L_ID,  FEATURE_ID;\r\n&gt;          RAISE INVALID_TG_LAYER_GTYPE;\r\n305,308c305,308\r\n&lt;       ELSIF (layer_gtype = 'POINT' ) THEN\r\n&lt;         IF (newval.tg_type &lt;&gt; 1) THEN\r\n&lt;           -- rollback if there is an error\r\n&lt;           stmt := 'delete from '||topology||'_relation$ where  ' ||\r\n---\r\n&gt;       ELSIF (LAYER_GTYPE = 'POINT' ) THEN\r\n&gt;         IF (NEWVAL.TG_TYPE &lt;&gt; 1) THEN\r\n&gt;           \r\n&gt;           STMT := 'delete from '||TOPOLOGY||'_relation$ where  ' ||\r\n310,311c310,311\r\n&lt;           EXECUTE IMMEDIATE stmt USING feature_L_id,  feature_id;\r\n&lt;           raise INVALID_TG_LAYER_GTYPE;\r\n---\r\n&gt;           EXECUTE IMMEDIATE STMT USING FEATURE_L_ID,  FEATURE_ID;\r\n&gt;           RAISE INVALID_TG_LAYER_GTYPE;\r\n313,316c313,316\r\n&lt;       ELSIF (layer_gtype = 'COLLECTION') THEN\r\n&lt;         IF ((newval.tg_type &lt; 1) OR\r\n&lt;             (newval.tg_type &gt; 4)) THEN\r\n&lt;           stmt := 'delete from '||topology||'_relation$ where  ' ||\r\n---\r\n&gt;       ELSIF (LAYER_GTYPE = 'COLLECTION') THEN\r\n&gt;         IF ((NEWVAL.TG_TYPE &lt; 1) OR\r\n&gt;             (NEWVAL.TG_TYPE &gt; 4)) THEN\r\n&gt;           STMT := 'delete from '||TOPOLOGY||'_relation$ where  ' ||\r\n318,320c318,320\r\n&lt;           EXECUTE IMMEDIATE stmt USING feature_L_id,  feature_id;\r\n&lt;           raise INVALID_TG_LAYER_GTYPE;\r\n&lt;         END IF;\r\n---\r\n&gt;           EXECUTE IMMEDIATE STMT USING FEATURE_L_ID,  FEATURE_ID;\r\n&gt;           RAISE INVALID_TG_LAYER_GTYPE;\r\n&gt;         END IF; \r\n321a322,325\r\n&gt;    \r\n&gt;       \r\n&gt;       \r\n&gt; \r\n323,324c327\r\n&lt;       \/* insert into the relation$ table *\/\r\n&lt;       stmt := ' INSERT INTO '||topology||'_RELATION$ '||\r\n---\r\n&gt;       STMT := ' INSERT INTO '||TOPOLOGY||'_RELATION$ '||\r\n326,327c329,330\r\n&lt;               ' WHERE A.tg_layer_id =  :flid and A.tg_id = :fid ';\r\n&lt;       EXECUTE immediate stmt USING feature_L_id, feature_id;\r\n---\r\n&gt;               ' WHERE A.tg_layer_id =  :flid and A.tg_id = :fid and A.TOPO_TYPE&gt;0 ';\r\n&gt;       EXECUTE IMMEDIATE STMT USING FEATURE_L_ID, FEATURE_ID;\r\n329,332c332,335\r\n&lt;        -- PARTITION OR NON PARTITION CASE\r\n&lt;        IF (ia.IndexPartition IS NULL ) THEN\r\n&lt;          -- insert the rowid, feature id into the index table\r\n&lt;          stmt := 'select SDO_INDEX_TABLE from mdsys.all_sdo_index_metadata ' ||\r\n---\r\n&gt;        \r\n&gt;        IF (IA.INDEXPARTITION IS NULL ) THEN\r\n&gt;          \r\n&gt;          STMT := 'select SDO_INDEX_TABLE from mdsys.all_sdo_index_metadata ' ||\r\n334c337\r\n&lt;          EXECUTE IMMEDIATE stmt into idx_tab using ia.IndexSchema, ia.IndexName;\r\n---\r\n&gt;          EXECUTE IMMEDIATE STMT INTO IDX_TAB USING IA.INDEXSCHEMA, IA.INDEXNAME;\r\n336,337c339,340\r\n&lt;          -- insert the rowid, feature id into the index table\r\n&lt;          stmt := 'select SDO_INDEX_TABLE from mdsys.all_sdo_index_metadata ' ||\r\n---\r\n&gt;          \r\n&gt;          STMT := 'select SDO_INDEX_TABLE from mdsys.all_sdo_index_metadata ' ||\r\n341,342c344,345\r\n&lt;          EXECUTE IMMEDIATE stmt INTO idx_tab USING\r\n&lt;            ia.IndexSchema, ia.IndexName, ia.IndexPartition;\r\n---\r\n&gt;          EXECUTE IMMEDIATE STMT INTO IDX_TAB USING\r\n&gt;            IA.INDEXSCHEMA, IA.INDEXNAME, IA.INDEXPARTITION;\r\n346,351c349,354\r\n&lt;        -- insert into the index table\r\n&lt;        \/* do this only if rid is not NULL *\/\r\n&lt;        IF (rid is not NULL) THEN\r\n&lt;          idx_tab := ia.IndexSchema||'.'||idx_tab;\r\n&lt;          stmt := ' INSERT INTO ' ||\r\n&lt;                  SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(idx_tab) ||\r\n---\r\n&gt;        \r\n&gt;        \r\n&gt;        IF (RID IS NOT NULL) THEN\r\n&gt;          IDX_TAB := IA.INDEXSCHEMA||'.'||IDX_TAB;\r\n&gt;          STMT := ' INSERT INTO ' ||\r\n&gt;                  SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(IDX_TAB) || \r\n353c356\r\n&lt;          EXECUTE IMMEDIATE stmt USING feature_id, rid;\r\n---\r\n&gt;          EXECUTE IMMEDIATE STMT USING FEATURE_ID, RID;\r\n356c359\r\n&lt;        stmt := ' DELETE  from MDSYS.SDO_TOPO_RELATION_DATA A ' ||\r\n---\r\n&gt;        STMT := ' DELETE  from MDSYS.SDO_TOPO_RELATION_DATA A ' ||\r\n358c361\r\n&lt;        EXECUTE immediate stmt USING feature_L_id, feature_id;\r\n---\r\n&gt;        EXECUTE IMMEDIATE STMT USING FEATURE_L_ID, FEATURE_ID;\r\n362,364c365,367\r\n&lt;       dbms_output.put_line(sdo_util.number_to_char(feature_L_id));\r\n&lt;       mderr.raise_md_error('MD', 'SDO', -13121, SYS.DBMS_ASSERT.noop(stmt));\r\n&lt;       RETURN SYS.ODCIConst.Error;\r\n---\r\n&gt;       DBMS_OUTPUT.PUT_LINE(SDO_UTIL.NUMBER_TO_CHAR(FEATURE_L_ID));\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13121, STMT);\r\n&gt;       RETURN SYS.ODCICONST.ERROR;\r\n368,371c371,374\r\n&lt;       stmt1 := sdo_util.number_to_char(cnt) || '::'||ia.IndexSchema||'::'||topology||\r\n&lt;               '::'||table_name||'::'||column_name;\r\n&lt;       mderr.raise_md_error('MD', 'SDO', -13113, SYS.DBMS_ASSERT.noop(stmt1));\r\n&lt;       RETURN SYS.ODCIConst.Error;\r\n---\r\n&gt;       STMT1 := SDO_UTIL.NUMBER_TO_CHAR(CNT) || '::'||IA.INDEXSCHEMA||'::'||TOPOLOGY||\r\n&gt;               '::'||TABLE_NAME||'::'||COLUMN_NAME;\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13113, STMT1);\r\n&gt;       RETURN SYS.ODCICONST.ERROR;\r\n374c377\r\n&lt;     RETURN SYS.ODCIConst.Success;\r\n---\r\n&gt;     RETURN SYS.ODCICONST.SUCCESS;\r\n377,379c380,382\r\n&lt;   FUNCTION index_delete (ia sys.odciindexinfo, rid varchar2,\r\n&lt;                          oldval mdsys.sdo_topo_geometry,\r\n&lt;                          env sys.ODCIEnv)\r\n---\r\n&gt;   FUNCTION INDEX_DELETE (IA SYS.ODCIINDEXINFO, RID VARCHAR2,\r\n&gt;                          OLDVAL MDSYS.SDO_TOPO_GEOMETRY,\r\n&gt;                          ENV SYS.ODCIENV)\r\n381,406c384,409\r\n&lt;   stmt          varchar2(1000);\r\n&lt;   q_stmt        varchar2(1000);\r\n&lt;   topology      varchar2(21);\r\n&lt;   topology_in   varchar2(21);\r\n&lt;   topology_id   number;\r\n&lt;   feature_L_id  number;\r\n&lt;   feature_id    number;\r\n&lt;   idx_tab       varchar2(260);\r\n&lt;   type        cursor_type is REF CURSOR;\r\n&lt;   query_crs   cursor_type ;\r\n&lt;   p_tgl_id    number;\r\n&lt;   cnt         number;\r\n&lt;   layer_level number;\r\n&lt;   id          number;\r\n&lt;   stmt_n      varchar2(200);\r\n&lt;   stmt_e      varchar2(200);\r\n&lt;   stmt_f      varchar2(200);\r\n&lt;   WS          varchar2(130);\r\n&lt;   old_sp    varchar2(128);\r\n&lt;   old_ws     varchar2(128);\r\n&lt;   parent_sp varchar2(128) ;\r\n&lt;   parent_ws varchar2(128) ;\r\n&lt;   isVersioned number;\r\n&lt;   idx_columns   SYS.ODCIColInfoList;\r\n&lt;   table_name varchar2(130);\r\n&lt;   ver_status  varchar2(10);\r\n---\r\n&gt;   STMT          VARCHAR2(1000);\r\n&gt;   Q_STMT        VARCHAR2(1000);\r\n&gt;   TOPOLOGY      VARCHAR2(21);\r\n&gt;   TOPOLOGY_IN   VARCHAR2(21);\r\n&gt;   TOPOLOGY_ID   NUMBER;\r\n&gt;   FEATURE_L_ID  NUMBER;\r\n&gt;   FEATURE_ID    NUMBER;\r\n&gt;   IDX_TAB       VARCHAR2(260);\r\n&gt;   TYPE        CURSOR_TYPE IS REF CURSOR;\r\n&gt;   QUERY_CRS   CURSOR_TYPE ;\r\n&gt;   P_TGL_ID    NUMBER;\r\n&gt;   CNT         NUMBER;\r\n&gt;   LAYER_LEVEL NUMBER;\r\n&gt;   ID          NUMBER;\r\n&gt;   STMT_N      VARCHAR2(200);\r\n&gt;   STMT_E      VARCHAR2(200);\r\n&gt;   STMT_F      VARCHAR2(200);\r\n&gt;   WS          VARCHAR2(130);\r\n&gt;   OLD_SP    VARCHAR2(128);\r\n&gt;   OLD_WS     VARCHAR2(128);\r\n&gt;   PARENT_SP VARCHAR2(128) ;\r\n&gt;   PARENT_WS VARCHAR2(128) ;\r\n&gt;   ISVERSIONED NUMBER;\r\n&gt;   IDX_COLUMNS   SYS.ODCICOLINFOLIST;\r\n&gt;   TABLE_NAME VARCHAR2(130);\r\n&gt;   VER_STATUS  VARCHAR2(10);\r\n410,411c413,414\r\n&lt;     IF (oldval IS NULL) THEN\r\n&lt;         RETURN SYS.ODCIConst.Success;\r\n---\r\n&gt;     IF (OLDVAL IS NULL) THEN\r\n&gt;         RETURN SYS.ODCICONST.SUCCESS;\r\n414,416c417,419\r\n&lt;     topology_id := oldval.topology_id;\r\n&lt;     feature_L_id := oldval.tg_layer_id;\r\n&lt;     feature_id := oldval.tg_id;\r\n---\r\n&gt;     TOPOLOGY_ID := OLDVAL.TOPOLOGY_ID;\r\n&gt;     FEATURE_L_ID := OLDVAL.TG_LAYER_ID;\r\n&gt;     FEATURE_ID := OLDVAL.TG_ID;\r\n418c421\r\n&lt;     stmt := ' select topology from mdsys.user_sdo_topo_info where ' ||\r\n---\r\n&gt;     STMT := ' select topology from mdsys.user_sdo_topo_info where ' ||\r\n420c423,424\r\n&lt;     EXECUTE IMMEDIATE stmt INTO topology_in USING topology_id, abs(feature_L_id);\r\n---\r\n&gt;     EXECUTE IMMEDIATE STMT INTO TOPOLOGY_IN USING TOPOLOGY_ID, ABS(FEATURE_L_ID);\r\n&gt; \r\n421a426,427\r\n&gt;     TOPOLOGY := SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TOPOLOGY_IN);\r\n&gt;     \r\n423,426c429\r\n&lt;     topology := SYS.DBMS_ASSERT.qualified_sql_name(topology_in);\r\n&lt;     \/* lock the old rows from the primitive tables, if the tg_layer_id\r\n&lt;        is a leaf level layer *\/\r\n&lt;     EXECUTE IMMEDIATE\r\n---\r\n&gt;     EXECUTE IMMEDIATE \r\n429c432\r\n&lt;     INTO layer_level USING topology_id,  feature_l_id;\r\n---\r\n&gt;     INTO LAYER_LEVEL USING TOPOLOGY_ID,  FEATURE_L_ID;     \r\n431,432c434,435\r\n&lt;     IF ( feature_l_id &lt; 0) THEN\r\n&lt;        layer_level := 0;\r\n---\r\n&gt;     IF ( FEATURE_L_ID &lt; 0) THEN\r\n&gt;        LAYER_LEVEL := 0;\r\n435c438\r\n&lt;     IF (layer_level = 0) THEN\r\n---\r\n&gt;     IF (LAYER_LEVEL = 0) THEN\r\n437c440\r\n&lt;       stmt_n := ' select topo_id from  '||topology||'_RELATION$ '||\r\n---\r\n&gt;       STMT_N := ' select topo_id from  '||TOPOLOGY||'_RELATION$ '||\r\n439c442\r\n&lt;                 ' and tg_layer_id = :lid ';\r\n---\r\n&gt;                 ' and tg_layer_id = :lid '; \r\n441c444\r\n&lt;       stmt_e := ' select abs(topo_id) from  '||topology||'_RELATION$ '||\r\n---\r\n&gt;       STMT_E := ' select abs(topo_id) from  '||TOPOLOGY||'_RELATION$ '||\r\n443c446\r\n&lt;                 ' and tg_layer_id = :lid ';\r\n---\r\n&gt;                 ' and tg_layer_id = :lid '; \r\n445c448\r\n&lt;       stmt_f := ' select topo_id from  '||topology||'_RELATION$ '||\r\n---\r\n&gt;       STMT_F := ' select topo_id from  '||TOPOLOGY||'_RELATION$ '||\r\n449,450c452,453\r\n&lt;       stmt := ' select node_id from  '||topology||'_NODE$'  ||\r\n&lt;               ' where node_id in ( ' ||stmt_n|| ') for update ';\r\n---\r\n&gt;       STMT := ' select node_id from  '||TOPOLOGY||'_NODE$'  ||\r\n&gt;               ' where node_id in ( ' ||STMT_N|| ') for update ';\r\n452c455\r\n&lt;       OPEN query_crs FOR stmt USING feature_id, feature_l_id;\r\n---\r\n&gt;       OPEN QUERY_CRS FOR STMT USING FEATURE_ID, FEATURE_L_ID; \r\n455,456c458,459\r\n&lt;           FETCH query_crs INTO id;\r\n&lt;           EXIT when query_crs%NOTFOUND ;\r\n---\r\n&gt;           FETCH QUERY_CRS INTO ID;\r\n&gt;           EXIT WHEN QUERY_CRS%NOTFOUND ;\r\n459c462\r\n&lt;       CLOSE query_crs;\r\n---\r\n&gt;       CLOSE QUERY_CRS;\r\n461,462c464,465\r\n&lt;       stmt := ' select edge_id from  '||topology||'_EDGE$'  ||\r\n&lt;               ' where edge_id in ( ' ||stmt_e|| ') for update ';\r\n---\r\n&gt;       STMT := ' select edge_id from  '||TOPOLOGY||'_EDGE$'  ||\r\n&gt;               ' where edge_id in ( ' ||STMT_E|| ') for update ';\r\n464c467\r\n&lt;       OPEN query_crs FOR stmt USING feature_id, feature_l_id;\r\n---\r\n&gt;       OPEN QUERY_CRS FOR STMT USING FEATURE_ID, FEATURE_L_ID; \r\n467,468c470,471\r\n&lt;           FETCH query_crs INTO id;\r\n&lt;           EXIT when query_crs%NOTFOUND ;\r\n---\r\n&gt;           FETCH QUERY_CRS INTO ID;\r\n&gt;           EXIT WHEN QUERY_CRS%NOTFOUND ;\r\n471c474\r\n&lt;       CLOSE query_crs;\r\n---\r\n&gt;       CLOSE QUERY_CRS;\r\n473,474c476,477\r\n&lt;       stmt := ' select face_id from  '||topology||'_FACE$'  ||\r\n&lt;               ' where face_id in ( ' ||stmt_f|| ') for update ';\r\n---\r\n&gt;       STMT := ' select face_id from  '||TOPOLOGY||'_FACE$'  ||\r\n&gt;               ' where face_id in ( ' ||STMT_F|| ') for update ';\r\n476c479\r\n&lt;       OPEN query_crs FOR stmt USING feature_id, feature_l_id;\r\n---\r\n&gt;       OPEN QUERY_CRS FOR STMT USING FEATURE_ID, FEATURE_L_ID; \r\n479,480c482,483\r\n&lt;           FETCH query_crs INTO id;\r\n&lt;           EXIT when query_crs%NOTFOUND ;\r\n---\r\n&gt;           FETCH QUERY_CRS INTO ID;\r\n&gt;           EXIT WHEN QUERY_CRS%NOTFOUND ;\r\n483c486\r\n&lt;       CLOSE query_crs;\r\n---\r\n&gt;       CLOSE QUERY_CRS;\r\n487,496c490,499\r\n&lt;     -- delete from the &lt;&gt;_Relation$ table the rows for feature\r\n&lt;     -- do  this only if this is not a row migration case\r\n&lt;     IF ( ( (bitand( env.EnvFlags, SYS.ODCIConst.RowMigration)\r\n&lt;               = SYS.ODCIConst.RowMigration) AND\r\n&lt;            (bitand( env.EnvFlags, SYS.ODCIConst.IndexKeyChanged)\r\n&lt;               =  SYS.ODCIConst.IndexKeyChanged) ) OR\r\n&lt;          (bitand( env.EnvFlags, SYS.ODCIConst.RowMigration)\r\n&lt;               &lt;&gt; SYS.ODCIConst.RowMigration) ) THEN\r\n&lt;       IF (rid is not NULL) THEN\r\n&lt;         stmt := 'delete from '||topology||'_relation$ where  ' ||\r\n---\r\n&gt;     \r\n&gt;     \r\n&gt;     IF ( ( (BITAND( ENV.ENVFLAGS, SYS.ODCICONST.ROWMIGRATION) \r\n&gt;               = SYS.ODCICONST.ROWMIGRATION) AND\r\n&gt;            (BITAND( ENV.ENVFLAGS, SYS.ODCICONST.INDEXKEYCHANGED) \r\n&gt;               =  SYS.ODCICONST.INDEXKEYCHANGED) ) OR\r\n&gt;          (BITAND( ENV.ENVFLAGS, SYS.ODCICONST.ROWMIGRATION)\r\n&gt;               &lt;&gt; SYS.ODCICONST.ROWMIGRATION) ) THEN\r\n&gt;       IF (RID IS NOT NULL) THEN\r\n&gt;         STMT := 'delete from '||TOPOLOGY||'_relation$ where  ' ||\r\n498c501\r\n&lt;         EXECUTE IMMEDIATE stmt USING feature_L_id,  feature_id;\r\n---\r\n&gt;         EXECUTE IMMEDIATE STMT USING FEATURE_L_ID,  FEATURE_ID;\r\n502,505c505,508\r\n&lt;     -- PARTITION OR NON PARTITION CASE\r\n&lt;     IF (ia.IndexPartition IS NULL ) THEN\r\n&lt;       -- insert the rowid, feature id into the index table\r\n&lt;       stmt := 'select SDO_INDEX_TABLE from mdsys.all_sdo_index_metadata ' ||\r\n---\r\n&gt;     \r\n&gt;     IF (IA.INDEXPARTITION IS NULL ) THEN\r\n&gt;       \r\n&gt;       STMT := 'select SDO_INDEX_TABLE from mdsys.all_sdo_index_metadata ' ||\r\n508c511\r\n&lt;       EXECUTE IMMEDIATE stmt INTO idx_tab USING ia.IndexSchema, ia.IndexName;\r\n---\r\n&gt;       EXECUTE IMMEDIATE STMT INTO IDX_TAB USING IA.INDEXSCHEMA, IA.INDEXNAME;\r\n510c513\r\n&lt;       stmt := 'select SDO_INDEX_TABLE from mdsys.all_sdo_index_metadata ' ||\r\n---\r\n&gt;       STMT := 'select SDO_INDEX_TABLE from mdsys.all_sdo_index_metadata ' ||\r\n514,515c517,518\r\n&lt;       EXECUTE IMMEDIATE stmt INTO idx_tab USING\r\n&lt;         ia.IndexSchema, ia.IndexName, ia.IndexPartition;\r\n---\r\n&gt;       EXECUTE IMMEDIATE STMT INTO IDX_TAB USING\r\n&gt;         IA.INDEXSCHEMA, IA.INDEXNAME, IA.INDEXPARTITION;\r\n518,528c521\r\n&lt;     \/* see if this tg_is is referred to by any other layer in the relation\r\n&lt;        table for each parent layer that has this layer as the child layer\r\n&lt;        count the rows in relation tables pointing to this tg_id\r\n&lt;        if count &gt; 0 then this violates the hierarchical constraint *\/\r\n&lt;     -- do  this only if this is not a row migration case\r\n&lt;     IF ( ( (bitand( env.EnvFlags, SYS.ODCIConst.RowMigration)\r\n&lt;               = SYS.ODCIConst.RowMigration) AND\r\n&lt;            (bitand( env.EnvFlags, SYS.ODCIConst.IndexKeyChanged)\r\n&lt;               = SYS.ODCIConst.IndexKeyChanged) ) OR\r\n&lt;          (bitand( env.EnvFlags, SYS.ODCIConst.RowMigration)\r\n&lt;               &lt;&gt; SYS.ODCIConst.RowMigration) ) THEN\r\n---\r\n&gt;     \r\n530,531c523,534\r\n&lt;       IF (rid IS NOT NULL) THEN\r\n&lt;         EXECUTE IMMEDIATE\r\n---\r\n&gt; \r\n&gt; \r\n&gt;     \r\n&gt;     IF ( ( (BITAND( ENV.ENVFLAGS, SYS.ODCICONST.ROWMIGRATION)\r\n&gt;               = SYS.ODCICONST.ROWMIGRATION) AND\r\n&gt;            (BITAND( ENV.ENVFLAGS, SYS.ODCICONST.INDEXKEYCHANGED)\r\n&gt;               = SYS.ODCICONST.INDEXKEYCHANGED) ) OR\r\n&gt;          (BITAND( ENV.ENVFLAGS, SYS.ODCICONST.ROWMIGRATION)\r\n&gt;               &lt;&gt; SYS.ODCICONST.ROWMIGRATION) ) THEN\r\n&gt; \r\n&gt;       IF (RID IS NOT NULL) THEN\r\n&gt;         EXECUTE IMMEDIATE \r\n533,534c536,537\r\n&lt;           '(a '||topology||'_REL_LID$ ) *\/   count(*) ' ||\r\n&lt;           'from mdsys.user_sdo_topo_info b, ' || topology || '_RELATION$ a ' ||\r\n---\r\n&gt;           '(a '||TOPOLOGY||'_REL_LID$ ) *\/   count(*) ' ||\r\n&gt;           'from mdsys.user_sdo_topo_info b, ' || TOPOLOGY || '_RELATION$ a ' ||\r\n539,541c542,544\r\n&lt;         INTO cnt USING oldval.topology_id, abs(oldval.tg_layer_id), oldval.tg_id;\r\n&lt; \r\n&lt;         IF (cnt &gt; 0)  THEN\r\n---\r\n&gt;         INTO CNT USING OLDVAL.TOPOLOGY_ID, ABS(OLDVAL.TG_LAYER_ID), OLDVAL.TG_ID; \r\n&gt;         \r\n&gt;         IF (CNT &gt; 0)  THEN \r\n543,549c546,552\r\n&lt;             \/* this is hierarchical case *\/\r\n&lt;             \/* setup the variables for WM check  bug 9206217*\/\r\n&lt;             isVersioned := 0;\r\n&lt;             ver_status := NULL;\r\n&lt;             idx_columns := ia.IndexCols;\r\n&lt;             table_name := idx_columns(1).TableName;\r\n&lt;             table_name := substr(table_name, 1, length(table_name)-3);\r\n---\r\n&gt;             \r\n&gt;             \r\n&gt;             ISVERSIONED := 0;\r\n&gt;             VER_STATUS := NULL;\r\n&gt;             IDX_COLUMNS := IA.INDEXCOLS;\r\n&gt;             TABLE_NAME := IDX_COLUMNS(1).TABLENAME;\r\n&gt;             TABLE_NAME := SUBSTR(TABLE_NAME, 1, LENGTH(TABLE_NAME)-3);\r\n554,555c557,558\r\n&lt;             INTO isVersioned\r\n&lt;             USING idx_columns(1).tableschema, table_name;\r\n---\r\n&gt;             INTO ISVERSIONED\r\n&gt;             USING IDX_COLUMNS(1).TABLESCHEMA, TABLE_NAME;\r\n557c560\r\n&lt;             IF (isVersioned &gt; 0)  THEN\r\n---\r\n&gt;             IF (ISVERSIONED &gt; 0)  THEN\r\n562c565\r\n&lt;                 INTO ver_status USING idx_columns(1).tableschema, table_name;\r\n---\r\n&gt;                 INTO VER_STATUS USING IDX_COLUMNS(1).TABLESCHEMA, TABLE_NAME;\r\n564,565c567,568\r\n&lt;                 \/* need more checks if this is version enabled topology *\/\r\n&lt;                 EXECUTE IMMEDIATE\r\n---\r\n&gt;                 \r\n&gt;                 EXECUTE IMMEDIATE \r\n568c571\r\n&lt;                 INTO old_sp;\r\n---\r\n&gt;                 INTO OLD_SP;\r\n569a573,575\r\n&gt;                 EXECUTE IMMEDIATE \r\n&gt;                   'select wmsys.lt.getworkspace from SYS.DUAL' INTO OLD_WS;\r\n&gt;        \r\n571,574c577\r\n&lt;                   'select wmsys.lt.getworkspace from SYS.DUAL' INTO old_ws;\r\n&lt; \r\n&lt;                 EXECUTE IMMEDIATE\r\n&lt;                   'select parent_workspace, parent_savepoint' ||\r\n---\r\n&gt;                   'select parent_workspace, parent_savepoint' || \r\n576,577c579,580\r\n&lt;                   ' where workspace = dbms_wm.getworkspace '\r\n&lt;                 INTO parent_ws, parent_sp;\r\n---\r\n&gt;                   ' where workspace = dbms_wm.getworkspace ' \r\n&gt;                 INTO PARENT_WS, PARENT_SP;\r\n579c582\r\n&lt;                 IF (parent_sp IS NOT NULL) THEN\r\n---\r\n&gt;                 IF (PARENT_SP IS NOT NULL) THEN\r\n583c586\r\n&lt;                   USING parent_ws, parent_sp;\r\n---\r\n&gt;                   USING PARENT_WS, PARENT_SP;\r\n586,587c589,590\r\n&lt;                 cnt := -1;\r\n&lt;                 EXECUTE IMMEDIATE 'select count(*) from ' || topology ||\r\n---\r\n&gt;                 CNT := -1;\r\n&gt;                 EXECUTE IMMEDIATE 'select count(*) from ' || TOPOLOGY ||\r\n589c592\r\n&lt;                 INTO cnt USING abs(feature_L_id), feature_id;\r\n---\r\n&gt;                 INTO CNT USING ABS(FEATURE_L_ID), FEATURE_ID;\r\n593,595c596,598\r\n&lt;                 USING  old_ws;\r\n&lt; \r\n&lt;                 IF (old_sp &lt;&gt; 'LATEST') THEN\r\n---\r\n&gt;                 USING  OLD_WS;\r\n&gt;        \r\n&gt;                 IF (OLD_SP &lt;&gt; 'LATEST') THEN\r\n598c601\r\n&lt;                   USING  old_sp;\r\n---\r\n&gt;                   USING  OLD_SP;\r\n601,602c604,605\r\n&lt;                 IF ( (cnt = 0) AND (ver_status &lt;&gt; 'DV') ) THEN\r\n&lt;                   mderr.raise_md_error('MD', 'SDO', -13199,\r\n---\r\n&gt;                 IF ( (CNT = 0) AND (VER_STATUS &lt;&gt; 'DV') ) THEN\r\n&gt;                   MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n604c607\r\n&lt;                   RETURN SYS.ODCIConst.Error;\r\n---\r\n&gt;                   RETURN SYS.ODCICONST.ERROR;\r\n608,609c611,612\r\n&lt;               BEGIN\r\n&lt;                 mderr.raise_md_error('MD', 'SDO', -13199,\r\n---\r\n&gt;               BEGIN \r\n&gt;                 MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n611c614\r\n&lt;                 RETURN SYS.ODCIConst.Error;\r\n---\r\n&gt;                 RETURN SYS.ODCICONST.ERROR;\r\n613c616\r\n&lt;             END IF;  \/* isVersioned *\/\r\n---\r\n&gt;             END IF;  \r\n615,616c618,619\r\n&lt;         END IF;  \/* cnt &gt; 0 *\/\r\n&lt;       END IF;  \/* RID is not NULL *\/\r\n---\r\n&gt;         END IF;  \r\n&gt;       END IF;  \r\n619,622c622,625\r\n&lt;     -- delete from the index table\r\n&lt;     IF (rid is not NULL) THEN\r\n&lt;       idx_tab := ia.IndexSchema||'.'||idx_tab;\r\n&lt;       stmt := 'DELETE '|| SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(idx_tab) ||\r\n---\r\n&gt;     \r\n&gt;     IF (RID IS NOT NULL) THEN\r\n&gt;       IDX_TAB := IA.INDEXSCHEMA||'.'||IDX_TAB;\r\n&gt;       STMT := 'DELETE '|| SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(IDX_TAB) || \r\n625c628\r\n&lt;       EXECUTE IMMEDIATE stmt USING feature_id, rid;\r\n---\r\n&gt;       EXECUTE IMMEDIATE STMT USING FEATURE_ID, RID;\r\n628c631\r\n&lt;     RETURN SYS.ODCIConst.Success;\r\n---\r\n&gt;     RETURN SYS.ODCICONST.SUCCESS;\r\n631,636c634,639\r\n&lt;   FUNCTION isversioned(topology IN VARCHAR2) return integer IS\r\n&lt;     topo_name varchar2(130);\r\n&lt;     owner varchar2(130);\r\n&lt;     stmt varchar2(200);\r\n&lt;     versionedTopology integer;\r\n&lt;     owmInstalled integer;\r\n---\r\n&gt;   FUNCTION ISVERSIONED(TOPOLOGY IN VARCHAR2) RETURN INTEGER IS\r\n&gt;     TOPO_NAME VARCHAR2(130);\r\n&gt;     OWNER VARCHAR2(130);\r\n&gt;     STMT VARCHAR2(200);\r\n&gt;     VERSIONEDTOPOLOGY INTEGER;\r\n&gt;     OWMINSTALLED INTEGER;\r\n638,640c641,643\r\n&lt;     mdsys.SDO_TOPO_METADATA.extract_topo_owner(\r\n&lt;       nls_upper(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(topology)), owner,topo_name);\r\n&lt;     versionedTopology := 0;\r\n---\r\n&gt;     MDSYS.SDO_TOPO_METADATA.EXTRACT_TOPO_OWNER(\r\n&gt;       NLS_UPPER(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TOPOLOGY)), OWNER,TOPO_NAME);\r\n&gt;     VERSIONEDTOPOLOGY := 0;\r\n642c645\r\n&lt;     SELECT MDSYS.SDO_OWM_INSTALLED INTO owmInstalled FROM SYS.DUAL;\r\n---\r\n&gt;     SELECT MDSYS.SDO_OWM_INSTALLED INTO OWMINSTALLED FROM SYS.DUAL;\r\n644,645c647,648\r\n&lt;     IF ( owmInstalled &gt; 0 ) THEN\r\n&lt;       stmt := '  select count(*) ' ||\r\n---\r\n&gt;     IF ( OWMINSTALLED &gt; 0 ) THEN\r\n&gt;       STMT := '  select count(*) ' ||\r\n648,649c651,652\r\n&lt;       EXECUTE IMMEDIATE stmt INTO versionedTopology\r\n&lt;         USING owner, SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(topo_name) || '_NODE$';\r\n---\r\n&gt;       EXECUTE IMMEDIATE STMT INTO VERSIONEDTOPOLOGY\r\n&gt;         USING OWNER, SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(TOPO_NAME) || '_NODE$';\r\n652c655\r\n&lt;     RETURN versionedTopology;\r\n---\r\n&gt;     RETURN VERSIONEDTOPOLOGY;\r\n655,656c658\r\n&lt; END sdo_tpidx;\r\n&lt; \r\n---\r\n&gt; END SDO_TPIDX;\r\n<\/pre>\n<div id=\"MDSYS.SDO_TRKR.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_TRKR &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">12c12\r\n&lt;     PARAMETERS (\r\n---\r\n&gt;     PARAMETERS(\r\n29c29\r\n&lt;     PARAMETERS (\r\n---\r\n&gt;     PARAMETERS(\r\n35,36c35,36\r\n&lt;   FUNCTION OTLOCINREGION(LONGITUDE IN NUMBER, \r\n&lt;                          LATITUDE IN NUMBER, \r\n---\r\n&gt;   FUNCTION OTLOCINREGION(LONGITUDE IN NUMBER,\r\n&gt;                          LATITUDE IN NUMBER,\r\n44c44\r\n&lt;     PARAMETERS (\r\n---\r\n&gt;     PARAMETERS(\r\n58c58\r\n&lt;                               NUM_LOC_QUEUES IN INTEGER); \r\n---\r\n&gt;                               NUM_LOC_QUEUES IN INTEGER);\r\n82,89c82,102\r\n&lt;   PROCEDURE LOG_MSG (LOG_TABLE IN VARCHAR2,\r\n&lt;                       MSG_LVL  IN VARCHAR2,\r\n&lt;                       MSG      IN VARCHAR2)\r\n&lt;   AS\r\n&lt;     STMT VARCHAR2(1000); \r\n&lt;   BEGIN   \r\n&lt;     STMT := 'INSERT INTO ' || LOG_TABLE || 'VALUES (:1, :2, :3)';\r\n&lt;     EXECUTE IMMEDIATE STMT USING MSG_LVL, MSG, CURRENT_TIMESTAMP();\r\n---\r\n&gt;   PROCEDURE LOG_MSG(LOG_TABLE IN VARCHAR2,\r\n&gt;                     MSG_LVL   IN VARCHAR2,\r\n&gt;                     MSG       IN VARCHAR2)\r\n&gt;   AS\r\n&gt;     STMT VARCHAR2(1000);\r\n&gt;   BEGIN\r\n&gt;     STMT := 'INSERT INTO ' || LOG_TABLE ||\r\n&gt;             ' VALUES(:1, :2, :3)';\r\n&gt; \r\n&gt;     BEGIN\r\n&gt;       EXECUTE IMMEDIATE STMT USING MSG_LVL, MSG, CURRENT_TIMESTAMP();\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           RAISE;\r\n&gt;     END;\r\n93c106,107\r\n&lt;   PROCEDURE LOG_DEBUG(TRACKING_SET_NAME IN VARCHAR2, MSG IN VARCHAR2)\r\n---\r\n&gt;   PROCEDURE LOG_DEBUG(TRACKING_SET_NAME IN VARCHAR2,\r\n&gt;                       MSG IN VARCHAR2)\r\n97c111,116\r\n&lt;     LOG_TABLE := \r\n---\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     LOG_TABLE :=\r\n102c121,122\r\n&lt;   PROCEDURE LOG_ERROR(LOG_TABLE IN VARCHAR2, MSG IN VARCHAR2)\r\n---\r\n&gt;   PROCEDURE LOG_ERROR(LOG_TABLE IN VARCHAR2,\r\n&gt;                       MSG IN VARCHAR2)\r\n108c128,129\r\n&lt;   PROCEDURE LOG_INFO(LOG_TABLE IN VARCHAR2, MSG IN VARCHAR2)\r\n---\r\n&gt;   PROCEDURE LOG_INFO(LOG_TABLE IN VARCHAR2,\r\n&gt;                      MSG IN VARCHAR2)\r\n113c134\r\n&lt;    \r\n---\r\n&gt; \r\n119c140\r\n&lt;   PROCEDURE PERFORM_PREPROCESSING(TRACKING_SET_NAME IN VARCHAR2, \r\n---\r\n&gt;   PROCEDURE PERFORM_PREPROCESSING(TRACKING_SET_NAME IN VARCHAR2,\r\n126c147\r\n&lt;     TABLE_NAME_NA VARCHAR2(128);       \r\n---\r\n&gt;     TABLE_NAME_NA VARCHAR2(128);     \r\n136a158,159\r\n&gt;     QUEUE_ALREADY_EXISTS EXCEPTION;\r\n&gt;     PRAGMA EXCEPTION_INIT(QUEUE_ALREADY_EXISTS, -24006);\r\n138c161,166\r\n&lt;     TABLE_NAME := \r\n---\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     TABLE_NAME :=\r\n145,152c173,188\r\n&lt;       EXECUTE IMMEDIATE STMT; \r\n&lt;     EXCEPTION\r\n&lt;       WHEN TABLE_NOT_FOUND THEN NULL;\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         SYS.DBMS_SYSTEM.KSDWRT(\r\n&lt;           SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&lt;           'EXCEPTION[sdo_trkr(' || STMT || ')]: ' || SQLERRM); \r\n&lt;         RAISE;\r\n---\r\n&gt;       EXECUTE IMMEDIATE STMT;\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN TABLE_NOT_FOUND THEN\r\n&gt;           NULL;\r\n&gt; \r\n&gt;         WHEN QUEUE_ALREADY_EXISTS THEN\r\n&gt;           NULL;\r\n&gt; \r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')2]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           RAISE;\r\n154,157c190,195\r\n&lt;     \r\n&lt;     BEGIN  \r\n&lt;       STMT := 'CREATE TABLE ' || TABLE_NAME || \r\n&lt;               '(message_level varchar2(1), message varchar2(512), ts TIMESTAMP WITH TIME ZONE)';\r\n---\r\n&gt; \r\n&gt;     BEGIN\r\n&gt;       STMT := 'CREATE TABLE ' || TABLE_NAME || '(' ||\r\n&gt;               'message_level varchar2(1), ' ||\r\n&gt;               'message varchar2(512), ' ||\r\n&gt;               'ts TIMESTAMP WITH TIME ZONE)';\r\n159,164c197,205\r\n&lt;     EXCEPTION\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         SYS.DBMS_SYSTEM.KSDWRT(\r\n&lt;           SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&lt;           'EXCEPTION[sdo_trkr(' || STMT || ')]: ' || SQLERRM); \r\n&lt;         RAISE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')3]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           RAISE;\r\n168c209\r\n&lt;        \r\n---\r\n&gt; \r\n173,178c214,227\r\n&lt;       EXECUTE IMMEDIATE STMT; \r\n&lt;     EXCEPTION\r\n&lt;       WHEN TABLE_NOT_FOUND THEN NULL;\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt;       EXECUTE IMMEDIATE STMT;\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN TABLE_NOT_FOUND THEN\r\n&gt;           NULL;\r\n&gt; \r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')4]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n180,183c229,237\r\n&lt;     \r\n&lt;     BEGIN  \r\n&lt;       STMT := 'CREATE TABLE ' || TABLE_NAME || \r\n&lt;                 '(object_id NUMBER, region_id NUMBER, time TIMESTAMP, x NUMBER, y NUMBER, state VARCHAR2(8))';\r\n---\r\n&gt; \r\n&gt;     BEGIN\r\n&gt;       STMT := 'CREATE TABLE ' || TABLE_NAME || '(' ||\r\n&gt;                 'object_id NUMBER, ' ||\r\n&gt;                 'region_id NUMBER, ' ||\r\n&gt;                 'time TIMESTAMP, ' ||\r\n&gt;                 'x NUMBER, ' ||\r\n&gt;                 'y NUMBER, ' ||\r\n&gt;                 'state VARCHAR2(8))';\r\n185,189c239,250\r\n&lt;     EXCEPTION\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, \r\n&lt;           'CREATE TABLE ' || TABLE_NAME || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')5]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt; \r\n&gt;           LOG_ERROR(LOG_TABLE,\r\n&gt;             'CREATE TABLE ' || TABLE_NAME || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n196,200c257,270\r\n&lt;     EXCEPTION\r\n&lt;       WHEN TABLE_NOT_FOUND THEN NULL;\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN TABLE_NOT_FOUND THEN\r\n&gt;           NULL;\r\n&gt; \r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')6]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt; \r\n&gt;           LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n204,205c274,277\r\n&lt;       STMT := 'CREATE TABLE '|| TABLE_NAME || '(object_id NUMBER,' || \r\n&lt;               ' time TIMESTAMP, trajectory MDSYS.SDO_GEOMETRY)';\r\n---\r\n&gt;       STMT := 'CREATE TABLE '|| TABLE_NAME || '(' ||\r\n&gt;               'object_id NUMBER, ' ||\r\n&gt;               'time TIMESTAMP, ' ||\r\n&gt;               'trajectory MDSYS.SDO_GEOMETRY)';\r\n207,211c279,290\r\n&lt;     EXCEPTION\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, \r\n&lt;           'CREATE TABLE ' || TABLE_NAME || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')7]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt; \r\n&gt;           LOG_ERROR(LOG_TABLE,\r\n&gt;             'CREATE TABLE ' || TABLE_NAME || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n214c293\r\n&lt;     TABLE_NAME := \r\n---\r\n&gt;     TABLE_NAME :=\r\n219,223c298,311\r\n&lt;     EXCEPTION\r\n&lt;       WHEN TABLE_NOT_FOUND THEN NULL;\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN TABLE_NOT_FOUND THEN\r\n&gt;           NULL;\r\n&gt; \r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')8]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt; \r\n&gt;           LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n226c314\r\n&lt;     CONSTRAINT_NAME := \r\n---\r\n&gt;     CONSTRAINT_NAME :=\r\n230,232c318,321\r\n&lt;       STMT := 'CREATE TABLE ' || TABLE_NAME ||\r\n&lt;                 '(region_id NUMBER, geometry MDSYS.SDO_GEOMETRY, CONSTRAINT ' ||\r\n&lt;                 CONSTRAINT_NAME || ' PRIMARY KEY(region_id))';\r\n---\r\n&gt;       STMT := 'CREATE TABLE ' || TABLE_NAME || '(' ||\r\n&gt;                 'region_id NUMBER, ' ||\r\n&gt;                 'geometry MDSYS.SDO_GEOMETRY, ' ||\r\n&gt;                 'CONSTRAINT ' || CONSTRAINT_NAME || ' PRIMARY KEY(region_id))';\r\n234,238c323,333\r\n&lt;     EXCEPTION\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, \r\n&lt;           'CREATE TABLE ' || TABLE_NAME || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')9]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           LOG_ERROR(LOG_TABLE,\r\n&gt;             'CREATE TABLE ' || TABLE_NAME || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n241c336\r\n&lt;     TABLE_NAME_NA := \r\n---\r\n&gt;     TABLE_NAME_NA :=\r\n246,255c341,356\r\n&lt;       STMT := 'DELETE FROM mdsys.user_sdo_geom_metadata WHERE ' \r\n&lt;                || 'table_name = NLS_UPPER(:1)';\r\n&lt;      EXECUTE IMMEDIATE STMT USING TABLE_NAME_NA;\r\n&lt;     EXCEPTION\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, \r\n&lt;           'DELETE FROM user_sdo_geom_metadata: ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n&lt;     END;    \r\n&lt;   \r\n---\r\n&gt;       STMT := 'DELETE FROM mdsys.user_sdo_geom_metadata ' ||\r\n&gt;               'WHERE table_name = NLS_UPPER(:1)';\r\n&gt;       EXECUTE IMMEDIATE STMT USING TABLE_NAME_NA;\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')10]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           LOG_ERROR(LOG_TABLE,\r\n&gt;             'DELETE FROM user_sdo_geom_metadata: ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n&gt;     END;\r\n&gt; \r\n258,259c359,360\r\n&lt;                  MDSYS.SDO_DIM_ELEMENT('X', -180, 180, 0.5), \r\n&lt;                  MDSYS.SDO_DIM_ELEMENT('Y', -90, 90, 0.5));    \r\n---\r\n&gt;                  MDSYS.SDO_DIM_ELEMENT('X', -180, 180, 0.5),\r\n&gt;                  MDSYS.SDO_DIM_ELEMENT('Y', -90, 90, 0.5));\r\n265c366,367\r\n&lt;       STMT := 'INSERT INTO MDSYS.USER_SDO_GEOM_METADATA VALUES (:1, :2, :3, :4)';\r\n---\r\n&gt;       STMT := 'INSERT INTO MDSYS.USER_SDO_GEOM_METADATA ' ||\r\n&gt;               'VALUES(:1, :2, :3, :4)';\r\n267,272c369,380\r\n&lt;         NLS_UPPER(COLUMN_NAME), DIMINFO, SRID;\r\n&lt;     EXCEPTION\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, \r\n&lt;           'INSERT INTO user_sdo_geom_metadata: ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt;         COLUMN_NAME, DIMINFO, SRID;\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')11]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           LOG_ERROR(LOG_TABLE,\r\n&gt;             'INSERT INTO user_sdo_geom_metadata: ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n274c382\r\n&lt;     \r\n---\r\n&gt; \r\n279,283c387,398\r\n&lt;     EXCEPTION\r\n&lt;       WHEN INDEX_NOT_FOUND THEN NULL;\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&lt;                                'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')6]: ' || SQLERRM); RAISE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN INDEX_NOT_FOUND THEN\r\n&gt;           NULL;\r\n&gt; \r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;                                  'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')12]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           RAISE;\r\n287,288c402,404\r\n&lt;       STMT := 'CREATE INDEX ' || IDX_NAME || ' ON ' || TABLE_NAME ||\r\n&lt;               '(geometry) indextype is mdsys.spatial_index_v2';\r\n---\r\n&gt;       STMT := 'CREATE INDEX ' || IDX_NAME || ' ' ||\r\n&gt;               'ON ' || TABLE_NAME || '(geometry) ' ||\r\n&gt;               'indextype is mdsys.spatial_index_v2';\r\n290,294c406,416\r\n&lt;     EXCEPTION\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, \r\n&lt;           'CREATE INDEX ' || IDX_NAME ||': ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')13]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           LOG_ERROR(LOG_TABLE,\r\n&gt;             'CREATE INDEX ' || IDX_NAME ||': ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n301,305c423,435\r\n&lt;     EXCEPTION\r\n&lt;       WHEN TABLE_NOT_FOUND THEN NULL;\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN TABLE_NOT_FOUND THEN\r\n&gt;           NULL;\r\n&gt; \r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')14]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n309c439\r\n&lt;       CONSTRAINT_NAME := \r\n---\r\n&gt;       CONSTRAINT_NAME :=\r\n312,314c442,447\r\n&lt;       STMT := 'CREATE TABLE ' || TABLE_NAME || '(object_id NUMBER, ' || \r\n&lt;               ' region_id  NUMBER, queue_no NUMBER, alert_when VARCHAR2(2), CONSTRAINT ' ||\r\n&lt;               CONSTRAINT_NAME || ' PRIMARY KEY(object_id, region_id))';\r\n---\r\n&gt;       STMT := 'CREATE TABLE ' || TABLE_NAME || '(' ||\r\n&gt;               'object_id NUMBER, ' ||\r\n&gt;               'region_id  NUMBER, ' ||\r\n&gt;               'queue_no NUMBER, ' ||\r\n&gt;               'alert_when VARCHAR2(2), ' ||\r\n&gt;               'CONSTRAINT ' || CONSTRAINT_NAME || ' PRIMARY KEY(object_id, region_id))';\r\n316,320c449,459\r\n&lt;     EXCEPTION\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, \r\n&lt;           'CREATE TABLE ' || TABLE_NAME || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')15]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           LOG_ERROR(LOG_TABLE,\r\n&gt;             'CREATE TABLE ' || TABLE_NAME || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n323c462\r\n&lt;     TABLE_NAME := \r\n---\r\n&gt;     TABLE_NAME :=\r\n328,332c467,479\r\n&lt;     EXCEPTION\r\n&lt;       WHEN TABLE_NOT_FOUND THEN NULL;\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN TABLE_NOT_FOUND THEN\r\n&gt;           NULL;\r\n&gt; \r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')16]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n336,337c483,485\r\n&lt;       STMT := 'CREATE TABLE ' || TABLE_NAME || \r\n&lt;                 '(num_loc_queues NUMBER, num_trkr_queues NUMBER)';\r\n---\r\n&gt;       STMT := 'CREATE TABLE ' || TABLE_NAME || '(' ||\r\n&gt;               'num_loc_queues NUMBER, ' ||\r\n&gt;               'num_trkr_queues NUMBER)';\r\n339c487,489\r\n&lt;       STMT := 'INSERT INTO ' || TABLE_NAME || ' VALUES(:1, :2)';\r\n---\r\n&gt; \r\n&gt;       STMT := 'INSERT INTO ' || TABLE_NAME ||\r\n&gt;               ' VALUES(:1, :2)';\r\n342,346c492,502\r\n&lt;     EXCEPTION\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, \r\n&lt;           'CREATE TABLE ' || TABLE_NAME || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')17]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           LOG_ERROR(LOG_TABLE,\r\n&gt;             'CREATE TABLE ' || TABLE_NAME || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n351c507\r\n&lt;     IF (ERROR_FLG) THEN \r\n---\r\n&gt;     IF (ERROR_FLG) THEN\r\n354,355c510,511\r\n&lt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n&lt;        'Errors found in sdo_trkr.create_tracking_set: preprocessing');\r\n---\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Errors found in sdo_trkr.perform_preprocessing: preprocessing');\r\n369c525,530\r\n&lt;     LOG_TABLE := \r\n---\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     LOG_TABLE :=\r\n378,382c539,551\r\n&lt;     EXCEPTION\r\n&lt;       WHEN TABLE_NOT_FOUND THEN NULL;\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN TABLE_NOT_FOUND THEN\r\n&gt;           NULL;\r\n&gt; \r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')18]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n390,394c559,571\r\n&lt;     EXCEPTION\r\n&lt;       WHEN TABLE_NOT_FOUND THEN NULL;\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN TABLE_NOT_FOUND THEN\r\n&gt;           NULL;\r\n&gt; \r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')19]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n402,406c579,591\r\n&lt;     EXCEPTION\r\n&lt;       WHEN TABLE_NOT_FOUND THEN NULL;\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN TABLE_NOT_FOUND THEN\r\n&gt;           NULL;\r\n&gt; \r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')20]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n414,418c599,611\r\n&lt;     EXCEPTION\r\n&lt;       WHEN TABLE_NOT_FOUND THEN NULL;\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN TABLE_NOT_FOUND THEN\r\n&gt;           NULL;\r\n&gt; \r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')21]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n420c613\r\n&lt;     \r\n---\r\n&gt; \r\n426,430c619,631\r\n&lt;     EXCEPTION\r\n&lt;       WHEN TABLE_NOT_FOUND THEN NULL;\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN TABLE_NOT_FOUND THEN\r\n&gt;           NULL;\r\n&gt; \r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')22]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n438,442c639,651\r\n&lt;     EXCEPTION\r\n&lt;       WHEN TABLE_NOT_FOUND THEN NULL;\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN TABLE_NOT_FOUND THEN\r\n&gt;           NULL;\r\n&gt; \r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')23]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           LOG_ERROR(LOG_TABLE, STMT || ': ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;           ERROR_FLG := TRUE;\r\n446,447c655,656\r\n&lt;     IF (ERROR_FLG) THEN \r\n&lt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n---\r\n&gt;     IF (ERROR_FLG) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n451c660\r\n&lt;   \r\n---\r\n&gt; \r\n463c672,677\r\n&lt;     LOG_TABLE := \r\n---\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     LOG_TABLE :=\r\n469c683\r\n&lt;       TQ_NAME := \r\n---\r\n&gt;       TQ_NAME :=\r\n471,473d684\r\n&lt;       PQ_NAME := \r\n&lt;         SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || '_proc_q_' || I);\r\n&lt; \r\n474a686,688\r\n&gt; \r\n&gt;       PQ_NAME :=\r\n&gt;         SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || '_proc_q_' || I);\r\n482c696\r\n&lt;       LQ_NAME := \r\n---\r\n&gt;       LQ_NAME :=\r\n484d697\r\n&lt; \r\n490c703\r\n&lt;     NQ_NAME := \r\n---\r\n&gt;     NQ_NAME :=\r\n494,497d706\r\n&lt;   EXCEPTION\r\n&lt;     WHEN OTHERS THEN\r\n&lt;       LOG_ERROR(LOG_TABLE, 'Start queues: ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;       STOP_QUEUES(TRACKING_SET_NAME, NUM_TRKR_QUEUES, NUM_LOC_QUEUES);\r\n499,500c708,717\r\n&lt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n&lt;        'Errors found in sdo_trkr.start_tracking_set: start queues');\r\n---\r\n&gt;     EXCEPTION\r\n&gt;       WHEN OTHERS THEN\r\n&gt;          SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;            'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')24]: ' || SQLERRM);\r\n&gt; \r\n&gt;         LOG_ERROR(LOG_TABLE, 'Start queues: ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;         STOP_QUEUES(TRACKING_SET_NAME, NUM_TRKR_QUEUES, NUM_LOC_QUEUES);\r\n&gt; \r\n&gt;         MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;           'Errors found in sdo_trkr.start_tracking_set: start queues');\r\n511a729,730\r\n&gt;     QUEUE_EXISTS EXCEPTION;\r\n&gt;     PRAGMA       EXCEPTION_INIT(QUEUE_EXISTS, -24001);\r\n513c732,737\r\n&lt;     LOG_TABLE := \r\n---\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     LOG_TABLE :=\r\n520c744\r\n&lt;     \r\n---\r\n&gt; \r\n523c747\r\n&lt;       T_QT := \r\n---\r\n&gt;       T_QT :=\r\n525c749\r\n&lt;       P_QT := \r\n---\r\n&gt;       P_QT :=\r\n533c757\r\n&lt;   \r\n---\r\n&gt; \r\n547c771\r\n&lt;     \r\n---\r\n&gt; \r\n553c777\r\n&lt;     N_QT := \r\n---\r\n&gt;     N_QT :=\r\n562a787,789\r\n&gt;     WHEN QUEUE_EXISTS THEN\r\n&gt;       NULL;\r\n&gt; \r\n563a791,793\r\n&gt;       SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;         'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')25]: ' || SQLERRM);\r\n&gt; \r\n567c797\r\n&lt;       PERFORM_POSTPROCESSING(TRACKING_SET_NAME); \r\n---\r\n&gt;       PERFORM_POSTPROCESSING(TRACKING_SET_NAME);\r\n569,570c799,800\r\n&lt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n&lt;        'Errors found in sdo_trkr.create_tracking_set: create queue tables');\r\n---\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Errors found in sdo_trkr.create_queue_tables: create queue tables');\r\n585a816,817\r\n&gt;     QUEUE_ALREADY_EXISTS EXCEPTION;\r\n&gt;     PRAGMA EXCEPTION_INIT(QUEUE_ALREADY_EXISTS, -24006);\r\n587c819,824\r\n&lt;     LOG_TABLE := \r\n---\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     LOG_TABLE :=\r\n595c832\r\n&lt;       T_Q := \r\n---\r\n&gt;       T_Q :=\r\n638a876,878\r\n&gt;     WHEN QUEUE_ALREADY_EXISTS THEN\r\n&gt;       NULL;\r\n&gt; \r\n639a880,882\r\n&gt;       SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;         'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')26]: ' || SQLERRM);\r\n&gt; \r\n643c886\r\n&lt;       PERFORM_POSTPROCESSING(TRACKING_SET_NAME); \r\n---\r\n&gt;       PERFORM_POSTPROCESSING(TRACKING_SET_NAME);\r\n645c888\r\n&lt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n---\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n658c901\r\n&lt;     N_Q         VARCHAR2(130);    \r\n---\r\n&gt;     N_Q         VARCHAR2(130);\r\n660c903,908\r\n&lt;     LOG_TABLE := \r\n---\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     LOG_TABLE :=\r\n662c910\r\n&lt;     \r\n---\r\n&gt; \r\n675,678c923,929\r\n&lt;     EXCEPTION\r\n&lt;       WHEN OTHERS THEN \r\n&lt;         LOG_ERROR(LOG_TABLE, 'Error dropping tracker and process queues');\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')27]: ' || SQLERRM);\r\n&gt;           LOG_ERROR(LOG_TABLE, 'Error dropping tracker and process queues');\r\n&gt;           ERROR_FLG := TRUE;\r\n690,693c941,947\r\n&lt;     EXCEPTION\r\n&lt;       WHEN OTHERS THEN \r\n&lt;         LOG_ERROR(LOG_TABLE, 'Error dropping location queues');\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')28]: ' || SQLERRM);\r\n&gt;           LOG_ERROR(LOG_TABLE, 'Error dropping location queues');\r\n&gt;           ERROR_FLG := TRUE;\r\n698c952\r\n&lt;     BEGIN \r\n---\r\n&gt;     BEGIN\r\n702,705c956,962\r\n&lt;     EXCEPTION\r\n&lt;       WHEN OTHERS THEN \r\n&lt;         LOG_ERROR(LOG_TABLE, 'Error dropping notification queue');\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')29]: ' || SQLERRM);\r\n&gt;           LOG_ERROR(LOG_TABLE, 'Error dropping notification queue');\r\n&gt;           ERROR_FLG := TRUE;\r\n709,710c966,967\r\n&lt;     IF (ERROR_FLG) THEN \r\n&lt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n---\r\n&gt;     IF (ERROR_FLG) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n726c983,988\r\n&lt;     LOG_TABLE := \r\n---\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     LOG_TABLE :=\r\n728c990\r\n&lt;     \r\n---\r\n&gt; \r\n740,743c1002,1008\r\n&lt;     EXCEPTION\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         LOG_ERROR(LOG_TABLE, 'Error dropping tracker and process queue tables');\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')30]: ' || SQLERRM);\r\n&gt;           LOG_ERROR(LOG_TABLE, 'Error dropping tracker and process queue tables');\r\n&gt;           ERROR_FLG := TRUE;\r\n755,758c1020,1026\r\n&lt;     EXCEPTION\r\n&lt;       WHEN OTHERS THEN \r\n&lt;         LOG_ERROR(LOG_TABLE, 'Error dropping location queue tables');\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')31]: ' || SQLERRM);\r\n&gt;           LOG_ERROR(LOG_TABLE, 'Error dropping location queue tables');\r\n&gt;           ERROR_FLG := TRUE;\r\n768,771c1036,1042\r\n&lt;     EXCEPTION\r\n&lt;       WHEN OTHERS THEN \r\n&lt;         LOG_ERROR(LOG_TABLE, 'Error dropping notification queue table');\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')32]: ' || SQLERRM);\r\n&gt;           LOG_ERROR(LOG_TABLE, 'Error dropping notification queue table');\r\n&gt;           ERROR_FLG := TRUE;\r\n775,776c1046,1047\r\n&lt;     IF (ERROR_FLG) THEN \r\n&lt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n---\r\n&gt;     IF (ERROR_FLG) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n791c1062,1067\r\n&lt;     LOG_TABLE := \r\n---\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     LOG_TABLE :=\r\n798a1075,1076\r\n&gt;       DBMS_AQADM.STOP_QUEUE(QUEUE_NAME =&gt; T_Q, WAIT =&gt; TRUE);\r\n&gt; \r\n801,802d1078\r\n&lt; \r\n&lt;       DBMS_AQADM.STOP_QUEUE(QUEUE_NAME =&gt; T_Q, WAIT =&gt; TRUE);\r\n846a1123,1127\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n862,863c1143,1144\r\n&lt;       IF (PAYLOAD.ARR(I).ALERT_WHEN LIKE 'T%') THEN \r\n&lt;         TABLE_NAME := \r\n---\r\n&gt;       IF (PAYLOAD.ARR(I).ALERT_WHEN LIKE 'T%') THEN\r\n&gt;         TABLE_NAME :=\r\n866,867c1147,1153\r\n&lt;         STMT := 'SELECT \/*+ RESULT_CACHE *\/ alert_when FROM ' || TABLE_NAME || \r\n&lt;                 ' WHERE object_id=:1 AND region_id=:2';\r\n---\r\n&gt;         STMT := 'SELECT \/*+ RESULT_CACHE *\/ alert_when ' ||\r\n&gt;                 'FROM ' || TABLE_NAME || ' ' ||\r\n&gt;                 'WHERE object_id = :1 AND region_id = :2';\r\n&gt; \r\n&gt;         BEGIN\r\n&gt;           EXECUTE IMMEDIATE STMT INTO ALERT\r\n&gt;             USING PAYLOAD.ARR(I).OBJECT_ID, PAYLOAD.ARR(I).REGION_ID;\r\n869,870c1155,1165\r\n&lt;         EXECUTE IMMEDIATE STMT INTO ALERT \r\n&lt;           USING PAYLOAD.ARR(I).OBJECT_ID, PAYLOAD.ARR(I).REGION_ID;\r\n---\r\n&gt;           EXCEPTION\r\n&gt;             WHEN NO_DATA_FOUND THEN\r\n&gt;               ALERT := NULL;\r\n&gt; \r\n&gt;             WHEN OTHERS THEN\r\n&gt;               SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;                 'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')33]: ' || SQLERRM);\r\n&gt;               SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;                 'EXCEPTION[' || STMT || ']');\r\n&gt;               RAISE;\r\n&gt;        END;\r\n873,875c1168,1172\r\n&lt;         IF ((ISINSIDE) AND (ALERT !='TO')) THEN\r\n&lt;           STMT := 'UPDATE ' || TABLE_NAME || ' SET alert_when=' || '''TO''' ||\r\n&lt;                   ' WHERE object_id=:1 AND region_id=:2';\r\n---\r\n&gt;         IF ((ISINSIDE) AND (ALERT != 'TO')) THEN\r\n&gt;           STMT := 'UPDATE ' || TABLE_NAME ||\r\n&gt;                   ' SET alert_when = ' || '''TO''' ||\r\n&gt;                   ' WHERE object_id = :1 ' ||\r\n&gt;                   'AND region_id = :2';\r\n877c1174,1175\r\n&lt;           EXECUTE IMMEDIATE STMT USING PAYLOAD.ARR(I).OBJECT_ID, PAYLOAD.ARR(I).REGION_ID;\r\n---\r\n&gt;           EXECUTE IMMEDIATE STMT\r\n&gt;             USING PAYLOAD.ARR(I).OBJECT_ID, PAYLOAD.ARR(I).REGION_ID;\r\n879,881c1177,1181\r\n&lt;         ELSIF ((NOT ISINSIDE) AND (ALERT !='TI')) THEN\r\n&lt;           STMT := 'UPDATE ' || TABLE_NAME || ' SET alert_when=' || '''TI''' ||\r\n&lt;                   ' WHERE object_id=:1 AND region_id=:2';\r\n---\r\n&gt;         ELSIF ((NOT ISINSIDE) AND (ALERT != 'TI')) THEN\r\n&gt;           STMT := 'UPDATE ' || TABLE_NAME ||\r\n&gt;                   ' SET alert_when = ' || '''TI''' ||\r\n&gt;                   ' WHERE object_id = :1 ' ||\r\n&gt;                   'AND region_id = :2';\r\n883c1183,1184\r\n&lt;           EXECUTE IMMEDIATE STMT USING PAYLOAD.ARR(I).OBJECT_ID, PAYLOAD.ARR(I).REGION_ID;\r\n---\r\n&gt;           EXECUTE IMMEDIATE STMT\r\n&gt;             USING PAYLOAD.ARR(I).OBJECT_ID, PAYLOAD.ARR(I).REGION_ID;\r\n893c1194\r\n&lt;       ELSE \r\n---\r\n&gt;       ELSE\r\n898c1199\r\n&lt;         PAYLOAD.ARR(I).OBJECT_ID, PAYLOAD.ARR(I).REGION_ID, PAYLOAD.ARR(I).TIME, \r\n---\r\n&gt;         PAYLOAD.ARR(I).OBJECT_ID, PAYLOAD.ARR(I).REGION_ID, PAYLOAD.ARR(I).TIME,\r\n908,913c1209,1218\r\n&lt;   EXCEPTION \r\n&lt;     WHEN TIMEOUT_OR_EOF THEN NULL;\r\n&lt;     WHEN OTHERS THEN\r\n&lt;       LOG_TABLE := \r\n&lt;         SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || '_tracker_log');\r\n&lt;       LOG_ERROR(LOG_TABLE, 'Error processing process messages: '|| SUBSTR(SQLERRM, 1, 256));\r\n---\r\n&gt; \r\n&gt;     EXCEPTION\r\n&gt;       WHEN TIMEOUT_OR_EOF THEN\r\n&gt;         NULL;\r\n&gt;       WHEN OTHERS THEN\r\n&gt;         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;           'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')34]: ' || SQLERRM);\r\n&gt;         LOG_TABLE :=\r\n&gt;           SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || '_tracker_log');\r\n&gt;         LOG_ERROR(LOG_TABLE, 'Error processing process messages: '|| SUBSTR(SQLERRM, 1, 256));\r\n932a1238\r\n&gt;     STMT            VARCHAR2(1000);\r\n934c1240\r\n&lt;     STMTG           VARCHAR2(1000); \r\n---\r\n&gt;     STMTG           VARCHAR2(1000);\r\n942c1248\r\n&lt;     T_Q             VARCHAR2(130);      \r\n---\r\n&gt;     T_Q             VARCHAR2(130);\r\n950a1257\r\n&gt;     JOB_NAME        VARCHAR2(130);\r\n951a1259,1265\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     JOB_NAME :=\r\n&gt;       SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || '_TRACKING_REGIONS');\r\n953,954c1267,1268\r\n&lt;        SYS_CONTEXT('USERENV', 'CURRENT_USER'), \r\n&lt;        (TRACKING_SET_NAME || '_TRACKING_REGIONS'), \r\n---\r\n&gt;        SYS_CONTEXT('USERENV', 'CURRENT_USER'),\r\n&gt;        JOB_NAME,\r\n960c1274\r\n&lt;  \r\n---\r\n&gt; \r\n963,964c1277,1278\r\n&lt;  \r\n&lt;     TABLE_NAME_R := \r\n---\r\n&gt; \r\n&gt;     TABLE_NAME_R :=\r\n968,972c1282,1287\r\n&lt;     STMTD := \r\n&lt;       'SELECT region_id, geometry FROM ' || TABLE_NAME_R || ' ' ||\r\n&lt;       'WHERE region_id IN '|| \r\n&lt;         '(SELECT DISTINCT region_id FROM ' || TABLE_NAME ||\r\n&lt;         ' WHERE queue_no='|| SYS.DBMS_ASSERT.ENQUOTE_LITERAL(QNO) || ')';\r\n---\r\n&gt;     STMTD := 'SELECT region_id, geometry ' ||\r\n&gt;              'FROM ' || TABLE_NAME_R || ' ' ||\r\n&gt;              'WHERE region_id IN '||\r\n&gt;                '(SELECT DISTINCT region_id ' ||\r\n&gt;                ' FROM ' || TABLE_NAME ||\r\n&gt;                ' WHERE queue_no = '|| SYS.DBMS_ASSERT.ENQUOTE_LITERAL(QNO) || ')';\r\n975c1290\r\n&lt;     LOOP \r\n---\r\n&gt;     LOOP\r\n984,985c1299,1302\r\n&lt;     STMTG := 'SELECT geometry FROM ' || TABLE_NAME_R || ' WHERE region_id = :1';\r\n&lt;                 \r\n---\r\n&gt;     STMTG := 'SELECT geometry ' ||\r\n&gt;              'FROM ' || TABLE_NAME_R || ' ' ||\r\n&gt;              'WHERE region_id = :1';\r\n&gt; \r\n987,988c1304,1307\r\n&lt;     STMTC := ' SELECT COUNT(*) FROM ' || TABLE_NAME || \r\n&lt;              ' WHERE object_id =:1 AND region_id=:2';\r\n---\r\n&gt;     STMTC := 'SELECT COUNT(*) ' ||\r\n&gt;              'FROM ' || TABLE_NAME || ' ' ||\r\n&gt;              'WHERE object_id = :1 ' ||\r\n&gt;              'AND region_id = :2';\r\n991c1310,1312\r\n&lt;     STMTD := 'DELETE FROM ' || TABLE_NAME || ' WHERE object_id=:1 AND region_id=:2';\r\n---\r\n&gt;     STMTD := 'DELETE FROM ' || TABLE_NAME || ' ' ||\r\n&gt;              'WHERE object_id = :1 ' ||\r\n&gt;              'AND region_id = :2';\r\n994c1315,1316\r\n&lt;     STMTI := 'INSERT INTO ' || TABLE_NAME || ' VALUES(:1, :2, :3, :4)';\r\n---\r\n&gt;     STMTI := 'INSERT INTO ' || TABLE_NAME || ' ' ||\r\n&gt;              'VALUES(:1, :2, :3, :4)';\r\n997,998c1319,1322\r\n&lt;     STMTU := 'UPDATE  ' || TABLE_NAME || \r\n&lt;              ' SET alert_when=:1 WHERE object_id=:2 AND region_id=:3';\r\n---\r\n&gt;     STMTU := 'UPDATE ' || TABLE_NAME || ' ' ||\r\n&gt;              'SET alert_when = :1 ' ||\r\n&gt;              'WHERE object_id = :2 ' ||\r\n&gt;              'AND region_id = :3';\r\n1008c1332\r\n&lt;     P_Q := \r\n---\r\n&gt;     P_Q :=\r\n1046c1370\r\n&lt;           \r\n---\r\n&gt; \r\n1049c1373\r\n&lt;         END IF; \r\n---\r\n&gt;         END IF;\r\n1067c1391\r\n&lt;           EXECUTE IMMEDIATE STMTI \r\n---\r\n&gt;           EXECUTE IMMEDIATE STMTI\r\n1073c1397\r\n&lt;           EXECUTE IMMEDIATE STMTU  \r\n---\r\n&gt;           EXECUTE IMMEDIATE STMTU\r\n1091,1098d1414\r\n&lt;   EXCEPTION\r\n&lt;     WHEN OTHERS THEN\r\n&lt;       BEGIN\r\n&lt;         LOG_TABLE := \r\n&lt;           SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || '_tracker_log');\r\n&lt;         \r\n&lt;         LOG_ERROR(LOG_TABLE, \r\n&lt;           'tracker\/process dequeue: ' || SUBSTR(SQLERRM, 1, 256));\r\n1100,1111c1416,1437\r\n&lt;         OPEN R_CURSOR FOR \r\n&lt;           'SELECT region_id FROM ' ||\r\n&lt;             SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || '_tracker') ||\r\n&lt;           ' WHERE queue_no=' || SYS.DBMS_ASSERT.ENQUOTE_LITERAL(QNO);\r\n&lt; \r\n&lt;         LOOP \r\n&lt;           FETCH R_CURSOR INTO RID;\r\n&lt;           EXIT WHEN R_CURSOR%NOTFOUND;\r\n&lt;           SDO_TRKR.OTUNLOADINMEMREGIONS(RID);\r\n&lt;         END LOOP;\r\n&lt;         CLOSE R_CURSOR;\r\n&lt;       END;\r\n---\r\n&gt;     EXCEPTION\r\n&gt;       WHEN OTHERS THEN\r\n&gt;         BEGIN\r\n&gt;           LOG_TABLE :=\r\n&gt;             SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || '_tracker_log');\r\n&gt; \r\n&gt;           LOG_ERROR(LOG_TABLE,\r\n&gt;             'tracker\/process dequeue: ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt; \r\n&gt;           STMT := 'SELECT region_id ' ||\r\n&gt;                   'FROM ' ||\r\n&gt;               SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || '_tracker') ||\r\n&gt;                   ' WHERE queue_no=' || SYS.DBMS_ASSERT.ENQUOTE_LITERAL(QNO);\r\n&gt;           OPEN R_CURSOR FOR STMT;\r\n&gt;           LOOP\r\n&gt;             FETCH R_CURSOR INTO RID;\r\n&gt;             EXIT WHEN R_CURSOR%NOTFOUND;\r\n&gt; \r\n&gt;             SDO_TRKR.OTUNLOADINMEMREGIONS(RID);\r\n&gt;           END LOOP;\r\n&gt;           CLOSE R_CURSOR;\r\n&gt;         END;\r\n1121,1122c1447,1448\r\n&lt;     PAYLOAD_LOC     LOCATION_MSG_PKD;\r\n&lt;     MSG             LOCATION_MSG;\r\n---\r\n&gt;     PAYLOAD_LOC     MDSYS.LOCATION_MSG_PKD;\r\n&gt;     MSG             MDSYS.LOCATION_MSG;\r\n1127a1454\r\n&gt;     STMT            VARCHAR2(1000);\r\n1138a1466\r\n&gt;     JOB_NAME        VARCHAR2(130);\r\n1139a1468,1474\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     JOB_NAME :=\r\n&gt;       SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || '_TRACKING_REGIONS');\r\n1141,1142c1476,1477\r\n&lt;       SYS_CONTEXT('USERENV', 'CURRENT_USER'), \r\n&lt;       (TRACKING_SET_NAME || '_TRACKING_REGIONS'), \r\n---\r\n&gt;       SYS_CONTEXT('USERENV', 'CURRENT_USER'),\r\n&gt;       JOB_NAME,\r\n1149c1484\r\n&lt;     TABLE1_NAME := \r\n---\r\n&gt;     TABLE1_NAME :=\r\n1157c1492\r\n&lt;     L_Q := \r\n---\r\n&gt;     L_Q :=\r\n1186,1191c1521,1526\r\n&lt;           OPEN R_CURSOR FOR \r\n&lt;             'SELECT tr.region_id, t.queue_no, t.alert_when ' ||\r\n&lt;             'FROM ' || TABLE1_NAME || ' tr, ' || TABLE2_NAME || ' t ' ||\r\n&lt;             'WHERE t.object_id = ' || SYS.DBMS_ASSERT.ENQUOTE_LITERAL(OUT_REC.OBJECT_ID) || \r\n&lt;             ' AND t.region_id=tr.region_id';\r\n&lt;             \r\n---\r\n&gt;           STMT := 'SELECT tr.region_id, t.queue_no, t.alert_when ' ||\r\n&gt;                   'FROM ' || TABLE1_NAME || ' tr, ' || TABLE2_NAME || ' t ' ||\r\n&gt;                   'WHERE t.object_id = ' ||\r\n&gt;                   SYS.DBMS_ASSERT.ENQUOTE_LITERAL(OUT_REC.OBJECT_ID) ||\r\n&gt;                   ' AND t.region_id = tr.region_id';\r\n&gt;           OPEN R_CURSOR FOR STMT;\r\n1206c1541\r\n&lt;         IF ((ARR(I).ARR.COUNT) &gt; 0) THEN \r\n---\r\n&gt;         IF ((ARR(I).ARR.COUNT) &gt; 0) THEN\r\n1220,1224d1554\r\n&lt;   EXCEPTION\r\n&lt;     WHEN OTHERS THEN\r\n&lt;       BEGIN\r\n&lt;         LOG_TABLE := \r\n&lt;           SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || '_tracker_log');\r\n1226,1228c1556,1566\r\n&lt;         LOG_ERROR(LOG_TABLE, \r\n&lt;           'location dequeue: ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;       END;\r\n---\r\n&gt;     EXCEPTION\r\n&gt;       WHEN OTHERS THEN\r\n&gt;         BEGIN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')35]: ' || SQLERRM);\r\n&gt;           LOG_TABLE :=\r\n&gt;             SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || '_tracker_log');\r\n&gt; \r\n&gt;           LOG_ERROR(LOG_TABLE,\r\n&gt;             'location dequeue: ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;         END;\r\n1237c1575,1580\r\n&lt;     LOG_TABLE := \r\n---\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     LOG_TABLE :=\r\n1248c1591\r\n&lt;                                  || TRACKING_SET_NAME ||  ''',' || I || \r\n---\r\n&gt;                                  || TRACKING_SET_NAME ||  ''',' || I ||\r\n1251c1594\r\n&lt;         COMMENTS             =&gt; 'Listening and dequeuing tracking \r\n---\r\n&gt;         COMMENTS             =&gt; 'Listening and dequeuing tracking\r\n1260a1604,1606\r\n&gt;       SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;         'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')36]: ' || SQLERRM);\r\n&gt; \r\n1264c1610\r\n&lt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n---\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n1275c1621,1626\r\n&lt;     LOG_TABLE := \r\n---\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     LOG_TABLE :=\r\n1285,1286c1636,1637\r\n&lt;         JOB_ACTION           =&gt; 'begin sdo_trkr.run_loc_deq(''' \r\n&lt;                                  || TRACKING_SET_NAME || ''',' || I || \r\n---\r\n&gt;         JOB_ACTION           =&gt; 'begin sdo_trkr.run_loc_deq('''\r\n&gt;                                  || TRACKING_SET_NAME || ''',' || I ||\r\n1289a1641\r\n&gt; \r\n1295,1298d1646\r\n&lt;   EXCEPTION\r\n&lt;     WHEN OTHERS THEN\r\n&lt;       LOG_ERROR(LOG_TABLE, 'Start location jobs: ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;       STOP_LOC_JOBS(TRACKING_SET_NAME, NUM_LOC_QUEUES);\r\n1300,1301c1648,1657\r\n&lt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n&lt;        'Errors found in sdo_trkr.start_tracking_set: start location jobs');\r\n---\r\n&gt;     EXCEPTION\r\n&gt;       WHEN OTHERS THEN\r\n&gt;         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;           'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')37]: ' || SQLERRM);\r\n&gt; \r\n&gt;         LOG_ERROR(LOG_TABLE, 'Start location jobs: ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;         STOP_LOC_JOBS(TRACKING_SET_NAME, NUM_LOC_QUEUES);\r\n&gt; \r\n&gt;         MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;          'Errors found in sdo_trkr.start_tracking_set: start location jobs');\r\n1310a1667,1671\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n1323,1326c1684,1692\r\n&lt;         EXCEPTION\r\n&lt;           WHEN JOB_NOT_RUNNING THEN NULL;\r\n&lt;           WHEN OTHERS THEN\r\n&lt;             RAISE;\r\n---\r\n&gt; \r\n&gt;           EXCEPTION\r\n&gt;             WHEN JOB_NOT_RUNNING THEN\r\n&gt;               NULL;\r\n&gt; \r\n&gt;             WHEN OTHERS THEN\r\n&gt;               SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;                 'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')38]: ' || SQLERRM);\r\n&gt;               RAISE;\r\n1332,1333c1698,1703\r\n&lt;       EXCEPTION\r\n&lt;         WHEN OTHERS THEN NULL;\r\n---\r\n&gt; \r\n&gt;         EXCEPTION\r\n&gt;           WHEN OTHERS THEN\r\n&gt;             SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;               'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')39]: ' || SQLERRM);\r\n&gt;             NULL;\r\n1341a1712,1713\r\n&gt;     JOB_NAME            VARCHAR2(128);\r\n&gt;     FULL_NAME           VARCHAR2(260);\r\n1344a1717,1721\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n1348c1725,1728\r\n&lt;       BEGIN \r\n---\r\n&gt;       JOB_NAME := SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || '_loc_job_' || I);\r\n&gt;       FULL_NAME := USER || '.' || JOB_NAME;\r\n&gt; \r\n&gt;       BEGIN\r\n1351c1731\r\n&lt;           NAME  =&gt; USER || '.' || TRACKING_SET_NAME || '_loc_job_' || I);\r\n---\r\n&gt;           NAME  =&gt; FULL_NAME);\r\n1356,1360c1736,1745\r\n&lt;           JOB_NAME =&gt; USER || '.' || TRACKING_SET_NAME || '_loc_job_' || I);\r\n&lt;         EXCEPTION\r\n&lt;           WHEN JOB_NOT_RUNNING THEN NULL;\r\n&lt;           WHEN OTHERS THEN\r\n&lt;             RAISE;\r\n---\r\n&gt;           JOB_NAME =&gt; FULL_NAME);\r\n&gt; \r\n&gt;           EXCEPTION\r\n&gt;             WHEN JOB_NOT_RUNNING THEN\r\n&gt;               NULL;\r\n&gt; \r\n&gt;             WHEN OTHERS THEN\r\n&gt;               SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;                 'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')40]: ' || SQLERRM);\r\n&gt;               RAISE;\r\n1365,1367c1750,1756\r\n&lt;           JOB_NAME =&gt; USER|| '.' || TRACKING_SET_NAME || '_loc_job_'|| I);\r\n&lt;       EXCEPTION\r\n&lt;         WHEN OTHERS THEN NULL;\r\n---\r\n&gt;           JOB_NAME =&gt; FULL_NAME);\r\n&gt; \r\n&gt;         EXCEPTION\r\n&gt;           WHEN OTHERS THEN\r\n&gt;             SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;               'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')41]: ' || SQLERRM);\r\n&gt;             NULL;\r\n1377a1767,1770\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n1380,1381c1773,1774\r\n&lt;      MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n&lt;       ' Exceeded maximum allowed number of Tracker queues: 1000'); \r\n---\r\n&gt;      MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;       ' Exceeded maximum allowed number of Tracker queues: 1000');\r\n1385,1386c1778,1779\r\n&lt;      MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n&lt;       ' Exceeded maximum allowed number of Location queues: 100'); \r\n---\r\n&gt;      MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;       ' Exceeded maximum allowed number of Location queues: 100');\r\n1388,1389c1781,1782\r\n&lt;   \r\n&lt;    LOG_TABLE := \r\n---\r\n&gt; \r\n&gt;    LOG_TABLE :=\r\n1395a1789\r\n&gt; \r\n1396a1791\r\n&gt; \r\n1397a1793\r\n&gt; \r\n1413a1810,1814\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n1416c1817\r\n&lt;    BEGIN \r\n---\r\n&gt;    BEGIN\r\n1417a1819,1832\r\n&gt; \r\n&gt;      EXCEPTION\r\n&gt;        WHEN TABLE_NOT_FOUND THEN\r\n&gt;          MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;             'Invalid tracking set name: ' || TRACKING_SET_NAME);\r\n&gt; \r\n&gt;        WHEN OTHERS THEN\r\n&gt;          SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;            'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')42]: ' || SQLERRM);\r\n&gt;          MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;            'sdo_trkr.start_tracking_set: fetching queue counts');\r\n&gt;    END;\r\n&gt; \r\n&gt;    BEGIN\r\n1419,1425c1834,1844\r\n&lt;    EXCEPTION\r\n&lt;      WHEN TABLE_NOT_FOUND THEN\r\n&lt;        MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n&lt;           'Invalid tracking set name: ' || TRACKING_SET_NAME); \r\n&lt;      WHEN OTHERS THEN\r\n&lt;        MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n&lt;          'sdo_trkr.start_tracking_set: fetching queue counts');\r\n---\r\n&gt; \r\n&gt;      EXCEPTION\r\n&gt;        WHEN TABLE_NOT_FOUND THEN\r\n&gt;          MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;             'Invalid tracking set name: ' || TRACKING_SET_NAME);\r\n&gt; \r\n&gt;        WHEN OTHERS THEN\r\n&gt;          SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;            'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')43]: ' || SQLERRM);\r\n&gt;          MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;            'sdo_trkr.start_tracking_set: fetching queue counts');\r\n1428c1847\r\n&lt;    LOG_TABLE := \r\n---\r\n&gt;    LOG_TABLE :=\r\n1433c1852\r\n&lt;      'WHERE job_name LIKE ' ||\r\n---\r\n&gt;            'WHERE job_name LIKE ' ||\r\n1435,1436c1854,1855\r\n&lt;    EXECUTE IMMEDIATE STMT INTO CNT; \r\n&lt;   \r\n---\r\n&gt;    EXECUTE IMMEDIATE STMT INTO CNT;\r\n&gt; \r\n1438c1857\r\n&lt;    IF (CNT &gt; 0) THEN \r\n---\r\n&gt;    IF (CNT &gt; 0) THEN\r\n1444c1863\r\n&lt;      \r\n---\r\n&gt; \r\n1450c1869\r\n&lt;      BEGIN \r\n---\r\n&gt;      BEGIN\r\n1452,1457c1871,1880\r\n&lt;      EXCEPTION\r\n&lt;        WHEN OTHERS THEN  \r\n&lt;          \r\n&lt;          \r\n&lt;          STOP_TRKR_JOBS(TRACKING_SET_NAME, NUM_TRKR_QUEUES);\r\n&lt;          START_TRKR_JOBS(TRACKING_SET_NAME, NUM_TRKR_QUEUES);\r\n---\r\n&gt; \r\n&gt;        EXCEPTION\r\n&gt;          WHEN OTHERS THEN\r\n&gt;            SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;              'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')44]: ' || SQLERRM);\r\n&gt; \r\n&gt;            \r\n&gt;            \r\n&gt;            STOP_TRKR_JOBS(TRACKING_SET_NAME, NUM_TRKR_QUEUES);\r\n&gt;            START_TRKR_JOBS(TRACKING_SET_NAME, NUM_TRKR_QUEUES);\r\n1460c1883\r\n&lt;      BEGIN \r\n---\r\n&gt;      BEGIN\r\n1462,1467c1885,1894\r\n&lt;      EXCEPTION\r\n&lt;                                WHEN OTHERS THEN\r\n&lt;          \r\n&lt;          \r\n&lt;          STOP_LOC_JOBS(TRACKING_SET_NAME, NUM_LOC_QUEUES);\r\n&lt;          START_LOC_JOBS(TRACKING_SET_NAME, NUM_LOC_QUEUES, NUM_TRKR_QUEUES);\r\n---\r\n&gt; \r\n&gt;        EXCEPTION\r\n&gt;          WHEN OTHERS THEN\r\n&gt;            SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;              'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')45]: ' || SQLERRM);\r\n&gt; \r\n&gt;            \r\n&gt;            \r\n&gt;            STOP_LOC_JOBS(TRACKING_SET_NAME, NUM_LOC_QUEUES);\r\n&gt;            START_LOC_JOBS(TRACKING_SET_NAME, NUM_LOC_QUEUES, NUM_TRKR_QUEUES);\r\n1485a1913,1917\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n1488c1920\r\n&lt;    BEGIN \r\n---\r\n&gt;    BEGIN\r\n1489a1922,1934\r\n&gt; \r\n&gt;      EXCEPTION\r\n&gt;        WHEN TABLE_NOT_FOUND THEN\r\n&gt;          MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;             'Invalid tracking set name: ' || TRACKING_SET_NAME);\r\n&gt;        WHEN OTHERS THEN\r\n&gt;          SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;            'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')46]: ' || SQLERRM);\r\n&gt;          MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;            'Errors found in sdo_trkr.stop_tracking_set: fetching queue counts');\r\n&gt;    END;\r\n&gt; \r\n&gt;    BEGIN\r\n1491,1497c1936,1945\r\n&lt;    EXCEPTION\r\n&lt;      WHEN TABLE_NOT_FOUND THEN\r\n&lt;        MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n&lt;           'Invalid tracking set name: ' || TRACKING_SET_NAME); \r\n&lt;      WHEN OTHERS THEN\r\n&lt;        MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n&lt;          'Errors found in sdo_trkr.stop_tracking_set: fetching queue counts');\r\n---\r\n&gt; \r\n&gt;      EXCEPTION\r\n&gt;        WHEN TABLE_NOT_FOUND THEN\r\n&gt;          MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;             'Invalid tracking set name: ' || TRACKING_SET_NAME);\r\n&gt;        WHEN OTHERS THEN\r\n&gt;          SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;            'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')47]: ' || SQLERRM);\r\n&gt;          MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;            'Errors found in sdo_trkr.stop_tracking_set: fetching queue counts');\r\n1500c1948\r\n&lt;    LOG_TABLE := \r\n---\r\n&gt;    LOG_TABLE :=\r\n1506,1507c1954,1959\r\n&lt;    EXCEPTION\r\n&lt;      WHEN OTHERS THEN NULL;\r\n---\r\n&gt; \r\n&gt;      EXCEPTION\r\n&gt;        WHEN OTHERS THEN\r\n&gt;          SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;            'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')48]: ' || SQLERRM);\r\n&gt;          NULL;\r\n1512,1513c1964,1967\r\n&lt;    EXCEPTION\r\n&lt;      WHEN OTHERS THEN NULL;\r\n---\r\n&gt; \r\n&gt;      EXCEPTION\r\n&gt;        WHEN OTHERS THEN\r\n&gt;          NULL;\r\n1516c1970\r\n&lt;    BEGIN \r\n---\r\n&gt;    BEGIN\r\n1518,1523c1972,1981\r\n&lt;    EXCEPTION\r\n&lt;      WHEN OTHERS THEN\r\n&lt;        LOG_TABLE := \r\n&lt;          SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || '_tracker_log');\r\n&lt;        LOG_ERROR(LOG_TABLE, 'Stop location queues: ' || SUBSTR(SQLERRM, 1, 256));\r\n&lt;        ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;      EXCEPTION\r\n&gt;        WHEN OTHERS THEN\r\n&gt;          SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;            'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')49]: ' || SQLERRM);\r\n&gt; \r\n&gt;          LOG_TABLE :=\r\n&gt;            SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || '_tracker_log');\r\n&gt;          LOG_ERROR(LOG_TABLE, 'Stop location queues: ' || SUBSTR(SQLERRM, 1, 256));\r\n&gt;          ERROR_FLG := TRUE;\r\n1529,1530c1987,1988\r\n&lt;    IF (ERROR_FLG) THEN \r\n&lt;      MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n---\r\n&gt;    IF (ERROR_FLG) THEN\r\n&gt;      MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n1543a2002,2006\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n1546c2009\r\n&lt;     BEGIN \r\n---\r\n&gt;     BEGIN\r\n1547a2011,2023\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN TABLE_NOT_FOUND THEN\r\n&gt;           MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;              'Invalid tracking set name: ' || TRACKING_SET_NAME);\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')50]: ' || SQLERRM);\r\n&gt;           MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;             'Errors found in sdo_trkr.stop_tracking_set: fetching queue counts');\r\n&gt;     END;\r\n&gt; \r\n&gt;     BEGIN\r\n1549,1555c2025,2034\r\n&lt;     EXCEPTION\r\n&lt;       WHEN TABLE_NOT_FOUND THEN\r\n&lt;         MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n&lt;            'Invalid tracking set name: ' || TRACKING_SET_NAME); \r\n&lt;       WHEN OTHERS THEN\r\n&lt;         MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n&lt;           'Errors found in sdo_trkr.stop_tracking_set: fetching queue counts');\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN TABLE_NOT_FOUND THEN\r\n&gt;           MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;              'Invalid tracking set name: ' || TRACKING_SET_NAME);\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')51]: ' || SQLERRM);\r\n&gt;           MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;             'Errors found in sdo_trkr.stop_tracking_set: fetching queue counts');\r\n1558c2037\r\n&lt;     LOG_TABLE := \r\n---\r\n&gt;     LOG_TABLE :=\r\n1562c2041\r\n&lt;     BEGIN \r\n---\r\n&gt;     BEGIN\r\n1564,1566c2043,2048\r\n&lt;     EXCEPTION\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')52]: ' || SQLERRM);\r\n&gt;           ERROR_FLG := TRUE;\r\n1569c2051\r\n&lt;     BEGIN \r\n---\r\n&gt;     BEGIN\r\n1571,1573c2053,2058\r\n&lt;     EXCEPTION\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')53]: ' || SQLERRM);\r\n&gt;           ERROR_FLG := TRUE;\r\n1576,1580c2061,2068\r\n&lt;     BEGIN \r\n&lt;       PERFORM_POSTPROCESSING(TRACKING_SET_NAME); \r\n&lt;     EXCEPTION\r\n&lt;       WHEN OTHERS THEN\r\n&lt;         ERROR_FLG := TRUE;\r\n---\r\n&gt;     BEGIN\r\n&gt;       PERFORM_POSTPROCESSING(TRACKING_SET_NAME);\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')54]: ' || SQLERRM);\r\n&gt;           ERROR_FLG := TRUE;\r\n1585,1586c2073,2074\r\n&lt;     IF (ERROR_FLG) THEN \r\n&lt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n---\r\n&gt;     IF (ERROR_FLG) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n1600a2089,2093\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n1615,1619c2108,2114\r\n&lt;     EXCEPTION\r\n&lt;       WHEN TIMEOUT_OR_EOF THEN\r\n&lt;         MESSAGE := NULL;        \r\n&lt;       WHEN OTHERS THEN \r\n&lt;         RAISE;\r\n---\r\n&gt;       EXCEPTION\r\n&gt;         WHEN TIMEOUT_OR_EOF THEN\r\n&gt;           MESSAGE := NULL;\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')55]: ' || SQLERRM);\r\n&gt;           RAISE;\r\n1634a2130,2134\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n1637,1643c2137,2146\r\n&lt;     EXCEPTION\r\n&lt;       WHEN TABLE_NOT_FOUND THEN\r\n&lt;        MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n&lt;           'Invalid tracking set name: ' || TRACKING_SET_NAME); \r\n&lt;       WHEN OTHERS THEN\r\n&lt;         MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n&lt;           'Tracking Message Send Failed'); \r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN TABLE_NOT_FOUND THEN\r\n&gt;          MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;             'Invalid tracking set name: ' || TRACKING_SET_NAME);\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')56]: ' || SQLERRM);\r\n&gt;           MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;             'Tracking Message Send Failed');\r\n1645c2148\r\n&lt;     \r\n---\r\n&gt; \r\n1647c2150\r\n&lt;     \r\n---\r\n&gt; \r\n1670c2173\r\n&lt;     ARR                 LOC_MSG_PKD_ARR; \r\n---\r\n&gt;     ARR                 LOC_MSG_PKD_ARR;\r\n1674a2178,2182\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n1677,1683c2185,2194\r\n&lt;     EXCEPTION\r\n&lt;       WHEN TABLE_NOT_FOUND THEN\r\n&lt;        MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n&lt;           'Invalid tracking set name: ' || TRACKING_SET_NAME); \r\n&lt;       WHEN OTHERS THEN\r\n&lt;         MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n&lt;           'Location Message Send Failed'); \r\n---\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN TABLE_NOT_FOUND THEN\r\n&gt;          MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;             'Invalid tracking set name: ' || TRACKING_SET_NAME);\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')57]: ' || SQLERRM);\r\n&gt;           MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;             'Location Message Send Failed');\r\n1687,1688c2198,2199\r\n&lt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199, \r\n&lt;         'Location Message, invalid queue count: ' || TO_CHAR(NOQ)); \r\n---\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;         'Location Message, invalid queue count: ' || TO_CHAR(NOQ));\r\n1690c2201\r\n&lt;     \r\n---\r\n&gt; \r\n1699c2210\r\n&lt;     FOR I IN 1..LOCATION_MSGS.COUNT \r\n---\r\n&gt;     FOR I IN 1..LOCATION_MSGS.COUNT\r\n1707c2218\r\n&lt;     FOR I IN 1..NOQ \r\n---\r\n&gt;     FOR I IN 1..NOQ\r\n1713c2224\r\n&lt;         QUEUE_NAME         =&gt; QUEUE_NAME, \r\n---\r\n&gt;         QUEUE_NAME         =&gt; QUEUE_NAME,\r\n1726c2237,2240\r\n&lt;     CNT             NUMBER := 0; \r\n---\r\n&gt;     CNT             NUMBER := 0;\r\n&gt;     JOB_NAME        VARCHAR2(260);\r\n&gt;     TABLE_NOT_FOUND EXCEPTION;\r\n&gt;     PRAGMA EXCEPTION_INIT(TABLE_NOT_FOUND, -00942);\r\n1727a2242,2249\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     JOB_NAME :=\r\n&gt;       SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || '_TRACKER_QUEUES');\r\n&gt; \r\n1729,1731c2251,2252\r\n&lt;     STMT := 'SELECT \/*+ RESULT_CACHE *\/ num_loc_queues FROM ' ||\r\n&lt;       SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || \r\n&lt;         '_TRACKER_QUEUES');\r\n---\r\n&gt;     STMT := 'SELECT \/*+ RESULT_CACHE *\/ num_loc_queues ' ||\r\n&gt;             'FROM ' || JOB_NAME;\r\n1733c2254,2273\r\n&lt;     EXECUTE IMMEDIATE STMT INTO CNT; \r\n---\r\n&gt;     BEGIN\r\n&gt;       EXECUTE IMMEDIATE STMT INTO CNT;\r\n&gt; \r\n&gt;       EXCEPTION\r\n&gt;         WHEN NO_DATA_FOUND THEN\r\n&gt;           CNT := 0;\r\n&gt; \r\n&gt;         WHEN TABLE_NOT_FOUND THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[Cannot find table ' || JOB_NAME || ']');\r\n&gt;           RAISE;\r\n&gt; \r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')58]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           RAISE;\r\n&gt;     END;\r\n1742c2282,2283\r\n&lt;     CNT        NUMBER := 0; \r\n---\r\n&gt;     CNT        NUMBER := 0;\r\n&gt;     JOB_NAME   VARCHAR2(260);\r\n1743a2285,2292\r\n&gt;     IF ( TRACKING_SET_NAME IS NULL ) THEN\r\n&gt;       MDERR.RAISE_MD_ERROR('MD', 'SDO', -13199,\r\n&gt;        'Tracking set name is NULL');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     JOB_NAME :=\r\n&gt;       SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || '_TRACKER_QUEUES');\r\n&gt; \r\n1745,1747c2294,2298\r\n&lt;     STMT := 'SELECT \/*+ RESULT_CACHE *\/ num_trkr_queues FROM ' ||\r\n&lt;       SYS.DBMS_ASSERT.ENQUOTE_NAME(TRACKING_SET_NAME || \r\n&lt;         '_TRACKER_QUEUES');\r\n---\r\n&gt;     STMT := 'SELECT \/*+ RESULT_CACHE *\/ num_trkr_queues ' ||\r\n&gt;             'FROM ' || JOB_NAME;\r\n&gt; \r\n&gt;     BEGIN\r\n&gt;       EXECUTE IMMEDIATE STMT INTO CNT;\r\n1749c2300,2310\r\n&lt;     EXECUTE IMMEDIATE STMT INTO CNT; \r\n---\r\n&gt;       EXCEPTION\r\n&gt;         WHEN NO_DATA_FOUND THEN\r\n&gt;           CNT := 0;\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdoobjtrkrb.sql(' || $$PLSQL_LINE || ')59]: ' || SQLERRM);\r\n&gt;           SYS.DBMS_SYSTEM.KSDWRT(\r\n&gt;             SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;             'EXCEPTION[sdo_trkr(' || STMT || ')]');\r\n&gt;           RAISE;\r\n&gt;     END;\r\n<\/pre>\n<div id=\"MDSYS.SDO_TUNE.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_TUNE &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">180,182c180,183\r\n&lt;   STMT := 'SELECT ' || SYS.DBMS_ASSERT.ENQUOTE_NAME(COLUMN_NAME) || ' FROM ' || \r\n&lt;        SYS.DBMS_ASSERT.ENQUOTE_NAME(OWNER) || '.' ||\r\n&lt;        SYS.DBMS_ASSERT.ENQUOTE_NAME(TABLE_NAME);\r\n---\r\n&gt;   STMT := 'SELECT \"' || SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(COLUMN_NAME) ||\r\n&gt;           '\" FROM \"' || \r\n&gt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(OWNER) || '\".\"' ||\r\n&gt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(TABLE_NAME) || '\"';\r\n395a397,402\r\n&gt;   G_TABNAM      VARCHAR2(130);\r\n&gt;   G_TABNAM_NQ   VARCHAR2(130);\r\n&gt;   G_COLNAM      VARCHAR2(1024);\r\n&gt;   G_COLNAM_NQ   VARCHAR2(1024);\r\n&gt;   G_PTNNAM      VARCHAR2(130);\r\n&gt;   G_PTNNAM_NQ   VARCHAR2(130);\r\n410c417\r\n&lt;     TNAME := NLS_UPPER(TABLE_NAME);\r\n---\r\n&gt;     TNAME := TABLE_NAME;\r\n413c420,446\r\n&lt;     TNAME := NLS_UPPER(SUBSTR(TABLE_NAME, DOT_INDEX+1));\r\n---\r\n&gt;     TNAME := SUBSTR(TABLE_NAME, DOT_INDEX+1);\r\n&gt;   END IF;\r\n&gt; \r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(TNAME) ) THEN\r\n&gt;     G_TABNAM := TNAME;\r\n&gt;   ELSE\r\n&gt;     G_TABNAM := REPLACE(NLS_UPPER(TNAME), '\"');\r\n&gt;   END IF;\r\n&gt;   G_TABNAM_NQ := REPLACE(G_TABNAM, '\"');\r\n&gt; \r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(COLUMN_NAME) ) THEN\r\n&gt;     G_COLNAM := COLUMN_NAME;\r\n&gt;   ELSE\r\n&gt;     G_COLNAM := REPLACE(NLS_UPPER(COLUMN_NAME), '\"');\r\n&gt;   END IF;\r\n&gt;   G_COLNAM_NQ := REPLACE(G_COLNAM, '\"');\r\n&gt; \r\n&gt;   IF ( PARTITION_NAME IS NOT NULL ) THEN\r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(PARTITION_NAME) ) THEN\r\n&gt;       G_PTNNAM := PARTITION_NAME;\r\n&gt;     ELSE\r\n&gt;       G_PTNNAM := REPLACE(NLS_UPPER(PARTITION_NAME), '\"');\r\n&gt;     END IF;\r\n&gt;     G_PTNNAM_NQ := REPLACE(G_PTNNAM, '\"');\r\n&gt;   ELSE\r\n&gt;     G_PTNNAM := NULL;\r\n&gt;     G_PTNNAM_NQ := NULL;\r\n428c461\r\n&lt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(TNAME) ;\r\n---\r\n&gt;           SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(G_TABNAM_NQ);\r\n430c463\r\n&lt;       UPPER_TABLE := TNAME; \r\n---\r\n&gt;       UPPER_TABLE := G_TABNAM_NQ; \r\n433c466\r\n&lt;     UPPER_TABLE := TNAME; \r\n---\r\n&gt;     UPPER_TABLE := G_TABNAM_NQ; \r\n443,444c476,477\r\n&lt;     SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(UPPER_TABLE),\r\n&lt;     NLS_UPPER(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(COLUMN_NAME)),\r\n---\r\n&gt;     SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(G_TABNAM),\r\n&gt;     SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM),\r\n463,464c496,497\r\n&lt;         AND A.SDO_INDEX_PARTITION = NLS_UPPER(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(PARTITION_NAME))\r\n&lt;         AND REPLACE(A.SDO_COLUMN_NAME,'\"') = NLS_UPPER(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(COLUMN_NAME)); \r\n---\r\n&gt;         AND A.SDO_INDEX_PARTITION = SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_PTNNAM_NQ)\r\n&gt;         AND REPLACE(A.SDO_COLUMN_NAME,'\"') = SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM_NQ); \r\n474c507\r\n&lt;         AND REPLACE(A.SDO_COLUMN_NAME,'\"') = NLS_UPPER(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(COLUMN_NAME)); \r\n---\r\n&gt;         AND REPLACE(A.SDO_COLUMN_NAME,'\"') = SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM_NQ);\r\n490,492c523,525\r\n&lt;             ' AND TABLE_NAME = :2 ' || \r\n&lt;             ' AND SDO_INDEX_PARTITION = :3 ' ||\r\n&lt;             ' AND COLUMN_NAME = :4 ';\r\n---\r\n&gt;             'AND TABLE_NAME = :2 ' || \r\n&gt;             'AND SDO_INDEX_PARTITION = :3 ' ||\r\n&gt;             'AND COLUMN_NAME = :4 ';\r\n495,497c528,530\r\n&lt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(UPPER_TABLE), \r\n&lt;             NLS_UPPER(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(PARTITION_NAME)),\r\n&lt;             NLS_UPPER(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(COLUMN_NAME));\r\n---\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(G_TABNAM_NQ), \r\n&gt;             SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_PTNNAM_NQ),\r\n&gt;             SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM_NQ);\r\n502,503c535,536\r\n&lt;             ' AND TABLE_NAME = :2 ' || \r\n&lt;             ' AND COLUMN_NAME = :3 ';\r\n---\r\n&gt;             'AND TABLE_NAME = :2 ' || \r\n&gt;             'AND COLUMN_NAME = :3 ';\r\n506,507c539,540\r\n&lt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(UPPER_TABLE), \r\n&lt;             NLS_UPPER(SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(COLUMN_NAME));\r\n---\r\n&gt;             SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(G_TABNAM_NQ), \r\n&gt;             SYS.DBMS_ASSERT.QUALIFIED_SQL_NAME(G_COLNAM_NQ);\r\n654a688,691\r\n&gt;   G_TABNAM      VARCHAR2(130);\r\n&gt;   G_TABNAM_NQ   VARCHAR2(130);\r\n&gt;   G_COLNAM      VARCHAR2(130);\r\n&gt;   G_COLNAM_NQ   VARCHAR2(130);\r\n669c706\r\n&lt;     UPPER_TABLE := NLS_UPPER(TABLE_NAME);\r\n---\r\n&gt;     UPPER_TABLE := TABLE_NAME;\r\n672c709\r\n&lt;     UPPER_TABLE := NLS_UPPER(SUBSTR(TABLE_NAME, DOT_INDEX+1));\r\n---\r\n&gt;     UPPER_TABLE := SUBSTR(TABLE_NAME, DOT_INDEX+1);\r\n674a712,725\r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(UPPER_TABLE) ) THEN\r\n&gt;     G_TABNAM := UPPER_TABLE;\r\n&gt;   ELSE\r\n&gt;     G_TABNAM := REPLACE(NLS_UPPER(UPPER_TABLE), '\"');\r\n&gt;   END IF;\r\n&gt;   G_TABNAM_NQ := REPLACE(G_TABNAM, '\"');\r\n&gt; \r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(COLUMN_NAME) ) THEN\r\n&gt;     G_COLNAM := COLUMN_NAME;\r\n&gt;   ELSE\r\n&gt;     G_COLNAM := REPLACE(NLS_UPPER(COLUMN_NAME), '\"');\r\n&gt;   END IF;\r\n&gt;   G_COLNAM_NQ := REPLACE(G_COLNAM, '\"');\r\n&gt; \r\n678,679c729,730\r\n&lt;     UPPER_TABLE,\r\n&lt;     COLUMN_NAME,\r\n---\r\n&gt;     G_TABNAM,\r\n&gt;     G_COLNAM,\r\n685,686c736,737\r\n&lt;   STATUS := AVG_DELTAS_OF_OBJECTS(UPPER_USER, UPPER_TABLE,\r\n&lt;                                   COLUMN_NAME, DIMARRAY, \r\n---\r\n&gt;   STATUS := AVG_DELTAS_OF_OBJECTS(UPPER_USER, G_TABNAM_NQ,\r\n&gt;                                   G_COLNAM_NQ, DIMARRAY, \r\n724a776,779\r\n&gt;   G_TABNAM       VARCHAR2(130);\r\n&gt;   G_TABNAM_NQ    VARCHAR2(130);\r\n&gt;   G_COLNAM       VARCHAR2(130);\r\n&gt;   G_COLNAM_NQ    VARCHAR2(130);\r\n733,735c788,803\r\n&lt;   STMT := 'SELECT ' || \r\n&lt;       SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(COLUMN_NAME) || ' FROM ' || \r\n&lt;       SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(TABLE_NAME);\r\n---\r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(TABLE_NAME) ) THEN\r\n&gt;     G_TABNAM := TABLE_NAME;\r\n&gt;   ELSE\r\n&gt;     G_TABNAM := REPLACE(NLS_UPPER(TABLE_NAME), '\"');\r\n&gt;   END IF;\r\n&gt;   G_TABNAM_NQ := REPLACE(G_TABNAM, '\"');\r\n&gt; \r\n&gt;   IF ( SDO_UTIL.IS_BUMPY_CASE(COLUMN_NAME) ) THEN\r\n&gt;     G_COLNAM := COLUMN_NAME;\r\n&gt;   ELSE\r\n&gt;     G_COLNAM := REPLACE(NLS_UPPER(COLUMN_NAME), '\"');\r\n&gt;   END IF;\r\n&gt;   G_COLNAM_NQ := REPLACE(G_COLNAM, '\"');\r\n&gt; \r\n&gt;   STMT := 'SELECT \"' || SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(G_COLNAM_NQ) ||\r\n&gt;           '\" FROM \"' || SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(G_TABNAM_NQ) || '\"';\r\n<\/pre>\n<div id=\"MDSYS.SDO_UTIL.PACKAGE BODY.19.0.0.0_RU\">MDSYS.SDO_UTIL &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">64a65,79\r\n&gt;   FUNCTION GET_TABLE_PTN_OBJ_ID(TABLE_OWNER IN VARCHAR2,\r\n&gt;                                 TABLE_NAME IN VARCHAR2,\r\n&gt;                                 TABLE_PTN IN VARCHAR2 DEFAULT NULL)\r\n&gt;   RETURN NUMBER IS\r\n&gt;     EXTERNAL\r\n&gt;     NAME \"get_table_ptn_obj_id\"\r\n&gt;     LIBRARY ORDMD_UTL_LIBS\r\n&gt;     WITH CONTEXT\r\n&gt;     PARAMETERS(CONTEXT,\r\n&gt;                TABLE_OWNER, TABLE_OWNER INDICATOR, TABLE_OWNER LENGTH,\r\n&gt;                TABLE_NAME, TABLE_NAME INDICATOR, TABLE_NAME LENGTH,\r\n&gt;                TABLE_PTN, TABLE_PTN INDICATOR, TABLE_PTN LENGTH,\r\n&gt;                RETURN INDICATOR, RETURN);\r\n&gt; \r\n&gt;   \r\n167a183,224\r\n&gt;   FUNCTION IS_BUMPY_CASE(NAME IN VARCHAR2,\r\n&gt;                          SKIP_QUOTES IN BOOLEAN DEFAULT FALSE)\r\n&gt;   RETURN BOOLEAN DETERMINISTIC IS\r\n&gt;     LEN NUMBER;\r\n&gt;     CH VARCHAR2(2);\r\n&gt;   BEGIN\r\n&gt;     LEN := LENGTH(NAME);\r\n&gt; \r\n&gt;     \r\n&gt;     \r\n&gt;     IF ( NOT SKIP_QUOTES ) THEN\r\n&gt;       IF ( LEN &lt;= 2 ) THEN\r\n&gt;         RETURN FALSE;\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF ( NOT SKIP_QUOTES ) THEN\r\n&gt;       IF ( (SUBSTR(NAME, 1, 1) &lt;&gt; '\"') OR\r\n&gt;            (SUBSTR(NAME, LEN, 1) &lt;&gt; '\"') ) THEN\r\n&gt;         RETURN FALSE;\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     FOR I IN 1 .. LEN\r\n&gt;     LOOP\r\n&gt;       CH := SUBSTR(NAME, I, 1);\r\n&gt;       IF ( CH &lt;&gt; NLS_UPPER(CH) ) THEN\r\n&gt;         RETURN TRUE;\r\n&gt;       END IF;\r\n&gt;     END LOOP;\r\n&gt; \r\n&gt;     \r\n&gt;     RETURN FALSE;\r\n&gt;   END IS_BUMPY_CASE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n230c287\r\n&lt;     RETURN '\"' || OBJNAME || '\"';\r\n---\r\n&gt;     RETURN SYS.DBMS_ASSERT.ENQUOTE_NAME(OBJNAME, FALSE);\r\n6549c6606,6607\r\n&lt;  FUNCTION FROM_GEOJSON(GEOMETRY IN VARCHAR2, CRS IN VARCHAR2 DEFAULT NULL,\r\n---\r\n&gt;  FUNCTION FROM_GEOJSON(GEOMETRY IN VARCHAR2,\r\n&gt;                        CRS IN VARCHAR2 DEFAULT NULL,\r\n<\/pre>\n<div id=\"MDSYS.SDO_GEOM_TRIG_INS1.TRIGGER.19.0.0.0_RU\">MDSYS.SDO_GEOM_TRIG_INS1 &#8211; TRIGGER (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">6,16c6,16\r\n&lt;  tname varchar2(130);\r\n&lt;  stmt  varchar2(2048);\r\n&lt;  vcount INTEGER;\r\n&lt;  dimcount INTEGER;\r\n&lt;  tolerance NUMBER;\r\n&lt;  dimelement MDSYS.SDO_DIM_ELEMENT;\r\n&lt;  idx  number;\r\n&lt;  colname  varchar2(1024);\r\n&lt;  jsoncol  varchar2(1024);\r\n&lt;  jsonpath varchar2(1024);\r\n&lt;  nextPos  pls_integer;\r\n---\r\n&gt;   stmt varchar2(2048);\r\n&gt;   vcount INTEGER;\r\n&gt;   dimcount INTEGER;\r\n&gt;   tolerance NUMBER;\r\n&gt;   dimelement MDSYS.SDO_DIM_ELEMENT;\r\n&gt;   idx      number;\r\n&gt;   owner    varchar2(130);\r\n&gt;   tabname  varchar2(130);\r\n&gt;   colname  varchar2(1024);\r\n&gt;   jsoncol  varchar2(1024);\r\n&gt;   jsonpath varchar2(1024);\r\n18,44c18\r\n&lt;   tname := sys_context('userenv', 'session_user');\r\n&lt;   colname := nls_upper(:n.column_name);\r\n&lt; \r\n&lt;   if ( (instr(:n.table_name, ' ') &gt; 0 ) OR\r\n&lt;        (instr(:n.table_name, '''') &gt; 0 ) )  then\r\n&lt;    mderr.raise_md_error('MD', 'SDO', -13199,\r\n&lt;                'wrong table name: ' || :n.table_name);\r\n&lt;    end if;\r\n&lt; \r\n&lt;   if ((instrb(colname, 'JSON_VALUE') &gt; 0) and\r\n&lt;       (instrb(colname, '(') &gt; 0) and\r\n&lt;       (instrb(colname, ')') &gt; 0) and\r\n&lt;       (instrb(colname, ',') &gt; 0) and\r\n&lt;       (instrb(colname, 'RETURNING') &gt; 0)) then\r\n&lt;     colname := mdsys.mdprvt_gmd.get_json_geom_col(colname);\r\n&lt;   elsif ( (instr(colname, ' ') &gt; 0 ) OR\r\n&lt;           (instr(colname, '''') &gt; 0 ) ) then\r\n&lt;    mderr.raise_md_error('MD', 'SDO', -13199,\r\n&lt;                'wrong column name: ' || :n.column_name);\r\n&lt;    end if;\r\n&lt; \r\n&lt;   stmt :=  'SELECT count(*) FROM MDSYS.SDO_GEOM_METADATA_TABLE ' ||\r\n&lt;   'WHERE sdo_owner = :tname  AND sdo_table_name = :table_name  '||\r\n&lt;   '  AND  sdo_column_name = :column_name  ';\r\n&lt; \r\n&lt; EXECUTE IMMEDIATE stmt INTO vcount\r\n&lt;    USING tname, nls_upper(:n.table_name), colname;\r\n---\r\n&gt;   owner := sys_context('userenv', 'session_user');\r\n45a20,54\r\n&gt;   if ( sdo_util.is_bumpy_case(:n.table_name) ) then\r\n&gt;     tabname := :n.table_name;\r\n&gt;   elsif ( (instr(:n.table_name, ' ') &gt; 0 ) or\r\n&gt;           (instr(:n.table_name, '''') &gt; 0 ) ) then\r\n&gt;     mderr.raise_md_error('MD', 'SDO', -13199,\r\n&gt;                          'wrong table name: ' || :n.table_name);\r\n&gt;   else\r\n&gt; \r\n&gt;     tabname := replace(nls_upper(:n.table_name), '\"');\r\n&gt;   end if;\r\n&gt; \r\n&gt;   if ( (instrb(:n.column_name, 'JSON_VALUE') &gt; 0) and\r\n&gt;        (instrb(:n.column_name, '(') &gt; 0) and\r\n&gt;        (instrb(:n.column_name, ')') &gt; 0) and\r\n&gt;        (instrb(:n.column_name, ',') &gt; 0) and\r\n&gt;        (instrb(:n.column_name, 'RETURNING') &gt; 0)) then\r\n&gt;     colname := mdsys.mdprvt_gmd.get_json_geom_col(:n.column_name);\r\n&gt;   elsif ( sdo_util.is_bumpy_case(:n.column_name) ) then\r\n&gt;     colname := :n.column_name;\r\n&gt;   elsif ( (instr(:n.column_name, ' ') &gt; 0 ) or\r\n&gt;           (instr(:n.column_name, '''') &gt; 0 ) ) then\r\n&gt;     mderr.raise_md_error('MD', 'SDO', -13199,\r\n&gt;                          'wrong column name: ' || :n.column_name);\r\n&gt;   else\r\n&gt; \r\n&gt;     colname := replace(nls_upper(:n.column_name), '\"');\r\n&gt;   end if;\r\n&gt; \r\n&gt;   stmt := 'SELECT count(*) ' ||\r\n&gt;           'FROM MDSYS.SDO_GEOM_METADATA_TABLE ' ||\r\n&gt;           'WHERE sdo_owner = :own ' ||\r\n&gt;           'AND sdo_table_name = :tab '||\r\n&gt;           'AND sdo_column_name = :col';\r\n&gt;   EXECUTE IMMEDIATE stmt INTO vcount\r\n&gt;     USING owner, tabname, colname;\r\n58,59c67,68\r\n&lt;     mdsys.sdo_meta.insert_all_sdo_geom_metadata(tname,\r\n&lt;                                                 :n.table_name,\r\n---\r\n&gt;     mdsys.sdo_meta.insert_all_sdo_geom_metadata(owner,\r\n&gt;                                                 tabname,\r\n<\/pre>\n<div id=\"MDSYS.SDO_GEOM_TRIG_UPD1.TRIGGER.19.0.0.0_RU\">MDSYS.SDO_GEOM_TRIG_UPD1 &#8211; TRIGGER (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">5a6,8\r\n&gt;   owner varchar2(130);\r\n&gt;   tabname varchar2(130);\r\n&gt;   colname varchar2(1024);\r\n6a10\r\n&gt;   owner := sys_context('userenv', 'session_user');\r\n8c12,38\r\n&lt;   mdsys.sdo_meta.change_all_sdo_geom_metadata(sys_context('userenv', 'session_user'),\r\n---\r\n&gt;   if ( sdo_util.is_bumpy_case(:n.table_name) ) then\r\n&gt;     tabname := :n.table_name;\r\n&gt;   elsif ( (instr(:n.table_name, ' ') &gt; 0 ) OR\r\n&gt;           (instr(:n.table_name, '''') &gt; 0 ) ) then\r\n&gt;     mderr.raise_md_error('MD', 'SDO', -13199,\r\n&gt;                          'wrong table name: ' || :n.table_name);\r\n&gt;   else\r\n&gt;     tabname := replace(nls_upper(:n.table_name), '\"');\r\n&gt;   end if;\r\n&gt; \r\n&gt;   if ( (instrb(:n.column_name, 'JSON_VALUE') &gt; 0) and\r\n&gt;        (instrb(:n.column_name, '(') &gt; 0) and\r\n&gt;        (instrb(:n.column_name, ')') &gt; 0) and\r\n&gt;        (instrb(:n.column_name, ',') &gt; 0) and\r\n&gt;        (instrb(:n.column_name, 'RETURNING') &gt; 0)) then\r\n&gt;     colname := mdsys.mdprvt_gmd.get_json_geom_col(:n.column_name);\r\n&gt;   elsif ( sdo_util.is_bumpy_case(:n.column_name) ) then\r\n&gt;     colname := :n.column_name;\r\n&gt;   elsif ( (instr(:n.column_name, ' ') &gt; 0 ) OR\r\n&gt;           (instr(:n.column_name, '''') &gt; 0 ) ) then\r\n&gt;     mderr.raise_md_error('MD', 'SDO', -13199,\r\n&gt;                          'wrong column name: ' || :n.column_name);\r\n&gt;   else\r\n&gt;     colname := replace(nls_upper(:n.column_name), '\"');\r\n&gt;   end if;\r\n&gt; \r\n&gt;   mdsys.sdo_meta.change_all_sdo_geom_metadata(owner,\r\n11,12c41,42\r\n&lt;                                               :n.table_name,\r\n&lt;                                               :n.column_name,\r\n---\r\n&gt;                                               tabname,\r\n&gt;                                               colname,\r\n<\/pre>\n<div id=\"MDSYS.SAMCLUST_IMP_T.TYPE BODY.19.0.0.0_RU\">MDSYS.SAMCLUST_IMP_T &#8211; TYPE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">11a12,14\r\n&gt;     TNAME_NQ    VARCHAR2(130); \r\n&gt;     CNAME       VARCHAR2(130);\r\n&gt;     CNAME_NQ    VARCHAR2(130); \r\n52c55,58\r\n&lt;         SELECT NLS_UPPER(SUBSTR(TABLENAME, LEN+1)) INTO TNAME FROM SYS.DUAL;\r\n---\r\n&gt;         SELECT SUBSTR(TABLENAME, LEN+1) INTO TNAME FROM SYS.DUAL;\r\n&gt;         IF ( NOT SDO_UTIL.IS_BUMPY_CASE(TNAME) ) THEN\r\n&gt;           TNAME := REPLACE(NLS_UPPER(TNAME), '\"');\r\n&gt;         END IF;\r\n57c63,74\r\n&lt;       TNAME := NLS_UPPER(TABLENAME);\r\n---\r\n&gt;       IF ( SDO_UTIL.IS_BUMPY_CASE(TABLENAME) ) THEN\r\n&gt;         TNAME := TABLENAME;\r\n&gt;       ELSE\r\n&gt;         TNAME := REPLACE(NLS_UPPER(TABLENAME), '\"');\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt;     TNAME_NQ := REPLACE(TNAME, '\"');\r\n&gt; \r\n&gt;     IF ( SDO_UTIL.IS_BUMPY_CASE(COLNAME) ) THEN\r\n&gt;       CNAME := COLNAME;\r\n&gt;     ELSE\r\n&gt;       CNAME := REPLACE(NLS_UPPER(COLNAME), '\"');\r\n58a76\r\n&gt;     CNAME_NQ := REPLACE(CNAME, '\"');\r\n77c95\r\n&lt;               'and a.sdo_column_name = SYS.DBMS_ASSERT.ENQUOTE_NAME(:colnam) ';\r\n---\r\n&gt;               'and replace(a.sdo_column_name, ''\"'') = :colnam ';\r\n80c98\r\n&lt;       USING TSCHEMA, TNAME, COLNAME;\r\n---\r\n&gt;       USING TSCHEMA, TNAME_NQ, CNAME_NQ;\r\n113c131,135\r\n&lt;         TPARTN := NLS_UPPER(TABLEPARTITION);\r\n---\r\n&gt;         IF ( SDO_UTIL.IS_BUMPY_CASE(TABLEPARTITION) ) THEN\r\n&gt;           TPARTN := TABLEPARTITION;\r\n&gt;         ELSE\r\n&gt;           TPARTN := REPLACE(NLS_UPPER(TABLEPARTITION), '\"');\r\n&gt;         END IF;\r\n124c146\r\n&lt;         USING TSCHEMA, TNAME, TPARTN, ISCHEMA, INAME;\r\n---\r\n&gt;         USING TSCHEMA, TNAME_NQ, TPARTN, ISCHEMA, INAME;\r\n130c152\r\n&lt;     COLS(1) := SYS.ODCICOLINFO(TSCHEMA, TNAME, NLS_UPPER(COLNAME),\r\n---\r\n&gt;     COLS(1) := SYS.ODCICOLINFO(TSCHEMA, TNAME_NQ, CNAME_NQ,\r\n<\/pre>\n<div id=\"MDSYS.SDO_INDEX_METHOD_10I.TYPE BODY.19.0.0.0_RU\">MDSYS.SDO_INDEX_METHOD_10I &#8211; TYPE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">277c277\r\n&lt;         SYS.DBMS_ASSERT.NOOP(SDO_UTIL.NUMBER_TO_CHAR(NND2));\r\n---\r\n&gt;         SDO_UTIL.NUMBER_TO_CHAR(NND2);\r\n291c291\r\n&lt;         SYS.DBMS_ASSERT.NOOP(SDO_UTIL.NUMBER_TO_CHAR(NND1));\r\n---\r\n&gt;         SDO_UTIL.NUMBER_TO_CHAR(NND1);\r\n377,378c377\r\n&lt;       STATUS := MDSYS.PRVT_IDX.CRT_DUMMY_IDX(PART_IA2, \r\n&lt;                                              PART_NAME2.INDEXPARTITION);\r\n---\r\n&gt;       STATUS := MDSYS.PRVT_IDX.CRT_DUMMY_IDX(PART_IA2);\r\n443,444c442\r\n&lt;          STATUS := MDSYS.PRVT_IDX.CRT_DUMMY_IDX(PART_IA1,\r\n&lt;                                                 PART_NAME1.INDEXPARTITION);\r\n---\r\n&gt;          STATUS := MDSYS.PRVT_IDX.CRT_DUMMY_IDX(PART_IA1);\r\n465,466c463\r\n&lt;           STATUS := MDSYS.PRVT_IDX.CRT_DUMMY_IDX(PART_IA2, \r\n&lt;                                                  PART_NAME2.INDEXPARTITION);\r\n---\r\n&gt;           STATUS := MDSYS.PRVT_IDX.CRT_DUMMY_IDX(PART_IA2);\r\n<\/pre>\n<div id=\"MDSYS.SPARQL_SERVICE_IMPL_T.TYPE BODY.19.0.0.0_RU\">MDSYS.SPARQL_SERVICE_IMPL_T &#8211; TYPE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">77c77\r\n&lt;         REST_VARIABLES := UPPER(VARIABLES); \r\n---\r\n&gt;         REST_VARIABLES := NLS_UPPER(VARIABLES); \r\n604c604\r\n&lt;             VAR := UPPER(SUBSTRB(SELF.STRBUFFER,IDXSTART,IDXEND-IDXSTART));\r\n---\r\n&gt;             VAR := NLS_UPPER(SUBSTRB(SELF.STRBUFFER,IDXSTART,IDXEND-IDXSTART));\r\n887c887\r\n&lt;               VAR := UPPER(XMLDOM.GETNODEVALUE(XMLDOM.ITEM(XMLDOM.GETATTRIBUTES(N1),0)));\r\n---\r\n&gt;               VAR := NLS_UPPER(XMLDOM.GETNODEVALUE(XMLDOM.ITEM(XMLDOM.GETATTRIBUTES(N1),0)));\r\n<\/pre>\n<div id=\"MDSYS.ALL_SDO_GEOM_METADATA.VIEW.19.0.0.0_RU\">MDSYS.ALL_SDO_GEOM_METADATA &#8211; VIEW (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">8c8\r\n&lt; WHERE  b.sdo_table_name = a.table_name\r\n---\r\n&gt; WHERE replace(b.sdo_table_name, '\"') = a.table_name\r\n<\/pre>\n<div id=\"MDSYS.ALL_SDO_INDEX_METADATA.VIEW.19.0.0.0_RU\">MDSYS.ALL_SDO_INDEX_METADATA &#8211; VIEW (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">13c13,15\r\n&lt;         SDO_DML_BATCH_SIZE, SDO_RTREE_ENT_XPND,\r\n---\r\n&gt;         SDO_DML_BATCH_SIZE,\r\n&gt;         SDO_RTREE_READ_ONLY,\r\n&gt;         SDO_RTREE_ENT_XPND,\r\n<\/pre>\n<div id=\"MDSYS.MY_SDO_INDEX_METADATA.VIEW.19.0.0.0_RU\">MDSYS.MY_SDO_INDEX_METADATA &#8211; VIEW (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">18c18,20\r\n&lt;         SDO_DML_BATCH_SIZE, SDO_RTREE_ENT_XPND,\r\n---\r\n&gt;         SDO_DML_BATCH_SIZE,\r\n&gt;         SDO_RTREE_READ_ONLY,\r\n&gt;         SDO_RTREE_ENT_XPND,\r\n<\/pre>\n<div id=\"MDSYS.USER_SDO_INDEX_METADATA.VIEW.19.0.0.0_RU\">MDSYS.USER_SDO_INDEX_METADATA &#8211; VIEW (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">18c18,20\r\n&lt;         SDO_DML_BATCH_SIZE, SDO_RTREE_ENT_XPND,\r\n---\r\n&gt;         SDO_DML_BATCH_SIZE,\r\n&gt;         SDO_RTREE_READ_ONLY,\r\n&gt;         SDO_RTREE_ENT_XPND,\r\n<\/pre>\n<div id=\"SYS.DG$GETFLATDG.FUNCTION.19.0.0.0_RU\">SYS.DG$GETFLATDG &#8211; FUNCTION (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1,3c1\r\n&lt; function dg$getFlatDg(owner VARCHAR2,\r\n&lt;                              tableName VARCHAR2,\r\n&lt;                              jcolName VARCHAR2) RETURN dg$rowset PIPELINED\r\n---\r\n&gt; function dg$getFlatDg(dg CLOB) RETURN dg$rowset PIPELINED\r\n13,17c11,12\r\n&lt;   stmt := 'with dg_t as (SELECT sys.dg$getDgQuoteName(:1, :2, :3,\r\n&lt;                                 dbms_json.format_flat, 0) dg_doc\r\n&lt;                          FROM dual)\r\n&lt;            select jt.jpath as PATH, jt.jtype as TYPE, jt.tlength as LENGTH\r\n&lt;            from dg_t, json_table(dg_doc,''$[*]'' columns\r\n---\r\n&gt;   stmt := 'select jt.jpath as PATH, jt.jtype as TYPE, jt.tlength as LENGTH\r\n&gt;            from json_table(:1,''$[*]'' columns\r\n22c17\r\n&lt;   OPEN cur for stmt USING owner, tableName, jcolName;\r\n---\r\n&gt;   OPEN cur for stmt USING dg;\r\n<\/pre>\n<div id=\"SYS.DG$HASDGINDEX.FUNCTION.19.0.0.0_RU\">SYS.DG$HASDGINDEX &#8211; FUNCTION (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1,2c1,2\r\n&lt; function dg$hasDGIndex(owner VARCHAR2,\r\n&lt;                                          tableName VARCHAR2,\r\n---\r\n&gt; function dg$hasDGIndex(owner NUMBER,\r\n&gt;                                          tab   NUMBER,\r\n5,7d4\r\n&lt;   userId      NUMBER;\r\n&lt;   tableId     NUMBER;\r\n&lt;   indexName   varchar2(130);\r\n10,30d6\r\n&lt;   -- get index name, owner's id and table number by checking if the\r\n&lt;   -- column has a context index\r\n&lt;   EXECUTE IMMEDIATE\r\n&lt;    'select ix.index_name, u.user_id, o.object_id\r\n&lt;     from dba_ind_columns ic, dba_indexes ix, dba_users u, dba_objects o\r\n&lt;     where\r\n&lt;       ic.table_owner = ix.table_owner and\r\n&lt;       ic.index_name = ix.index_name and\r\n&lt;       ic.table_name = ix.table_name and\r\n&lt;       ic.table_owner = u.username and\r\n&lt;       u.username = o.owner and\r\n&lt;       o.object_name = ic.table_name and\r\n&lt;       o.object_type = ''TABLE'' and\r\n&lt;       ic.column_name= :1 and\r\n&lt;       ic.table_name= :2 and\r\n&lt;       u.username= :3 and\r\n&lt;       ix.ITYP_OWNER = ''CTXSYS'' and\r\n&lt;       (ix.ITYP_NAME= ''CONTEXT'' or ix.ITYP_NAME = ''CONTEXT_V2'')'\r\n&lt;   INTO indexName, userId, tableId\r\n&lt;   USING jcolName, tableName, owner;\r\n&lt; \r\n32,33d7\r\n&lt;   \/* bug 23548844: execute immediate without into does not raise\r\n&lt;      no_data_found error *\/\r\n38c12\r\n&lt;       idx_name = :1 and\r\n---\r\n&gt;       idx_table_owner# = :1 and\r\n40c14\r\n&lt;       idx_table_owner# = :3 and\r\n---\r\n&gt;       idx_text_name = :3 and\r\n43c17\r\n&lt;   USING indexName, tableId, userId;\r\n---\r\n&gt;   USING owner, tab, jcolName;\r\n48c22\r\n&lt;     WHEN no_data_found THEN\r\n---\r\n&gt;     WHEN others THEN\r\n<\/pre>\n<div id=\"SYS.DBMS_ASH.PACKAGE.19.0.0.0_RU\">SYS.DBMS_ASH &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1c1\r\n&lt; PACKAGE dbms_ash AUTHID CURRENT_USER IS\r\n---\r\n&gt; PACKAGE dbms_ash AUTHID DEFINER IS\r\n73a74\r\n&gt;   , RESOLUTION        VARCHAR(30)\r\n120c121\r\n&lt;   REPORT_INTERNAL_VERSION CONSTANT VARCHAR2(64) := '44';\r\n---\r\n&gt;   REPORT_INTERNAL_VERSION CONSTANT VARCHAR2(64) := '47';\r\n128c129\r\n&lt;   OMC_ALLOWED_ERR_RATIO CONSTANT NUMBER := 0.98;\r\n---\r\n&gt;   OMC_ALLOWED_ERR_RATIO CONSTANT NUMBER := 1;\r\n131,132d131\r\n&lt;   OMC_DEF_BUCKETS CONSTANT NUMBER := 120;\r\n&lt; \r\n134,135c133,149\r\n&lt;   OMC_DEF_ROWS_PER_BUCKET CONSTANT NUMBER := 20;\r\n&lt; \r\n---\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   OMC_LOW_RESOLUTION CONSTANT VARCHAR2(10) := 'LOW';\r\n&gt;   OMC_LOW_BUCKETS CONSTANT NUMBER := 120;\r\n&gt;   OMC_LOW_ROWS_PER_BUCKET CONSTANT NUMBER := 20;\r\n&gt;   OMC_MED_RESOLUTION CONSTANT VARCHAR2(10) := 'MEDIUM';\r\n&gt;   OMC_MED_BUCKETS CONSTANT NUMBER := 180;\r\n&gt;   OMC_MED_ROWS_PER_BUCKET CONSTANT NUMBER := 35;\r\n&gt;   OMC_HIGH_RESOLUTION CONSTANT VARCHAR2(10) := 'HIGH';\r\n&gt;   OMC_HIGH_BUCKETS CONSTANT NUMBER := 360;\r\n&gt;   OMC_HIGH_ROWS_PER_BUCKET CONSTANT NUMBER := 50;\r\n&gt;   OMC_MAX_RESOLUTION CONSTANT VARCHAR2(10) := 'MAX';\r\n&gt;   \r\n&gt;   \r\n188,198c202,236\r\n&lt;   FUNCTION FETCH_SQLTEXT_LOCAL(P_SQLID IN VARCHAR, P_DBID IN NUMBER, \r\n&lt;                                P_TIME_LIMIT IN VARCHAR)\r\n&lt;   RETURN   VARCHAR;\r\n&lt; \r\n&lt;   FUNCTION FETCH_SQLTEXT_AWR(P_SQLID IN VARCHAR, P_DBID IN NUMBER, \r\n&lt;                              P_IS_PDB IN VARCHAR, P_TIME_LIMIT IN VARCHAR)\r\n&lt;   RETURN   VARCHAR;\r\n&lt; \r\n&lt;   FUNCTION FETCH_OBJ_NAME_LOCAL(P_OBJ_ID IN NUMBER, P_DBID IN NUMBER,\r\n&lt;                                 P_CON_DBID IN NUMBER, P_TIME_LIMIT IN VARCHAR)\r\n&lt;   RETURN   VARCHAR;\r\n---\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION FETCH_SQLTEXT(P_SQLID IN VARCHAR, \r\n&gt;                          P_DBID IN NUMBER, P_CON_DBID IN NUMBER,\r\n&gt;                          P_IS_LOCAL IN VARCHAR, P_IS_PDB IN VARCHAR,\r\n&gt;                          P_IS_OLD IN VARCHAR, P_TIME_LIMIT IN VARCHAR)\r\n&gt;   RETURN   XMLTYPE;\r\n200,203c238,299\r\n&lt;   FUNCTION FETCH_OBJ_NAME_AWR(P_OBJ_ID IN NUMBER, P_DBID IN NUMBER, \r\n&lt;                               P_CON_DBID IN NUMBER, P_IS_PDB IN VARCHAR,\r\n&lt;                               P_TIME_LIMIT IN VARCHAR)\r\n&lt;   RETURN   VARCHAR;\r\n---\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION FETCH_OBJ_NAME(P_OBJ_ID IN NUMBER, P_DBID IN NUMBER,\r\n&gt;                           P_CON_DBID IN NUMBER, P_IS_LOCAL IN VARCHAR,\r\n&gt;                           P_LOCAL_TYPE IN VARCHAR, P_IS_OLD IN VARCHAR,\r\n&gt;                           P_TIME_LIMIT IN VARCHAR)\r\n&gt;   RETURN   XMLTYPE;\r\n204a301,310\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n208a315,324\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n266a383\r\n&gt;   \r\n349a467,468\r\n&gt;   \r\n&gt;   \r\n356c475,476\r\n&lt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n')\r\n---\r\n&gt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n'\r\n&gt;     , RESOLUTION      IN VARCHAR2 := 'medium')\r\n374a495,496\r\n&gt;   \r\n&gt;   \r\n381c503,504\r\n&lt;     , AWR_INFO IN VARCHAR2 := 'n')\r\n---\r\n&gt;     , AWR_INFO IN VARCHAR2 := 'n'\r\n&gt;     , RESOLUTION      IN VARCHAR2 := 'medium')\r\n396a520,521\r\n&gt;   \r\n&gt;   \r\n406c531,532\r\n&lt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n')\r\n---\r\n&gt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n'\r\n&gt;     , RESOLUTION      IN VARCHAR2 := 'medium')\r\n420a547,548\r\n&gt;   \r\n&gt;   \r\n428c556,557\r\n&lt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n')\r\n---\r\n&gt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n'\r\n&gt;     , RESOLUTION      IN VARCHAR2 := 'medium')\r\n447a577,578\r\n&gt;   \r\n&gt;   \r\n455c586,587\r\n&lt;     , INSTANCE_NUMBER IN NUMBER := NULL)\r\n---\r\n&gt;     , INSTANCE_NUMBER IN NUMBER := NULL\r\n&gt;     , RESOLUTION      IN VARCHAR2 := 'medium')\r\n471a604,605\r\n&gt;   \r\n&gt;   \r\n482c616,617\r\n&lt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n')\r\n---\r\n&gt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n'\r\n&gt;     , RESOLUTION      IN VARCHAR2 := 'medium')\r\n499a635,636\r\n&gt;   \r\n&gt;   \r\n507c644,645\r\n&lt;     , MINIMIZE_COST   IN VARCHAR2 := 'n')\r\n---\r\n&gt;     , MINIMIZE_COST   IN VARCHAR2 := 'n'\r\n&gt;     , RESOLUTION      IN VARCHAR2 := 'medium')\r\n528a667,668\r\n&gt;   \r\n&gt;   \r\n537c677,678\r\n&lt;     , MINIMIZE_COST   IN VARCHAR2 := 'n')\r\n---\r\n&gt;     , MINIMIZE_COST   IN VARCHAR2 := 'n'\r\n&gt;     , RESOLUTION      IN VARCHAR2 := 'medium')\r\n555a697,698\r\n&gt;   \r\n&gt;   \r\n566c709,710\r\n&lt;     , MINIMIZE_COST   IN VARCHAR2 := 'n')\r\n---\r\n&gt;     , MINIMIZE_COST   IN VARCHAR2 := 'n'\r\n&gt;     , RESOLUTION      IN VARCHAR2 := 'medium')\r\n<\/pre>\n<div id=\"SYS.DBMS_BACKUP_RESTORE.PACKAGE.19.0.0.0_19.7RUR\">SYS.DBMS_BACKUP_RESTORE &#8211; PACKAGE (19.7RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">12c12\r\n&lt;   bannerVersion CONSTANT VARCHAR2(15) := '19.07.00.00';\r\n---\r\n&gt;   bannerVersion CONSTANT VARCHAR2(15) := '19.07.01.00';\r\n24,26c24,26\r\n&lt;   fsn  CONSTANT NUMBER := instr('19.07.00.00', '.');\r\n&lt;   msn  CONSTANT NUMBER := instr('19.07.00.00', '.', fsn + 1);\r\n&lt;   psn  CONSTANT NUMBER := instr('19.07.00.00', '.', msn + 1);\r\n---\r\n&gt;   fsn  CONSTANT NUMBER := instr('19.07.01.00', '.');\r\n&gt;   msn  CONSTANT NUMBER := instr('19.07.01.00', '.', fsn + 1);\r\n&gt;   psn  CONSTANT NUMBER := instr('19.07.01.00', '.', msn + 1);\r\n29c29\r\n&lt;                            to_number(substr('19.07.00.00', 1, fsn - 1));\r\n---\r\n&gt;                            to_number(substr('19.07.01.00', 1, fsn - 1));\r\n31c31\r\n&lt;                to_number(substr('19.07.00.00', fsn + 1, msn - fsn - 1));\r\n---\r\n&gt;                to_number(substr('19.07.01.00', fsn + 1, msn - fsn - 1));\r\n33c33\r\n&lt;               to_number(substr('19.07.00.00',  msn + 1, psn - msn - 1));\r\n---\r\n&gt;               to_number(substr('19.07.01.00',  msn + 1, psn - msn - 1));\r\n35c35\r\n&lt;                              to_number(substr('19.07.00.00',  psn + 1));\r\n---\r\n&gt;                              to_number(substr('19.07.01.00',  psn + 1));\r\n<\/pre>\n<div id=\"SYS.DBMS_BACKUP_RESTORE.PACKAGE.19.0.0.0_19.6RUR\">SYS.DBMS_BACKUP_RESTORE &#8211; PACKAGE (19.6RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">12c12\r\n&lt;   bannerVersion CONSTANT VARCHAR2(15) := '19.06.01.00';\r\n---\r\n&gt;   bannerVersion CONSTANT VARCHAR2(15) := '19.06.02.00';\r\n24,26c24,26\r\n&lt;   fsn  CONSTANT NUMBER := instr('19.06.01.00', '.');\r\n&lt;   msn  CONSTANT NUMBER := instr('19.06.01.00', '.', fsn + 1);\r\n&lt;   psn  CONSTANT NUMBER := instr('19.06.01.00', '.', msn + 1);\r\n---\r\n&gt;   fsn  CONSTANT NUMBER := instr('19.06.02.00', '.');\r\n&gt;   msn  CONSTANT NUMBER := instr('19.06.02.00', '.', fsn + 1);\r\n&gt;   psn  CONSTANT NUMBER := instr('19.06.02.00', '.', msn + 1);\r\n29c29\r\n&lt;                            to_number(substr('19.06.01.00', 1, fsn - 1));\r\n---\r\n&gt;                            to_number(substr('19.06.02.00', 1, fsn - 1));\r\n31c31\r\n&lt;                to_number(substr('19.06.01.00', fsn + 1, msn - fsn - 1));\r\n---\r\n&gt;                to_number(substr('19.06.02.00', fsn + 1, msn - fsn - 1));\r\n33c33\r\n&lt;               to_number(substr('19.06.01.00',  msn + 1, psn - msn - 1));\r\n---\r\n&gt;               to_number(substr('19.06.02.00',  msn + 1, psn - msn - 1));\r\n35c35\r\n&lt;                              to_number(substr('19.06.01.00',  psn + 1));\r\n---\r\n&gt;                              to_number(substr('19.06.02.00',  psn + 1));\r\n<\/pre>\n<div id=\"SYS.DBMS_BACKUP_RESTORE.PACKAGE.19.0.0.0_RU\">SYS.DBMS_BACKUP_RESTORE &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">12c12\r\n&lt;   bannerVersion CONSTANT VARCHAR2(15) := '19.07.00.00';\r\n---\r\n&gt;   bannerVersion CONSTANT VARCHAR2(15) := '19.08.00.00';\r\n24,26c24,26\r\n&lt;   fsn  CONSTANT NUMBER := instr('19.07.00.00', '.');\r\n&lt;   msn  CONSTANT NUMBER := instr('19.07.00.00', '.', fsn + 1);\r\n&lt;   psn  CONSTANT NUMBER := instr('19.07.00.00', '.', msn + 1);\r\n---\r\n&gt;   fsn  CONSTANT NUMBER := instr('19.08.00.00', '.');\r\n&gt;   msn  CONSTANT NUMBER := instr('19.08.00.00', '.', fsn + 1);\r\n&gt;   psn  CONSTANT NUMBER := instr('19.08.00.00', '.', msn + 1);\r\n29c29\r\n&lt;                            to_number(substr('19.07.00.00', 1, fsn - 1));\r\n---\r\n&gt;                            to_number(substr('19.08.00.00', 1, fsn - 1));\r\n31c31\r\n&lt;                to_number(substr('19.07.00.00', fsn + 1, msn - fsn - 1));\r\n---\r\n&gt;                to_number(substr('19.08.00.00', fsn + 1, msn - fsn - 1));\r\n33c33\r\n&lt;               to_number(substr('19.07.00.00',  msn + 1, psn - msn - 1));\r\n---\r\n&gt;               to_number(substr('19.08.00.00',  msn + 1, psn - msn - 1));\r\n35c35\r\n&lt;                              to_number(substr('19.07.00.00',  psn + 1));\r\n---\r\n&gt;                              to_number(substr('19.08.00.00',  psn + 1));\r\n<\/pre>\n<div id=\"SYS.DBMS_HADOOP_INTERNAL.PACKAGE.19.0.0.0_RU\">SYS.DBMS_HADOOP_INTERNAL &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">475a476,489\r\n&gt; -- NAME: EVAL_PART_KEY_OPERATOR\r\n&gt; --\r\n&gt; -- DESCRIPTION:\r\n&gt; -- Replace PL\/SQL functions such as CAST_TO_RAW, TO_DATE, TIME_STAMP\r\n&gt; -- with the actual results of their evaluations in the DDL statement\r\n&gt; --\r\n&gt; -- PARAMETERS: TEXT_OF_DDL - Text of DDL that contains the partition spec\r\n&gt; --             KEY - One of CAST_TO_RAW, TO_DATE, TIME_STAMP\r\n&gt; --\r\n&gt; -- RETURNS: Modified TEXT_OF_DDL\r\n&gt; --\r\n&gt; FUNCTION EVAL_PART_KEY_OPERATOR(TEXT_OF_DDL IN OUT CLOB, KEY VARCHAR2)\r\n&gt; RETURN CLOB;\r\n&gt; \r\n<\/pre>\n<div id=\"SYS.DBMS_REGISTRY.PACKAGE.19.0.0.0_19.6RUR\">SYS.DBMS_REGISTRY &#8211; PACKAGE (19.6RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">13c13\r\n&lt;                                '19.6.1.0.0';\r\n---\r\n&gt;                                '19.6.2.0.0';\r\n<\/pre>\n<div id=\"SYS.DBMS_REGISTRY.PACKAGE.19.0.0.0_RU\">SYS.DBMS_REGISTRY &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">13c13\r\n&lt;                                '19.7.0.0.0';\r\n---\r\n&gt;                                '19.8.0.0.0';\r\n<\/pre>\n<div id=\"SYS.DBMS_REGISTRY.PACKAGE.19.0.0.0_19.7RUR\">SYS.DBMS_REGISTRY &#8211; PACKAGE (19.7RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">13c13\r\n&lt;                                '19.7.0.0.0';\r\n---\r\n&gt;                                '19.7.1.0.0';\r\n<\/pre>\n<div id=\"SYS.DBMS_SQLTUNE_UTIL2.PACKAGE.19.0.0.0_RU\">SYS.DBMS_SQLTUNE_UTIL2 &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">18,21c18,22\r\n&lt;   CLOUD_SERVICE_TYPE_ADW     CONSTANT VARCHAR2(30) := 'DWCS';\r\n&lt;   CLOUD_SERVICE_TYPE_EXADATA CONSTANT VARCHAR2(30) := 'EECS';\r\n&lt;   CLOUD_SERVICE_TYPE_PAAS    CONSTANT VARCHAR2(30) := 'PAAS';\r\n&lt;   CLOUD_SERVICE_TYPE_ATP     CONSTANT VARCHAR2(30) := 'OLTP';\r\n---\r\n&gt;   CLOUD_SERVICE_TYPE_ADW_D   CONSTANT VARCHAR2(30) := 'ADW-D';\r\n&gt;   CLOUD_SERVICE_TYPE_ADW_S   CONSTANT VARCHAR2(30) := 'ADW-S';\r\n&gt;   CLOUD_SERVICE_TYPE_ATP_D   CONSTANT VARCHAR2(30) := 'ATP-D';\r\n&gt;   CLOUD_SERVICE_TYPE_ATP_S   CONSTANT VARCHAR2(30) := 'ATP-S';\r\n&gt;   CLOUD_SERVICE_TYPE_OTHER   CONSTANT VARCHAR2(30) := 'OTHER';\r\n369,373c370,375\r\n&lt;   --     NONE: None\r\n&lt;   --     DWCS: Autonomous Data Warehouse\r\n&lt;   --     EECS: Exadata Express Cloud Service\r\n&lt;   --     PAAS: Platform As A Service (MDBCS)\r\n&lt;   --     OLTP: ATP\r\n---\r\n&gt;   --   CLOUD_SERVICE_TYPE_NONE    =&gt;  'NONE';\r\n&gt;   --   CLOUD_SERVICE_TYPE_ADW_D   =&gt;  'ADW-D';\r\n&gt;   --   CLOUD_SERVICE_TYPE_ADW_S   =&gt;  'ADW-S';\r\n&gt;   --   CLOUD_SERVICE_TYPE_ATP_D   =&gt;  'ATP-D';\r\n&gt;   --   CLOUD_SERVICE_TYPE_ATP_S   =&gt;  'ATP-S';\r\n&gt;   --   CLOUD_SERVICE_TYPE_OTHER   =&gt;  'OTHER';\r\n378c380\r\n&lt;   --------------------------------- is_adw  -----------------------------------\r\n---\r\n&gt;   -------------------------- get_tz_offset  -----------------------------------\r\n380c382\r\n&lt;   --     is_adw\r\n---\r\n&gt;   --     get_tz_offset\r\n383c385\r\n&lt;   --     check if current DB is Autonomous Data Warehouse\r\n---\r\n&gt;   --     get timezone offset from systimestamp\r\n386,387c388\r\n&lt;   --     TRUE is current DB is Autonomous Data Warehouse\r\n&lt;   --     FALSE otherwise\r\n---\r\n&gt;   --     timezone offset in TZ_HOUR:TZ_MINUTE format\r\n389,390c390,420\r\n&lt;   FUNCTION is_adw\r\n&lt;   RETURN BOOLEAN;\r\n---\r\n&gt;   FUNCTION get_tz_offset\r\n&gt;   RETURN VARCHAR2;\r\n&gt; \r\n&gt;   ----------------------------- chooseAwrForPdb -------------------------\r\n&gt;   -- NAME:\r\n&gt;   --     chooseAwrForPdb\r\n&gt;   --\r\n&gt;   -- DESCRIPTION:\r\n&gt;   --     This function determines the location\/prefix of the AWR view to use\r\n&gt;   --     for the database considering the following conditions:\r\n&gt;   --     1. Check whether local awr_pdb has snapshots.\r\n&gt;   --        If not, return AWR_VIEW_ROOT\r\n&gt;   --     2. If local awr has some snapshots use AWR_VIEW_PDB\r\n&gt;   --     3. If by change local awr was stopped\/disabled for some time\r\n&gt;   --         (say for eg., last 3 hrs not local awr snapshots)\r\n&gt;   --         then use AWR_VIEW_ROOT\r\n&gt;   --\r\n&gt;   --\r\n&gt;   -- NOTE: The beginTime and endTime used are in DB Timezone.\r\n&gt;   --       Unlike the case of ASH, no need to convert to UTC,\r\n&gt;   --       since end_interval_time in awr_root, awr_pdb  are in same TZ\r\n&gt;   --\r\n&gt;   -- PARAMETERS:\r\n&gt;   --     dbid            (IN)  - database id\r\n&gt;   --\r\n&gt;   -- RETURN:\r\n&gt;   --     Returned type can be 'AWR_ROOT' or 'AWR_PDB'.\r\n&gt;   --\r\n&gt;   -----------------------------------------------------------------------------\r\n&gt;   FUNCTION chooseAwrForPdb(beginTime IN DATE)\r\n&gt;   RETURN VARCHAR2;\r\n<\/pre>\n<div id=\"SYS.PRVT_ASH_OMX.PACKAGE.19.0.0.0_RU\">SYS.PRVT_ASH_OMX &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">41a42,43\r\n&gt;   \r\n&gt;   \r\n54a57\r\n&gt;     RESOLUTION      IN VARCHAR2 := NULL,\r\n90a94,95\r\n&gt;   \r\n&gt;   \r\n103a109\r\n&gt;     RESOLUTION      IN VARCHAR2 := NULL,\r\n<\/pre>\n<div id=\"SYS.PRVT_AWR_VIEWER.PACKAGE.19.0.0.0_RU\">SYS.PRVT_AWR_VIEWER &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">943a944,947\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n964,969c968,979\r\n&lt;   FUNCTION REPORT_ADW_WORKLOAD_REALTIME(\r\n&lt;     START_TIME        IN DATE           DEFAULT NULL,\r\n&lt;     END_TIME          IN DATE           DEFAULT NULL,\r\n&lt;     INST_ID_LOW       IN NUMBER         DEFAULT NULL,\r\n&lt;     INST_ID_HIGH      IN NUMBER         DEFAULT NULL,\r\n&lt;     SHOW_SQL          IN NUMBER         DEFAULT 0)\r\n---\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_RMMETRICS_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME      IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME        IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT 0)\r\n994,999c1004,1016\r\n&lt;   FUNCTION REPORT_ADW_WORKLOAD_HISTORICAL(\r\n&lt;     START_TIME        IN DATE           DEFAULT NULL,\r\n&lt;     END_TIME          IN DATE           DEFAULT NULL,\r\n&lt;     DBID              IN NUMBER         DEFAULT NULL,\r\n&lt;     INST_ID           IN NUMBER         DEFAULT NULL,\r\n&lt;     SHOW_SQL          IN NUMBER         DEFAULT 0)\r\n---\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_SQL_N_PARSE_TIME_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME_UTC  IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME_UTC    IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT NULL)\r\n1001a1019,1159\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_WAIT_TIME_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME_UTC  IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME_UTC    IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_SYSMETRICS_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME_UTC  IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME_UTC    IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_STORAGE_METRICS_XML(\r\n&gt;     SERVICE_TYPE IN VARCHAR2 DEFAULT NULL,\r\n&gt;     SHOW_SQL     IN NUMBER   DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_SESSION_METRICS_XML(\r\n&gt;     SHOW_SQL        IN NUMBER   DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION REPORT_WORKLOAD(\r\n&gt;     SERVICE_TYPE   IN VARCHAR2 DEFAULT NULL,\r\n&gt;     IS_REALTIME    IN NUMBER   DEFAULT 1,\r\n&gt;     DBID           IN NUMBER   DEFAULT NULL,\r\n&gt;     START_TIME     IN DATE     DEFAULT NULL,\r\n&gt;     END_TIME       IN DATE     DEFAULT NULL,\r\n&gt;     REPORT_LEVEL   IN VARCHAR2 DEFAULT NULL,\r\n&gt;     SHOW_SQL       IN NUMBER   DEFAULT 0)\r\n&gt;   RETURN XMLTYPE;\r\n<\/pre>\n<div id=\"SYS.PRVT_DBMS_INMEMORY_ADMIN.PACKAGE.19.0.0.0_RU\">SYS.PRVT_DBMS_INMEMORY_ADMIN &#8211; PACKAGE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">2d1\r\n&lt;   PROCEDURE TRACE(TRACE_INFO VARCHAR2);\r\n4,10d2\r\n&lt;   FUNCTION SPACE_USAGE2(SEGMENT_OWNER    IN VARCHAR2,\r\n&lt;                          SEGMENT_NAME    IN VARCHAR2,\r\n&lt;                          SEGMENT_TYPE    IN VARCHAR2,\r\n&lt;                          PARTITION_NAME  IN VARCHAR2,\r\n&lt;                          BITMAPPED       IN NUMBER,\r\n&lt;                          FREELIST_GROUPS IN NUMBER\r\n&lt;                          ) RETURN NUMBER;\r\n<\/pre>\n<div id=\"SYS.DBMS_ASH.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_ASH &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">146a147\r\n&gt;     DBMS_OUTPUT.PUT_LINE('resolution = ' || CONTEXT.RESOLUTION);\r\n399,400c400\r\n&lt;              CONTEXT.ERROR_XML,\r\n&lt;              XMLFOREST(\r\n---\r\n&gt;              XMLATTRIBUTES(\r\n411,413c411,415\r\n&lt;              , CONTEXT.SYSTZ AS \"sysTZ\"\r\n&lt;              , TO_CHAR(CONTEXT.MINAVAILTIMEUTC,OMC_TIME_FORMAT) AS \"minAvailTimeUTC\"\r\n&lt;              , TO_CHAR(CONTEXT.MAXAVAILTIMEUTC,OMC_TIME_FORMAT) AS \"maxAvailTimeUTC\"\r\n---\r\n&gt;              , TO_CHAR(ROUND(CONTEXT.SYSTZ,6)) AS \"sysTZ\"\r\n&gt;              , TO_CHAR(CONTEXT.MINAVAILTIMEUTC,OMC_TIME_FORMAT) \r\n&gt;                   AS \"minAvailTimeUTC\"\r\n&gt;              , TO_CHAR(CONTEXT.MAXAVAILTIMEUTC,OMC_TIME_FORMAT)\r\n&gt;                   AS \"maxAvailTimeUTC\"\r\n417a420\r\n&gt;              , CONTEXT.RESOLUTION AS \"resolution\"\r\n422,423c425,426\r\n&lt;              , CONTEXT.MEMSIZEDAYS AS \"memSizeDays\"\r\n&lt;              , CONTEXT.MEMTZ AS \"memTZ\"\r\n---\r\n&gt;              , TO_CHAR(ROUND(CONTEXT.MEMSIZEDAYS,6)) AS \"memSizeDays\"\r\n&gt;              , TO_CHAR(ROUND(CONTEXT.MEMTZ,6)) AS \"memTZ\"\r\n426,428c429,431\r\n&lt;              , CONTEXT.DBID AS \"dbid\"\r\n&lt;              , CONTEXT.BEGINSNAPID AS \"beginSnapID\"\r\n&lt;              , CONTEXT.ENDSNAPID AS \"endSnapID\"\r\n---\r\n&gt;              , TO_CHAR(CONTEXT.DBID) AS \"dbid\"\r\n&gt;              , TO_CHAR(CONTEXT.BEGINSNAPID) AS \"beginSnapID\"\r\n&gt;              , TO_CHAR(CONTEXT.ENDSNAPID) AS \"endSnapID\"\r\n430,431c433,435\r\n&lt;              , TO_CHAR(CONTEXT.DISKENDTIMEUTC,OMC_TIME_FORMAT) AS \"diskEndTimeUTC\"\r\n&lt;              , CONTEXT.DISKTZ AS \"diskTZ\"\r\n---\r\n&gt;              , TO_CHAR(CONTEXT.DISKENDTIMEUTC,OMC_TIME_FORMAT) \r\n&gt;                   AS \"diskEndTimeUTC\"\r\n&gt;              , TO_CHAR(ROUND(CONTEXT.DISKTZ,6)) AS \"diskTZ\"\r\n437c441\r\n&lt;            ))\r\n---\r\n&gt;            ), CONTEXT.ERROR_XML)\r\n478c482,483\r\n&lt;                            AWR_INFO IN VARCHAR, IGNORE_CPU_HISTORY IN VARCHAR)\r\n---\r\n&gt;                            AWR_INFO IN VARCHAR, IGNORE_CPU_HISTORY IN VARCHAR,\r\n&gt;                            RESOLUTION IN VARCHAR)\r\n527a533,543\r\n&gt; \r\n&gt;     \r\n&gt;     IF LOWER(RESOLUTION) LIKE 'all%' OR LOWER(RESOLUTION) LIKE 'max%' THEN\r\n&gt;       CONTEXT.RESOLUTION := OMC_MAX_RESOLUTION;\r\n&gt;     ELSIF LOWER(RESOLUTION) LIKE 'low%' THEN\r\n&gt;       CONTEXT.RESOLUTION := OMC_LOW_RESOLUTION;\r\n&gt;     ELSIF LOWER(RESOLUTION) LIKE 'high%' THEN\r\n&gt;       CONTEXT.RESOLUTION := OMC_HIGH_RESOLUTION;\r\n&gt;     ELSE\r\n&gt;       CONTEXT.RESOLUTION := OMC_MED_RESOLUTION;\r\n&gt;     END IF;\r\n571c587,588\r\n&lt;         OR (CONTEXT.LOCAL_CONDBID IS NOT NULL AND DBID = CONTEXT.LOCAL_DBID)) THEN\r\n---\r\n&gt;         OR (CONTEXT.LOCAL_CONDBID IS NOT NULL \r\n&gt;             AND DBID = CONTEXT.LOCAL_CONDBID)) THEN\r\n619a637\r\n&gt;     L_BUCKETS NUMBER;\r\n631c649,653\r\n&lt;       L_SIZE := ROUND(GREATEST(L_MIN_SIZE, L_DIFF_SEC \/ OMC_DEF_BUCKETS),0);\r\n---\r\n&gt;       L_BUCKETS := \r\n&gt;         (CASE WHEN CONTEXT.RESOLUTION = OMC_LOW_RESOLUTION THEN OMC_LOW_BUCKETS\r\n&gt;               WHEN CONTEXT.RESOLUTION = OMC_MED_RESOLUTION THEN OMC_MED_BUCKETS\r\n&gt;               ELSE OMC_HIGH_BUCKETS END);\r\n&gt;       L_SIZE := ROUND(GREATEST(L_MIN_SIZE, L_DIFF_SEC \/ L_BUCKETS),0);\r\n900c922,923\r\n&lt;        , AWR_INFO IN VARCHAR)\r\n---\r\n&gt;        , AWR_INFO IN VARCHAR\r\n&gt;        , RESOLUTION IN VARCHAR)\r\n905c928\r\n&lt;          MINIMIZE_COST, AWR_INFO, 'n');\r\n---\r\n&gt;          MINIMIZE_COST, AWR_INFO, 'n', RESOLUTION);\r\n925c948,949\r\n&lt;        , IGNORE_CPU_HISTORY IN VARCHAR)\r\n---\r\n&gt;        , IGNORE_CPU_HISTORY IN VARCHAR\r\n&gt;        , RESOLUTION IN VARCHAR)\r\n930c954\r\n&lt;               MINIMIZE_COST, AWR_INFO, IGNORE_CPU_HISTORY);\r\n---\r\n&gt;               MINIMIZE_COST, AWR_INFO, IGNORE_CPU_HISTORY, RESOLUTION);\r\n967c991,992\r\n&lt;        , IGNORE_CPU_HISTORY IN VARCHAR)\r\n---\r\n&gt;        , IGNORE_CPU_HISTORY IN VARCHAR\r\n&gt;        , RESOLUTION IN VARCHAR)\r\n972c997\r\n&lt;          MINIMIZE_COST, AWR_INFO, IGNORE_CPU_HISTORY);\r\n---\r\n&gt;          MINIMIZE_COST, AWR_INFO, IGNORE_CPU_HISTORY, RESOLUTION);\r\n1570c1595\r\n&lt;    CONTEXT := INITBASECONTEXT(P_DBID,'n','n','n',P_INST_NUM,'n','y','n');\r\n---\r\n&gt;    CONTEXT := INITBASECONTEXT(P_DBID,'n','n','n',P_INST_NUM,'n','y','n','low');\r\n1926c1951\r\n&lt;        , 'n', 'n', IGNORE_CPU_HISTORY);\r\n---\r\n&gt;        , 'n', 'n', IGNORE_CPU_HISTORY, 'low');\r\n2159a2185,2190\r\n&gt;       \r\n&gt;       \r\n&gt;       \r\n&gt;       \r\n&gt;       \r\n&gt;       \r\n2188c2219\r\n&lt;       AND  a.snap_id &lt;= @E_SNAP@\r\n---\r\n&gt;       AND  a.snap_id &lt;= @E_SNAP@ + 5\r\n2287a2319\r\n&gt;     L_CONTEXT_XML XMLTYPE;\r\n2382a2415\r\n&gt;     L_CONTEXT_XML := CONTEXTTOXML(CONTEXT);\r\n2390c2423\r\n&lt;              ,L_TIMING ,P_INPUT, L_CPU, L_AWR, L_BASE)\r\n---\r\n&gt;              ,L_TIMING, L_CONTEXT_XML, P_INPUT, L_CPU, L_AWR, L_BASE)\r\n2604c2637\r\n&lt;       AND  a.snap_id &lt;= @E_SNAP@\r\n---\r\n&gt;       AND  a.snap_id &lt;= @E_SNAP@ + 5\r\n2805a2839,2840\r\n&gt;     L_IS_OLD      VARCHAR2(10);\r\n&gt;     L_IS_PDB      VARCHAR2(10);\r\n2806a2842,2843\r\n&gt;     L_CONDBID_COL VARCHAR2(10);\r\n&gt;     L_LOCAL_SOURCE VARCHAR2(10);\r\n2812a2850,2859\r\n&gt;     IF CONTEXT.LOCAL_COMP_VER &gt;= VER_12_2 THEN\r\n&gt;       L_IS_OLD := '''N''';\r\n&gt;     ELSE \r\n&gt;       L_IS_OLD := '''Y''';\r\n&gt;     END IF;\r\n&gt;     IF CONTEXT.LOCAL_IS_PDB THEN\r\n&gt;       L_IS_PDB := '''Y''';\r\n&gt;     ELSE\r\n&gt;       L_IS_PDB := '''N''';\r\n&gt;     END IF;\r\n2990,2991c3037,3039\r\n&lt;                                           sqlid as \"v\"),\r\n&lt;                                XMLCDATA(sql_text)))) as xml\r\n---\r\n&gt;                                           sqlid as \"v\",\r\n&gt;                                extractvalue(sql_text, '\/a\/c') as \"op\"),\r\n&gt;                                XMLCDATA(extractvalue(sql_text, '\/a\/s'))))) as xml\r\n2998,2999c3046,3052\r\n&lt;     ' sys.dbms_ash.fetch_sqltext_local(t.sqlid, ' || \r\n&lt;             CONTEXT.LOCAL_DBID || ',' || L_TIME_LIMIT || ')');\r\n---\r\n&gt;     ' sys.dbms_ash.fetch_sqltext(t.sqlid, ' \r\n&gt;             || CONTEXT.LOCAL_DBID || ',' \r\n&gt;             || NVL(TO_CHAR(CONTEXT.LOCAL_CONDBID),'NULL') || ',' \r\n&gt;             || '''Y''' || ',' \r\n&gt;             || L_IS_PDB || ',' \r\n&gt;             || L_IS_OLD || ',' \r\n&gt;             || L_TIME_LIMIT || ')');\r\n3003,3004c3056,3062\r\n&lt;     ' sys.dbms_ash.fetch_sqltext_awr(t.sqlid, ' || \r\n&lt;         CONTEXT.LOCAL_DBID || ',' || L_USE_PDB_AWR || ',' || L_TIME_LIMIT || ')');\r\n---\r\n&gt;     ' sys.dbms_ash.fetch_sqltext(t.sqlid, ' \r\n&gt;             || CONTEXT.DBID || ',' \r\n&gt;             || 'NULL' || ',' \r\n&gt;             || '''N''' || ',' \r\n&gt;             || L_IS_PDB || ',' \r\n&gt;             || L_IS_OLD || ',' \r\n&gt;             || L_TIME_LIMIT || ')');\r\n3671c3729,3731\r\n&lt;                                           n.name as \"name\")))) as xml\r\n---\r\n&gt;                                           extractvalue(n.name,'\/a\/n') as \"name\",\r\n&gt;                                           extractvalue(n.name,'\/a\/t') as \"type\"\r\n&gt;                     )))) as xml\r\n3673a3734,3735\r\n&gt;     \r\n&gt;     \r\n3679,3688c3741\r\n&lt;       IF CONTEXT.IS_LOCAL THEN\r\n&lt;         L_TEXT := REPLACE(L_TEXT, '%fetch%',\r\n&lt;           ' sys.dbms_ash.fetch_obj_name_local(object, '\r\n&lt;           || CONTEXT.DBID || ', con_dbid,' || L_TIME_LIMIT || ')'); \r\n&lt;       ELSE\r\n&lt;         L_TEXT := REPLACE(L_TEXT, '%fetch%',\r\n&lt;           ' sys.dbms_ash.fetch_obj_name_awr(object, '\r\n&lt;           || CONTEXT.DBID || ', con_dbid' || \r\n&lt;              L_USE_PDB_AWR || ',' || L_TIME_LIMIT || ')'); \r\n&lt;       END IF;\r\n---\r\n&gt;       L_CONDBID_COL := 'con_dbid';\r\n3693,3696c3746,3765\r\n&lt;       IF CONTEXT.IS_LOCAL THEN\r\n&lt;         L_TEXT := REPLACE(L_TEXT, '%fetch%',\r\n&lt;           ' sys.dbms_ash.fetch_obj_name_local(object, '\r\n&lt;           || CONTEXT.DBID || ', NULL,' || L_TIME_LIMIT || ')');\r\n---\r\n&gt;       L_CONDBID_COL := 'NULL';\r\n&gt;     END IF;\r\n&gt;     \r\n&gt; \r\n&gt;     IF CONTEXT.IS_LOCAL THEN \r\n&gt;       IF CONTEXT.IS_CDB_ROOT THEN\r\n&gt;         L_LOCAL_SOURCE := '''ROOT''';\r\n&gt;       ELSIF CONTEXT.LOCAL_IS_PDB THEN\r\n&gt;         L_LOCAL_SOURCE := '''PDB''';\r\n&gt;         L_CONDBID_COL := TO_CHAR(CONTEXT.LOCAL_CONDBID);\r\n&gt;       ELSE \r\n&gt;         L_LOCAL_SOURCE := '''STANDARD''';\r\n&gt;       END IF;\r\n&gt;       L_TEXT := REPLACE(L_TEXT, '%fetch%',\r\n&gt;           ' sys.dbms_ash.fetch_obj_name(object, '\r\n&gt;           || CONTEXT.LOCAL_DBID || ',' || L_CONDBID_COL || ',''Y'','\r\n&gt;           || L_LOCAL_SOURCE || ',' || L_IS_OLD || ',' || L_TIME_LIMIT || ')');\r\n&gt;     ELSE \r\n&gt;       IF CONTEXT.LOCAL_IS_PDB THEN\r\n&gt;         L_LOCAL_SOURCE := '''PDB''';\r\n3698,3701c3767\r\n&lt;         L_TEXT := REPLACE(L_TEXT, '%fetch%',\r\n&lt;           ' sys.dbms_ash.fetch_obj_name_awr(object, '\r\n&lt;           || CONTEXT.DBID || ', NULL,' || L_USE_PDB_AWR || ',' || \r\n&lt;              L_TIME_LIMIT || ')');\r\n---\r\n&gt;         L_LOCAL_SOURCE := '''STANDARD''';\r\n3702a3769,3772\r\n&gt;       L_TEXT := REPLACE(L_TEXT, '%fetch%',\r\n&gt;           ' sys.dbms_ash.fetch_obj_name(object, '\r\n&gt;           || CONTEXT.LOCAL_DBID || ',' || L_CONDBID_COL || ',''N'','\r\n&gt;           || L_LOCAL_SOURCE || ',' || L_IS_OLD || ',' || L_TIME_LIMIT || ')');\r\n3794c3864\r\n&lt;                                              , n.common as \"c\" )))) as xml\r\n---\r\n&gt;                                              , n.common as \"co\" )))) as xml\r\n4009c4079\r\n&lt;         TORET := DBMS_ASSERT.SIMPLE_SQL_NAME(FROMTABLE);\r\n---\r\n&gt;         TORET := SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(FROMTABLE);\r\n4105a4176\r\n&gt;     L_ROWS_PER_BUCKET NUMBER;\r\n4134c4205,4211\r\n&lt;     CONTEXT.EXP_ROW_COUNT := OMC_DEF_ROWS_PER_BUCKET * CONTEXT.BUCKETCOUNT;\r\n---\r\n&gt;     L_ROWS_PER_BUCKET := \r\n&gt;         (CASE WHEN CONTEXT.RESOLUTION = OMC_LOW_RESOLUTION \r\n&gt;                    THEN OMC_LOW_ROWS_PER_BUCKET\r\n&gt;               WHEN CONTEXT.RESOLUTION = OMC_MED_RESOLUTION \r\n&gt;                    THEN OMC_MED_ROWS_PER_BUCKET\r\n&gt;               ELSE OMC_HIGH_ROWS_PER_BUCKET END);\r\n&gt;     CONTEXT.EXP_ROW_COUNT := L_ROWS_PER_BUCKET * CONTEXT.BUCKETCOUNT;\r\n4384c4461\r\n&lt;       AND  a.snap_id &lt;= @E_SNAP@\r\n---\r\n&gt;       AND  a.snap_id &lt;= @E_SNAP@ + 5\r\n4771a4849\r\n&gt;     L_CONTEXT_XML XMLTYPE;\r\n4817c4895,4896\r\n&lt;     IF CONTEXT.EXP_ROW_COUNT IS NULL OR CONTEXT.EXP_ROW_COUNT &lt;= 1 THEN\r\n---\r\n&gt;     IF CONTEXT.EXP_ROW_COUNT IS NULL OR CONTEXT.EXP_ROW_COUNT &lt;= 1 \r\n&gt;        OR CONTEXT.RESOLUTION = OMC_MAX_RESOLUTION THEN\r\n4840a4920\r\n&gt;     L_CONTEXT_XML := CONTEXTTOXML(CONTEXT);\r\n4851c4931\r\n&lt;               L_SYS_INFO,L_TIMING, P_INPUT,\r\n---\r\n&gt;               L_SYS_INFO,L_TIMING, L_CONTEXT_XML, P_INPUT,\r\n4888a4969,4970\r\n&gt; \r\n&gt;   \r\n4892,4894c4974,5007\r\n&lt;   FUNCTION FETCH_SQLTEXT_LOCAL(P_SQLID IN VARCHAR, P_DBID IN NUMBER,\r\n&lt;                                P_TIME_LIMIT IN VARCHAR)\r\n&lt;   RETURN   VARCHAR\r\n---\r\n&gt;   FUNCTION CONSTRUCT_SQL_ELEMENT(P_SQLTEXT IN VARCHAR, P_COMMAND_ID IN NUMBER)\r\n&gt;   RETURN   XMLTYPE\r\n&gt;   IS\r\n&gt;     L_RESULT XMLTYPE;\r\n&gt;     L_COMMAND_NAME VARCHAR2(64);\r\n&gt;   BEGIN\r\n&gt;     IF P_SQLTEXT IS NULL THEN\r\n&gt;       RETURN NULL;\r\n&gt;     END IF;\r\n&gt;     IF P_COMMAND_ID IS NOT NULL THEN \r\n&gt;       SELECT MAX(COMMAND_NAME) INTO L_COMMAND_NAME\r\n&gt;       FROM   SYS.V_$SQLCOMMAND\r\n&gt;       WHERE  COMMAND_TYPE = P_COMMAND_ID;\r\n&gt;     END IF;\r\n&gt;   \r\n&gt;     SELECT XMLELEMENT(\"a\", \r\n&gt;             XMLELEMENT(\"c\", L_COMMAND_NAME),\r\n&gt;             XMLELEMENT(\"s\", XMLCDATA(P_SQLTEXT)))\r\n&gt;     INTO   L_RESULT\r\n&gt;     FROM   SYS.DUAL;\r\n&gt; \r\n&gt;     RETURN L_RESULT;\r\n&gt;   END CONSTRUCT_SQL_ELEMENT;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION FETCH_SQLTEXT_MEMORY(P_SQLID IN VARCHAR, P_TIME_LIMIT IN BOOLEAN)\r\n&gt;   RETURN   XMLTYPE\r\n4896a5010\r\n&gt;     L_COMMAND_ID NUMBER;\r\n4900c5014\r\n&lt;     IF P_TIME_LIMIT = 'Y' AND ADD_INFO_TIME &gt;= ADD_INFO_BUDGET THEN \r\n---\r\n&gt;     IF P_TIME_LIMIT AND ADD_INFO_TIME &gt;= ADD_INFO_BUDGET THEN \r\n4907,4914c5021,5027\r\n&lt; ' SELECT max(substr(sql_text,1,:1))\r\n&lt;     FROM   v$sql\r\n&lt;     WHERE  sql_id = :2\r\n&lt;       AND  rownum &lt;= 1 '\r\n&lt;     INTO L_TEXT USING OMC_DEF_SQLTEXT_LEN, P_SQLID;\r\n&lt; \r\n&lt; \r\n&lt; \r\n---\r\n&gt; ' SELECT max(substr(sql_text,1,:1)), max(command_type)\r\n&gt;     FROM (\r\n&gt;      SELECT sql_text, command_type\r\n&gt;      FROM   sys.v_$sql\r\n&gt;      WHERE  sql_id = :2\r\n&gt;        AND  rownum &lt;= 1)'\r\n&gt;     INTO L_TEXT, L_COMMAND_ID USING OMC_DEF_SQLTEXT_LEN, P_SQLID;\r\n4918c5031\r\n&lt;       RETURN FETCH_SQLTEXT_AWR(P_SQLID, P_DBID, 'N', P_TIME_LIMIT);\r\n---\r\n&gt;       RETURN NULL;\r\n4920,4921c5033,5037\r\n&lt;     RETURN STR_TO_ASCII(L_TEXT);\r\n&lt;   END FETCH_SQLTEXT_LOCAL;\r\n---\r\n&gt;     RETURN CONSTRUCT_SQL_ELEMENT(STR_TO_ASCII(L_TEXT), L_COMMAND_ID);\r\n&gt;     \r\n&gt;     \r\n&gt;     EXCEPTION WHEN OTHERS THEN RETURN NULL;\r\n&gt;   END FETCH_SQLTEXT_MEMORY;\r\n4922a5039,5051\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n4924,4925c5053,5054\r\n&lt;                              P_IS_PDB IN VARCHAR, P_TIME_LIMIT IN VARCHAR)\r\n&lt;   RETURN   VARCHAR\r\n---\r\n&gt;                              P_SOURCE IN VARCHAR, P_TIME_LIMIT IN BOOLEAN)\r\n&gt;   RETURN   XMLTYPE\r\n4926a5056\r\n&gt;     L_SQLTEXT VARCHAR2(4000);\r\n4927a5058\r\n&gt;     L_COMMAND_ID NUMBER;\r\n4931c5062\r\n&lt;     IF P_TIME_LIMIT = 'Y' AND ADD_INFO_TIME &gt;= ADD_INFO_BUDGET THEN \r\n---\r\n&gt;     IF P_TIME_LIMIT  AND ADD_INFO_TIME &gt;= ADD_INFO_BUDGET THEN \r\n4937,4954c5068,5079\r\n&lt;     IF P_IS_PDB = 'N' THEN\r\n&lt;       EXECUTE IMMEDIATE \r\n&lt; 'SELECT max(dbms_lob.substr(sql_text,:1,1))\r\n&lt;  FROM   dba_hist_sqltext \r\n&lt;  WHERE  sql_id = :2\r\n&lt;    AND  dbid = :3\r\n&lt;    AND  rownum &lt;= 1'\r\n&lt;       INTO L_TEXT\r\n&lt;       USING OMC_DEF_SQLTEXT_LEN, P_SQLID, P_DBID;\r\n&lt;     ELSE \r\n&lt;       EXECUTE IMMEDIATE \r\n&lt; 'SELECT max(dbms_lob.substr(sql_text,:1,1))\r\n&lt;  FROM   awr_pdb_sqltext \r\n&lt;  WHERE  sql_id = :2\r\n&lt;    AND  dbid = :3\r\n&lt;    AND  rownum &lt;= 1'\r\n&lt;       INTO L_TEXT\r\n&lt;       USING OMC_DEF_SQLTEXT_LEN, P_SQLID, P_DBID;\r\n---\r\n&gt;     L_SQLTEXT := \r\n&gt; 'SELECT max(dbms_lob.substr(sql_text,:1,1)), MAX(command_type)\r\n&gt;  FROM   (\r\n&gt;   SELECT sql_text, command_type\r\n&gt;   FROM   dba_hist_sqltext \r\n&gt;   WHERE  sql_id = :2\r\n&gt;     AND  dbid = :3\r\n&gt;     AND  rownum &lt;= 1)';\r\n&gt;     IF P_SOURCE = 'PDB' THEN\r\n&gt;       L_SQLTEXT := REPLACE(L_SQLTEXT, 'dba_hist_', 'awr_pdb_');\r\n&gt;     ELSIF P_SOURCE = 'ROOT' THEN\r\n&gt;       L_SQLTEXT := REPLACE(L_SQLTEXT, 'dba_hist_', 'awr_root_');\r\n4955a5081,5085\r\n&gt; \r\n&gt;     EXECUTE IMMEDIATE L_SQLTEXT\r\n&gt;     INTO L_TEXT, L_COMMAND_ID\r\n&gt;     USING OMC_DEF_SQLTEXT_LEN, P_SQLID, P_DBID;\r\n&gt; \r\n4957a5088,5169\r\n&gt;     IF L_TEXT IS NULL THEN\r\n&gt;       RETURN NULL;\r\n&gt;     END IF;\r\n&gt;     RETURN CONSTRUCT_SQL_ELEMENT(STR_TO_ASCII(L_TEXT), L_COMMAND_ID);\r\n&gt;     \r\n&gt;     \r\n&gt;     EXCEPTION WHEN OTHERS THEN RETURN NULL;\r\n&gt;   END FETCH_SQLTEXT_AWR;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION FETCH_SQLTEXT(P_SQLID IN VARCHAR,\r\n&gt;                          P_DBID IN NUMBER, P_CON_DBID IN NUMBER,\r\n&gt;                          P_IS_LOCAL IN VARCHAR, P_IS_PDB IN VARCHAR,\r\n&gt;                          P_IS_OLD IN VARCHAR, P_TIME_LIMIT IN VARCHAR)\r\n&gt;   RETURN   XMLTYPE\r\n&gt;   IS\r\n&gt;     L_IS_LOCAL BOOLEAN;\r\n&gt;     L_IS_PDB   BOOLEAN;\r\n&gt;     L_IS_OLD   BOOLEAN;\r\n&gt;     L_TIME_LIMIT BOOLEAN;\r\n&gt;     L_RESULT XMLTYPE := NULL;\r\n&gt;   BEGIN\r\n&gt;     IF P_DBID IS NULL THEN \r\n&gt;       RETURN NULL;\r\n&gt;     END IF;\r\n&gt;     IF UPPER(P_IS_LOCAL) = 'Y' THEN \r\n&gt;       L_IS_LOCAL := TRUE; \r\n&gt;     ELSE \r\n&gt;       L_IS_LOCAL := FALSE; \r\n&gt;     END IF;\r\n&gt;     IF UPPER(P_IS_PDB) = 'Y' THEN \r\n&gt;       L_IS_PDB := TRUE; \r\n&gt;     ELSE \r\n&gt;       L_IS_PDB := FALSE; \r\n&gt;     END IF;\r\n&gt;     IF UPPER(P_IS_OLD) = 'Y' THEN \r\n&gt;       L_IS_OLD := TRUE; \r\n&gt;     ELSE \r\n&gt;       L_IS_OLD := FALSE; \r\n&gt;     END IF;\r\n&gt;     IF UPPER(P_TIME_LIMIT) = 'Y' THEN \r\n&gt;       L_TIME_LIMIT := TRUE; \r\n&gt;     ELSE \r\n&gt;       L_TIME_LIMIT := FALSE; \r\n&gt;     END IF;\r\n4958a5171,5189\r\n&gt;     IF L_IS_LOCAL THEN \r\n&gt;        L_RESULT := FETCH_SQLTEXT_MEMORY(P_SQLID, L_TIME_LIMIT);\r\n&gt;        IF L_RESULT IS NOT NULL THEN \r\n&gt;          RETURN L_RESULT; \r\n&gt;        END IF;\r\n&gt;        IF ((NOT L_IS_PDB) OR (L_IS_PDB AND L_IS_OLD)) THEN \r\n&gt;          L_RESULT := FETCH_SQLTEXT_AWR(P_SQLID, P_DBID, 'DBA', L_TIME_LIMIT);\r\n&gt;        ELSE \r\n&gt;          L_RESULT := FETCH_SQLTEXT_AWR(P_SQLID, P_CON_DBID, 'PDB', L_TIME_LIMIT);\r\n&gt;          IF L_RESULT IS NOT NULL THEN \r\n&gt;            RETURN L_RESULT; \r\n&gt;          END IF;\r\n&gt;          L_RESULT := FETCH_SQLTEXT_AWR(P_SQLID, P_DBID, 'ROOT', L_TIME_LIMIT);\r\n&gt;        END IF;\r\n&gt;      ELSIF L_IS_OLD THEN \r\n&gt;        L_RESULT := FETCH_SQLTEXT_AWR(P_SQLID, P_DBID, 'DBA', L_TIME_LIMIT);\r\n&gt;      ELSE \r\n&gt;        L_RESULT := FETCH_SQLTEXT_AWR(P_SQLID, P_DBID, 'PDB', L_TIME_LIMIT);\r\n&gt;      END IF;\r\n4959a5191,5192\r\n&gt;      RETURN L_RESULT;\r\n&gt;   END FETCH_SQLTEXT;\r\n4961,4962c5194,5199\r\n&lt;     RETURN STR_TO_ASCII(L_TEXT);\r\n&lt;   END FETCH_SQLTEXT_AWR;\r\n---\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n4964,4966c5201,5230\r\n&lt;   FUNCTION FETCH_OBJ_NAME_LOCAL(P_OBJ_ID IN NUMBER, P_DBID IN NUMBER,\r\n&lt;                                 P_CON_DBID IN NUMBER, P_TIME_LIMIT IN VARCHAR)\r\n&lt;   RETURN   VARCHAR\r\n---\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION CONSTRUCT_OBJ_ELEMENT(P_NAME IN VARCHAR, P_TYPE IN VARCHAR)\r\n&gt;   RETURN   XMLTYPE\r\n&gt;   IS\r\n&gt;     L_RESULT XMLTYPE;\r\n&gt;   BEGIN\r\n&gt;     IF P_NAME IS NULL THEN\r\n&gt;       RETURN NULL;\r\n&gt;     END IF;\r\n&gt;     SELECT XMLELEMENT(\"a\",\r\n&gt;             XMLELEMENT(\"n\", P_NAME),\r\n&gt;             XMLELEMENT(\"t\", P_TYPE))\r\n&gt;     INTO   L_RESULT\r\n&gt;     FROM   SYS.DUAL;\r\n&gt;     RETURN L_RESULT;\r\n&gt;   END CONSTRUCT_OBJ_ELEMENT;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION FETCH_OBJ_NAME_DICT(P_OBJ_ID IN NUMBER, P_CON_DBID IN NUMBER, \r\n&gt;                                P_TIME_LIMIT IN BOOLEAN)\r\n&gt;   RETURN   XMLTYPE\r\n4968a5233\r\n&gt;     L_TYPE VARCHAR2(64);\r\n4971a5237\r\n&gt;     L_RESULT XMLTYPE;\r\n4973,4977c5239\r\n&lt;     L_NAME := FETCH_OBJ_NAME_AWR(P_OBJ_ID,P_DBID,P_CON_DBID,'N',P_TIME_LIMIT);\r\n&lt;     IF L_NAME IS NOT NULL THEN\r\n&lt;       RETURN STR_TO_ASCII(L_NAME);\r\n&lt;     END IF;\r\n&lt;     IF P_TIME_LIMIT = 'Y' AND ADD_INFO_TIME &gt;= ADD_INFO_BUDGET THEN \r\n---\r\n&gt;     IF P_TIME_LIMIT AND ADD_INFO_TIME &gt;= ADD_INFO_BUDGET THEN \r\n4984,4988c5246,5253\r\n&lt;            decode(subobject_name, NULL, NULL, '.' || subobject_name)) \r\n&lt;     FROM   cdb_objects\r\n&lt;     WHERE  object_id = :1\r\n&lt;       AND  con_id = con_dbid_to_id(:2)\r\n&lt;       AND  rownum &lt;= 1 ]';\r\n---\r\n&gt;            decode(subobject_name, NULL, NULL, '.' || subobject_name)),\r\n&gt;            max(object_type) \r\n&gt;     FROM   (\r\n&gt;       SELECT owner, object_name, subobject_name, object_type\r\n&gt;       FROM   cdb_objects\r\n&gt;       WHERE  object_id = :1\r\n&gt;         AND  con_id = con_dbid_to_id(:2)\r\n&gt;         AND  rownum &lt;= 1 )]';\r\n4990c5255\r\n&lt;       INTO L_NAME\r\n---\r\n&gt;       INTO L_NAME, L_TYPE\r\n4995,4998c5260,5266\r\n&lt;            decode(subobject_name, NULL, NULL, '.' || subobject_name)) \r\n&lt;     FROM   dba_objects\r\n&lt;     WHERE  object_id = :1\r\n&lt;       AND  rownum &lt;= 1 ]';\r\n---\r\n&gt;            decode(subobject_name, NULL, NULL, '.' || subobject_name)),\r\n&gt;            max(object_type) \r\n&gt;     FROM   (\r\n&gt;       SELECT owner, object_name, subobject_name, object_type\r\n&gt;       FROM   dba_objects\r\n&gt;       WHERE  object_id = :1\r\n&gt;         AND  rownum &lt;= 1) ]';\r\n5000c5268\r\n&lt;       INTO L_NAME\r\n---\r\n&gt;       INTO L_NAME, L_TYPE\r\n5003,5009c5271,5282\r\n&lt;     L_SECS := TIMING_TO_SECONDS(L_T, SYSTIMESTAMP);\r\n&lt;     ADD_INFO_TIME := ADD_INFO_TIME + L_SECS;\r\n&lt; \r\n&lt; \r\n&lt; \r\n&lt;     RETURN STR_TO_ASCII(L_NAME);\r\n&lt;   END FETCH_OBJ_NAME_LOCAL;\r\n---\r\n&gt;     IF P_TIME_LIMIT THEN\r\n&gt;       L_SECS := TIMING_TO_SECONDS(L_T, SYSTIMESTAMP);\r\n&gt;       ADD_INFO_TIME := ADD_INFO_TIME + L_SECS;\r\n&gt;     END IF;\r\n&gt;     IF L_NAME IS NULL THEN\r\n&gt;       RETURN NULL;\r\n&gt;     END IF;\r\n&gt;     RETURN CONSTRUCT_OBJ_ELEMENT(STR_TO_ASCII(L_NAME), L_TYPE);\r\n&gt;     \r\n&gt;     \r\n&gt;     EXCEPTION WHEN OTHERS THEN RETURN NULL;\r\n&gt;   END FETCH_OBJ_NAME_DICT;\r\n5010a5284,5294\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n5012,5014c5296,5298\r\n&lt;                               P_CON_DBID IN NUMBER, P_IS_PDB IN VARCHAR,\r\n&lt;                               P_TIME_LIMIT IN VARCHAR)\r\n&lt;   RETURN   VARCHAR\r\n---\r\n&gt;                               P_CON_DBID IN NUMBER, P_SOURCE IN VARCHAR,\r\n&gt;                               P_TIME_LIMIT IN BOOLEAN)\r\n&gt;   RETURN   XMLTYPE\r\n5016a5301\r\n&gt;     L_TYPE VARCHAR2(64);\r\n5018c5303\r\n&lt;     L_T    TIMESTAMP := SYSTIMESTAMP;\r\n---\r\n&gt;     L_T    TIMESTAMP;\r\n5021c5306\r\n&lt;     IF P_TIME_LIMIT = 'Y' AND ADD_INFO_TIME &gt;= ADD_INFO_BUDGET THEN \r\n---\r\n&gt;     IF P_TIME_LIMIT AND ADD_INFO_TIME &gt;= ADD_INFO_BUDGET THEN \r\n5023a5309\r\n&gt;     L_T := SYSTIMESTAMP;\r\n5025c5311\r\n&lt; q'[SELECT max(name) \r\n---\r\n&gt; q'[SELECT max(name), max(object_type) \r\n5028,5029c5314,5316\r\n&lt;            decode(subobject_name, NULL, NULL, '.' || subobject_name) as name\r\n&lt;     FROM   @AWRTAB@seg_stat_obj\r\n---\r\n&gt;            decode(subobject_name, NULL, NULL, '.' || subobject_name) as name,\r\n&gt;            object_type\r\n&gt;     FROM   dba_hist_seg_stat_obj\r\n5034,5037c5321,5325\r\n&lt;     IF P_IS_PDB = 'Y' THEN\r\n&lt;       L_TEXT := REPLACE(L_TEXT, '@AWRTAB@', 'awr_pdb_');\r\n&lt;     ELSE\r\n&lt;       L_TEXT := REPLACE(L_TEXT, '@AWRTAB@', 'dba_hist_');\r\n---\r\n&gt;     IF P_SOURCE = 'PDB' THEN\r\n&gt;       L_TEXT := REPLACE(L_TEXT, 'dba_hist_', 'awr_pdb_');\r\n&gt;     END IF;\r\n&gt;     IF P_SOURCE = 'ROOT' THEN\r\n&gt;       L_TEXT := REPLACE(L_TEXT, 'dba_hist_', 'awr_root_');\r\n5042c5330\r\n&lt;       INTO L_NAME\r\n---\r\n&gt;       INTO L_NAME, L_TYPE\r\n5047c5335\r\n&lt;       INTO L_NAME\r\n---\r\n&gt;       INTO L_NAME, L_TYPE\r\n5050,5051c5338,5349\r\n&lt;     L_SECS := TIMING_TO_SECONDS(L_T, SYSTIMESTAMP);\r\n&lt;     ADD_INFO_TIME := ADD_INFO_TIME + L_SECS;\r\n---\r\n&gt;     IF P_TIME_LIMIT THEN\r\n&gt;       L_SECS := TIMING_TO_SECONDS(L_T, SYSTIMESTAMP);\r\n&gt;       ADD_INFO_TIME := ADD_INFO_TIME + L_SECS;\r\n&gt;     END IF;\r\n&gt;     IF L_NAME IS NULL THEN\r\n&gt;       RETURN NULL;\r\n&gt;     END IF;\r\n&gt;     RETURN CONSTRUCT_OBJ_ELEMENT(STR_TO_ASCII(L_NAME), L_TYPE);\r\n&gt;     \r\n&gt;     \r\n&gt;     EXCEPTION WHEN OTHERS THEN RETURN NULL;\r\n&gt;   END FETCH_OBJ_NAME_AWR;\r\n5052a5351,5421\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION FETCH_OBJ_NAME(P_OBJ_ID IN NUMBER, P_DBID IN NUMBER,\r\n&gt;                           P_CON_DBID IN NUMBER, P_IS_LOCAL IN VARCHAR,\r\n&gt;                           P_LOCAL_TYPE IN VARCHAR, P_IS_OLD IN VARCHAR,\r\n&gt;                           P_TIME_LIMIT IN VARCHAR)\r\n&gt;   RETURN   XMLTYPE\r\n&gt;   IS\r\n&gt;     L_RESULT XMLTYPE := NULL;\r\n&gt;     L_TIME_LIMIT BOOLEAN;\r\n&gt;   BEGIN\r\n&gt;     IF UPPER(P_TIME_LIMIT) = 'Y' THEN\r\n&gt;       L_TIME_LIMIT := TRUE;\r\n&gt;     ELSE\r\n&gt;       L_TIME_LIMIT := FALSE;\r\n&gt;     END IF;\r\n5053a5423,5466\r\n&gt;     IF UPPER(P_IS_LOCAL) = 'Y' THEN \r\n&gt;       IF UPPER(P_LOCAL_TYPE) = 'ROOT' THEN \r\n&gt;         L_RESULT := FETCH_OBJ_NAME_DICT(P_OBJ_ID, P_CON_DBID, L_TIME_LIMIT);\r\n&gt;         IF L_RESULT IS NOT NULL THEN\r\n&gt;           RETURN L_RESULT;\r\n&gt;         END IF;\r\n&gt;         L_RESULT := FETCH_OBJ_NAME_AWR(P_OBJ_ID, P_DBID, P_CON_DBID, \r\n&gt;                                         'HIST', L_TIME_LIMIT);\r\n&gt;       ELSIF UPPER(P_LOCAL_TYPE) = 'PDB' THEN \r\n&gt;         IF UPPER(P_IS_OLD) = 'Y' THEN \r\n&gt;           L_RESULT := FETCH_OBJ_NAME_DICT(P_OBJ_ID, NULL, L_TIME_LIMIT);\r\n&gt;           IF L_RESULT IS NOT NULL THEN\r\n&gt;             RETURN L_RESULT;\r\n&gt;           END IF;\r\n&gt;           L_RESULT := FETCH_OBJ_NAME_AWR(P_OBJ_ID, P_DBID, P_CON_DBID, \r\n&gt;                                           'HIST', L_TIME_LIMIT);\r\n&gt;         ELSE \r\n&gt;           L_RESULT := FETCH_OBJ_NAME_AWR(P_OBJ_ID, P_CON_DBID, NULL, \r\n&gt;                                           'PDB', L_TIME_LIMIT);\r\n&gt;           IF L_RESULT IS NOT NULL THEN\r\n&gt;             RETURN L_RESULT;\r\n&gt;           END IF;\r\n&gt;           L_RESULT := FETCH_OBJ_NAME_DICT(P_OBJ_ID, NULL, L_TIME_LIMIT);\r\n&gt;           IF L_RESULT IS NOT NULL THEN\r\n&gt;             RETURN L_RESULT;\r\n&gt;           END IF;\r\n&gt;           L_RESULT := FETCH_OBJ_NAME_AWR(P_OBJ_ID, P_DBID, P_CON_DBID, \r\n&gt;                                           'ROOT', L_TIME_LIMIT);\r\n&gt;         END IF;\r\n&gt;       ELSE \r\n&gt;         L_RESULT := FETCH_OBJ_NAME_AWR(P_OBJ_ID, P_DBID, NULL, \r\n&gt;                                         'HIST', L_TIME_LIMIT);\r\n&gt;         IF L_RESULT IS NOT NULL THEN\r\n&gt;           RETURN L_RESULT;\r\n&gt;         END IF;\r\n&gt;         L_RESULT := FETCH_OBJ_NAME_DICT(P_OBJ_ID, NULL, L_TIME_LIMIT);\r\n&gt;       END IF;     \r\n&gt;     ELSIF UPPER(P_LOCAL_TYPE) = 'PDB' THEN \r\n&gt;       L_RESULT := FETCH_OBJ_NAME_AWR(P_OBJ_ID, P_DBID, P_CON_DBID, \r\n&gt;                                       'PDB', L_TIME_LIMIT);\r\n&gt;     ELSE \r\n&gt;       L_RESULT := FETCH_OBJ_NAME_AWR(P_OBJ_ID, P_DBID, P_CON_DBID, \r\n&gt;                                       'HIST', L_TIME_LIMIT);\r\n&gt;     END IF;\r\n5055,5056c5468,5469\r\n&lt;     RETURN STR_TO_ASCII(L_NAME);\r\n&lt;   END FETCH_OBJ_NAME_AWR;\r\n---\r\n&gt;     RETURN L_RESULT;\r\n&gt;   END FETCH_OBJ_NAME;  \r\n5057a5471,5479\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n5091,5093d5512\r\n&lt; \r\n&lt; \r\n&lt; \r\n5094a5514,5516\r\n&gt;     \r\n&gt;     \r\n&gt;     EXCEPTION WHEN OTHERS THEN RETURN NULL;\r\n5096a5519,5527\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n5128,5130d5558\r\n&lt; \r\n&lt; \r\n&lt; \r\n5131a5560,5562\r\n&gt;     \r\n&gt;     \r\n&gt;     EXCEPTION WHEN OTHERS THEN RETURN NULL;\r\n5208a5640\r\n&gt;     L_RESOLUTION      VARCHAR2(100);\r\n5227a5660\r\n&gt;         ,T.RESOLUTION AS RESOLUTION\r\n5240a5674\r\n&gt;                    ,RESOLUTION VARCHAR2(100) PATH 'resolution'\r\n5267a5702\r\n&gt;       L_RESOLUTION      := A.RESOLUTION;\r\n5314c5749\r\n&lt;             L_AWR_INFO);\r\n---\r\n&gt;             L_AWR_INFO, L_RESOLUTION);\r\n5318c5753,5754\r\n&lt;             L_SHOW_SQL, L_VERBOSE_XML, L_INSTANCE_NUMBER, L_AWR_INFO);\r\n---\r\n&gt;             L_SHOW_SQL, L_VERBOSE_XML, L_INSTANCE_NUMBER, L_AWR_INFO, \r\n&gt;             L_RESOLUTION);\r\n5322c5758,5759\r\n&lt;             L_SHOW_SQL, L_VERBOSE_XML, L_INSTANCE_NUMBER, L_AWR_INFO);\r\n---\r\n&gt;             L_SHOW_SQL, L_VERBOSE_XML, L_INSTANCE_NUMBER, L_AWR_INFO,\r\n&gt;             L_RESOLUTION);\r\n5328c5765,5766\r\n&lt;             L_INCLUDE_BG, L_INSTANCE_NUMBER, L_MINIMIZE_COST);\r\n---\r\n&gt;             L_INCLUDE_BG, L_INSTANCE_NUMBER, L_MINIMIZE_COST,\r\n&gt;             L_RESOLUTION);\r\n5333c5771,5772\r\n&lt;             L_INCLUDE_BG, L_INSTANCE_NUMBER, L_MINIMIZE_COST);\r\n---\r\n&gt;             L_INCLUDE_BG, L_INSTANCE_NUMBER, L_MINIMIZE_COST,\r\n&gt;             L_RESOLUTION);\r\n5338c5777,5778\r\n&lt;             L_MINIMIZE_COST);\r\n---\r\n&gt;             L_MINIMIZE_COST,\r\n&gt;             L_RESOLUTION);\r\n5344c5784,5785\r\n&lt;             L_INCLUDE_BG, L_INSTANCE_NUMBER);\r\n---\r\n&gt;             L_INCLUDE_BG, L_INSTANCE_NUMBER,\r\n&gt;             L_RESOLUTION);\r\n5349c5790,5791\r\n&lt;             L_INCLUDE_BG, L_INSTANCE_NUMBER);\r\n---\r\n&gt;             L_INCLUDE_BG, L_INSTANCE_NUMBER,\r\n&gt;             L_RESOLUTION);\r\n5353c5795,5796\r\n&lt;             L_SHOW_SQL, L_VERBOSE_XML, L_INCLUDE_BG, L_INSTANCE_NUMBER);\r\n---\r\n&gt;             L_SHOW_SQL, L_VERBOSE_XML, L_INCLUDE_BG, L_INSTANCE_NUMBER,\r\n&gt;             L_RESOLUTION);\r\n5403c5846,5847\r\n&lt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n')\r\n---\r\n&gt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n'\r\n&gt;     , RESOLUTION IN VARCHAR2 := 'medium')\r\n5411c5855,5856\r\n&lt;                NVL(AWR_INFO,'n'), NVL(IGNORE_CPU_HISTORY,'n'));\r\n---\r\n&gt;                NVL(AWR_INFO,'n'), NVL(IGNORE_CPU_HISTORY,'n'),\r\n&gt;                NVL(RESOLUTION,'medium'));\r\n5418a5864\r\n&gt;             ,NVL(RESOLUTION,'medium') AS \"resolution\"\r\n5450c5896,5897\r\n&lt;     , AWR_INFO IN VARCHAR2 := 'n')\r\n---\r\n&gt;     , AWR_INFO IN VARCHAR2 := 'n'\r\n&gt;     , RESOLUTION IN VARCHAR2 := 'medium')\r\n5459c5906,5907\r\n&lt;                      INSTANCE_NUMBER,'n',NVL(AWR_INFO,'n'));\r\n---\r\n&gt;                      INSTANCE_NUMBER,'n',NVL(AWR_INFO,'n'),\r\n&gt;                      NVL(RESOLUTION,'medium'));\r\n5467a5916\r\n&gt;             ,NVL(RESOLUTION,'medium') AS \"resolution\"\r\n5499c5948,5949\r\n&lt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n')\r\n---\r\n&gt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n'\r\n&gt;     , RESOLUTION IN VARCHAR2 := 'medium')\r\n5509c5959,5960\r\n&lt;                   NVL(IGNORE_CPU_HISTORY,'n'));\r\n---\r\n&gt;                   NVL(IGNORE_CPU_HISTORY,'n'),\r\n&gt;                   NVL(RESOLUTION,'medium'));\r\n5519a5971\r\n&gt;             ,NVL(RESOLUTION,'medium') AS \"resolution\"\r\n5549c6001,6002\r\n&lt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n')\r\n---\r\n&gt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n'\r\n&gt;     , RESOLUTION IN VARCHAR2 := 'medium')\r\n5561c6014,6015\r\n&lt;                    MINIMIZE_COST,'n',IGNORE_CPU_HISTORY);\r\n---\r\n&gt;                    MINIMIZE_COST,'n',IGNORE_CPU_HISTORY,\r\n&gt;                    NVL(RESOLUTION,'medium'));\r\n5570a6025\r\n&gt;             ,RESOLUTION AS \"resolution\"\r\n5614c6069,6070\r\n&lt;     , MINIMIZE_COST   IN VARCHAR := 'n')\r\n---\r\n&gt;     , MINIMIZE_COST   IN VARCHAR := 'n'\r\n&gt;     , RESOLUTION IN VARCHAR2 := 'medium')\r\n5627c6083,6084\r\n&lt;                      INSTANCE_NUMBER, MINIMIZE_COST,'n');\r\n---\r\n&gt;                      INSTANCE_NUMBER, MINIMIZE_COST,'n',\r\n&gt;                      NVL(RESOLUTION,'medium'));\r\n5637a6095\r\n&gt;             ,RESOLUTION AS \"resolution\"\r\n5679c6137,6138\r\n&lt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n')\r\n---\r\n&gt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n'\r\n&gt;     , RESOLUTION IN VARCHAR2 := 'medium')\r\n5692c6151,6152\r\n&lt;                   MINIMIZE_COST,'n',IGNORE_CPU_HISTORY);\r\n---\r\n&gt;                   MINIMIZE_COST,'n',IGNORE_CPU_HISTORY,\r\n&gt;                   NVL(RESOLUTION,'medium'));\r\n5704a6165\r\n&gt;             ,RESOLUTION AS \"resolution\"\r\n5741c6202,6203\r\n&lt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n')\r\n---\r\n&gt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n'\r\n&gt;     , RESOLUTION IN VARCHAR2 := 'medium')\r\n5748c6210,6211\r\n&lt;               NVL(IGNORE_CPU_HISTORY,'n'));\r\n---\r\n&gt;               NVL(IGNORE_CPU_HISTORY,'n'),\r\n&gt;               NVL(RESOLUTION,'medium'));\r\n5775c6238,6239\r\n&lt;     , INSTANCE_NUMBER IN NUMBER := NULL)\r\n---\r\n&gt;     , INSTANCE_NUMBER IN NUMBER := NULL\r\n&gt;     , RESOLUTION IN VARCHAR2 := 'medium')\r\n5781c6245,6246\r\n&lt;               NVL(INCLUDE_BG,'n'), INSTANCE_NUMBER, 'n');\r\n---\r\n&gt;               NVL(INCLUDE_BG,'n'), INSTANCE_NUMBER, 'n',\r\n&gt;               NVL(RESOLUTION,'medium'));\r\n5808c6273,6274\r\n&lt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n')\r\n---\r\n&gt;     , IGNORE_CPU_HISTORY IN VARCHAR := 'n'\r\n&gt;     , RESOLUTION IN VARCHAR2 := 'medium')\r\n5816c6282,6283\r\n&lt;               NVL(IGNORE_CPU_HISTORY,'n'));\r\n---\r\n&gt;               NVL(IGNORE_CPU_HISTORY,'n'),\r\n&gt;               NVL(RESOLUTION,'medium'));\r\n5839c6306,6307\r\n&lt;     , MINIMIZE_COST   IN VARCHAR2 := 'n')\r\n---\r\n&gt;     , MINIMIZE_COST   IN VARCHAR2 := 'n'\r\n&gt;     , RESOLUTION IN VARCHAR2 := 'medium')\r\n5845c6313,6314\r\n&lt;               NVL(INCLUDE_BG,'n'), INSTANCE_NUMBER, NVL(MINIMIZE_COST,'n'),'n');\r\n---\r\n&gt;               NVL(INCLUDE_BG,'n'), INSTANCE_NUMBER, NVL(MINIMIZE_COST,'n'),'n',\r\n&gt;               NVL(RESOLUTION,'medium'));\r\n5873c6342,6343\r\n&lt;     , MINIMIZE_COST   IN VARCHAR2 := 'n')\r\n---\r\n&gt;     , MINIMIZE_COST   IN VARCHAR2 := 'n'\r\n&gt;     , RESOLUTION IN VARCHAR2 := 'medium')\r\n5879c6349,6350\r\n&lt;               NVL(INCLUDE_BG,'n'), INSTANCE_NUMBER, NVL(MINIMIZE_COST,'n'));\r\n---\r\n&gt;               NVL(INCLUDE_BG,'n'), INSTANCE_NUMBER, NVL(MINIMIZE_COST,'n'),\r\n&gt;               NVL(RESOLUTION,'medium'));\r\n5907c6378,6379\r\n&lt;     , MINIMIZE_COST   IN VARCHAR2 := 'n')\r\n---\r\n&gt;     , MINIMIZE_COST   IN VARCHAR2 := 'n'\r\n&gt;     , RESOLUTION IN VARCHAR2 := 'medium')\r\n5914c6386,6387\r\n&lt;               NVL(MINIMIZE_COST,'n'),'n');\r\n---\r\n&gt;               NVL(MINIMIZE_COST,'n'),'n',\r\n&gt;               NVL(RESOLUTION,'medium'));\r\n<\/pre>\n<div id=\"SYS.DBMS_AUTO_INDEX.PACKAGE BODY.19.0.0.0_19.6RUR\">SYS.DBMS_AUTO_INDEX &#8211; PACKAGE BODY (19.6RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">457a458,485\r\n&gt;  \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt;   PROCEDURE DDL_EXECUTE_CALLOUT(\r\n&gt;     STMT     IN      VARCHAR2)\r\n&gt;   IS\r\n&gt;   EXTERNAL NAME \"kapiDDLExecute\" WITH CONTEXT\r\n&gt;   PARAMETERS(CONTEXT,\r\n&gt;     STMT     OCISTRING,      STMT         INDICATOR       SB4)\r\n&gt;   LIBRARY DBMS_AUTO_INDEX_LIB;\r\n&gt; \r\n527c555,558\r\n&lt;         EXECUTE IMMEDIATE STMT;\r\n---\r\n&gt;         \r\n&gt;         \r\n&gt;         \r\n&gt;         DDL_EXECUTE_CALLOUT('\/*AUTO_INDEX:ddl*\/' || STMT);\r\n<\/pre>\n<div id=\"SYS.DBMS_AUTO_INDEX_INTERNAL.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_AUTO_INDEX_INTERNAL &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">323a324,325\r\n&gt;   \r\n&gt;   \r\n327c329\r\n&lt;                                                       AI_STS_CAPTURE_TASK_ON;\r\n---\r\n&gt;                                                       AI_STS_CAPTURE_TASK_OFF;\r\n<\/pre>\n<div id=\"SYS.DBMS_DBFS_CONTENT.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_DBFS_CONTENT &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">5485a5486,5496\r\n&gt;         IF (TRCLVL = 0) THEN\r\n&gt;             EXECUTE IMMEDIATE 'alter session set \"_kdlu_trace_system\"=0';\r\n&gt;             EXECUTE IMMEDIATE 'alter session set \"_kdlu_trace_layer\"=0';\r\n&gt;             EXECUTE IMMEDIATE 'alter session set \"_securefile_timers\"=FALSE';\r\n&gt;         ELSE\r\n&gt;             EXECUTE IMMEDIATE 'alter session set \"_kdlu_trace_system\"=1532';\r\n&gt;             EXECUTE IMMEDIATE 'alter session set \"_kdlu_trace_layer\"=1048576';\r\n&gt;             EXECUTE IMMEDIATE 'alter session set \"_securefile_timers\"=TRUE';\r\n&gt;         END IF;             \r\n&gt;         \r\n&gt; \r\n5513a5525\r\n&gt;         TIME        TIMESTAMP := SYSTIMESTAMP;\r\n5517a5530,5532\r\n&gt;                 TO_CHAR(TIME, 'HH24:MI:SS') ||\r\n&gt;                 '# \r\n&gt;                 '         ||\r\n<\/pre>\n<div id=\"SYS.DBMS_HADOOP.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_HADOOP &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">158,159c158,159\r\n&lt; \r\n&lt; \r\n---\r\n&gt;   \r\n&gt;   \r\n163a164,173\r\n&gt; \r\n&gt;   IF (INSTR(TEXT_OF_DDL, 'UTL_RAW.CAST_TO_RAW') &gt; 0) THEN\r\n&gt;     TEXT_OF_DDL := DBMS_HADOOP_INTERNAL.EVAL_PART_KEY_OPERATOR(TEXT_OF_DDL, 'UTL_RAW.CAST_TO_RAW');\r\n&gt;   END IF;\r\n&gt;   IF (INSTR(TEXT_OF_DDL, 'TO_DATE') &gt; 0) THEN\r\n&gt;     TEXT_OF_DDL := DBMS_HADOOP_INTERNAL.EVAL_PART_KEY_OPERATOR(TEXT_OF_DDL, 'TO_DATE');\r\n&gt;   END IF;\r\n&gt;   IF (INSTR(TEXT_OF_DDL, 'TO_TIMESTAMP') &gt; 0) THEN\r\n&gt;     TEXT_OF_DDL := DBMS_HADOOP_INTERNAL.EVAL_PART_KEY_OPERATOR(TEXT_OF_DDL, 'TO_TIMESTAMP');\r\n&gt;   END IF;\r\n<\/pre>\n<div id=\"SYS.DBMS_HADOOP_INTERNAL.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_HADOOP_INTERNAL &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">322a323\r\n&gt;     TMP_DDL CLOB := ORIG_DDL;\r\n324a326,332\r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    TMP_DDL := REPLACE(TMP_DDL, 'COLLATE \"USING_NLS_COMP\"', '');\r\n&gt;    TMP_DDL := REPLACE(TMP_DDL, 'DEFAULT COLLATION \"USING_NLS_COMP\"', '');\r\n&gt; \r\n&gt; \r\n326c334\r\n&lt;    COLKEYS := SUBSTR(ORIG_DDL, INSTR(ORIG_DDL, '(')+1);\r\n---\r\n&gt;    COLKEYS := SUBSTR(TMP_DDL, INSTR(TMP_DDL, '(')+1);\r\n1405c1413\r\n&lt;            AND DBMS_HADOOP_INTERNAL.GET_OBJNO_FROM_PARTITIONED_ET(DT.TABLE_NAME,\r\n---\r\n&gt;            AND DBMS_HADOOP_INTERNAL.GET_OBJNO_FROM_PARTITIONED_ET(DT.CLUSTER_ID,\r\n1489a1498,1552\r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; FUNCTION EVAL_PART_KEY_OPERATOR(TEXT_OF_DDL IN OUT CLOB, KEY VARCHAR2)\r\n&gt;   RETURN CLOB\r\n&gt; IS\r\n&gt;   KEYSTR CLOB;\r\n&gt;   RAWVAL RAW(256); \r\n&gt;   STARTPOS NUMBER := 0;\r\n&gt;   VALSTR VARCHAR2(4000);\r\n&gt;   REPLACESTR VARCHAR2(4000);\r\n&gt;   COUNTOFKEY NUMBER := 0;\r\n&gt; BEGIN\r\n&gt;    COUNTOFKEY := REGEXP_COUNT(TEXT_OF_DDL, KEY);\r\n&gt; \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    \r\n&gt;    FOR I IN 1..COUNTOFKEY\r\n&gt;    LOOP\r\n&gt;      STARTPOS := INSTR(TEXT_OF_DDL, KEY);\r\n&gt; \r\n&gt;      KEYSTR := SUBSTR(TEXT_OF_DDL, STARTPOS + LENGTH(KEY)+2);\r\n&gt;      KEYSTR := SUBSTR(KEYSTR, 0, INSTR(KEYSTR, ')')-2);\r\n&gt; \r\n&gt;      IF (KEY = 'UTL_RAW.CAST_TO_RAW') THEN\r\n&gt;        RAWVAL := UTL_RAW.CAST_TO_RAW(KEYSTR);\r\n&gt;        VALSTR := '''' || RAWVAL || '''';\r\n&gt;      ELSIF (KEY = 'TO_DATE') THEN\r\n&gt;        VALSTR := TO_CHAR(TO_DATE(KEYSTR, 'YYYY-MM-DD'));\r\n&gt;        VALSTR := '''' || VALSTR || '''';\r\n&gt;      ELSIF (KEY = 'TO_TIMESTAMP') THEN\r\n&gt;        VALSTR := TO_CHAR(TO_TIMESTAMP(KEYSTR, 'YYYY-MM-DD HH24:MI:SS:FF'));\r\n&gt;        VALSTR := '''' || VALSTR || '''';\r\n&gt;      END IF;\r\n&gt; \r\n&gt;      REPLACESTR := SUBSTR(TEXT_OF_DDL, STARTPOS, LENGTH(KEYSTR) + LENGTH(KEY)+4); \r\n&gt; \r\n&gt;      TEXT_OF_DDL := REPLACE(TEXT_OF_DDL, REPLACESTR, VALSTR);\r\n&gt;    END LOOP;\r\n&gt; \r\n&gt;    RETURN TEXT_OF_DDL;\r\n&gt; END EVAL_PART_KEY_OPERATOR;\r\n<\/pre>\n<div id=\"SYS.DBMS_ISCHED.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_ISCHED &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">5045,5046c5045,5046\r\n&lt;        IF TRACING THEN\r\n&lt;          SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n---\r\n&gt;     IF TRACING THEN\r\n&gt;       SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n5048c5048\r\n&lt;          SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n---\r\n&gt;       SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n5050,5051c5050,5060\r\n&lt;        END IF;\r\n&lt;        RAISE;\r\n---\r\n&gt;     END IF;\r\n&gt;     \r\n&gt;     \r\n&gt;     IF LOCK_ERROR = 0 THEN\r\n&gt;       LOCK_ERROR := DBMS_LOCK.RELEASE(LOCKHANDLE=&gt;LOCK_HANDLE);\r\n&gt;       IF TRACING THEN\r\n&gt;         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,\r\n&gt;         'Releasing evaluation lock with error ' || LOCK_ERROR);\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt;     RAISE;\r\n<\/pre>\n<div id=\"SYS.DBMS_ISYNCREF.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_ISYNCREF &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">66a67,120\r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; PROCEDURE DDL_EXECUTE_3GL(DDLTXT IN CLOB, USR IN BINARY_INTEGER DEFAULT 0) AS\r\n&gt; EXTERNAL\r\n&gt; NAME     \"kkziImplDdl\"\r\n&gt; LIBRARY DBMS_SNAPSHOT_LIB\r\n&gt; LANGUAGE C\r\n&gt; WITH CONTEXT\r\n&gt; PARAMETERS\r\n&gt; (CONTEXT,\r\n&gt;  DDLTXT OCILOBLOCATOR, DDLTXT INDICATOR SB2,\r\n&gt;  USR    UB4\r\n&gt; );\r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; \r\n&gt; PROCEDURE DDL_EXECUTE(DDLTXT IN CLOB, USR IN BINARY_INTEGER DEFAULT 0) AS\r\n&gt; BEGIN\r\n&gt;   WRITE_TRACE('Executing DDL :'||DDLTXT); \r\n&gt; \r\n&gt;   DDL_EXECUTE_3GL(DDLTXT, USR);\r\n&gt;   COMMIT;\r\n&gt;  \r\n&gt;   WRITE_TRACE('Executing DDL : Succeeded');\r\n&gt; EXCEPTION\r\n&gt;   WHEN OTHERS THEN\r\n&gt;    WRITE_TRACE('Executing DDL : Failed with '|| SQLERRM);\r\n&gt;    RAISE;\r\n&gt; END;\r\n&gt; \r\n&gt; \r\n&gt; \r\n264c318\r\n&lt;     EXECUTE IMMEDIATE L_STRSQL;\r\n---\r\n&gt;     DDL_EXECUTE(L_STRSQL);\r\n415c469\r\n&lt;     EXECUTE IMMEDIATE RESULT_SQLSTR;\r\n---\r\n&gt;     DDL_EXECUTE(RESULT_SQLSTR);\r\n<\/pre>\n<div id=\"SYS.DBMS_LDAP.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_LDAP &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1255,1258d1254\r\n&lt;              IF SSLWALLETPASSWD IS NULL THEN\r\n&lt;                 DBMS_SYS_ERROR.RAISE_SYSTEM_ERROR(-31221);\r\n&lt;                 \r\n&lt;              END IF;\r\n1276,1279d1271\r\n&lt;           END IF;\r\n&lt; \r\n&lt;           IF SSLWALLETPASSWD IS NULL THEN\r\n&lt;              RETURN INVALID_SSLWALLETPASSWD;\r\n<\/pre>\n<div id=\"SYS.DBMS_PERF.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_PERF &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1019a1020,1023\r\n&gt;     L_ADDM_ELAPSED       NUMBER := 0;\r\n&gt;     L_ADDM_CPU           NUMBER := 0;\r\n&gt; \r\n&gt;     \r\n1044a1049\r\n&gt;     L_TZ             VARCHAR2(10)    := NULL;\r\n1047a1053,1057\r\n&gt;     \r\n&gt;     \r\n&gt;     L_AWR_INFO       VARCHAR2(8) := 'y';\r\n&gt; \r\n&gt;     \r\n1084a1095,1098\r\n&gt; \t\r\n&gt;     L_START_TIME_ADDM  VARCHAR2(32767) := NULL;\r\n&gt;     L_END_TIME_ADDM    VARCHAR2(32767) := NULL;\r\n&gt; \r\n1454a1469,1472\r\n&gt;     L_TZ := DBMS_SQLTUNE_UTIL2.GET_TZ_OFFSET();\r\n&gt; \r\n&gt;     \r\n&gt;     \r\n1463,1476c1481,1489\r\n&lt;         IF (L_IS_REALTIME = 1) THEN\r\n&lt;           L_TIME_MODE := 'realtime';\r\n&lt;           L_BEGIN_TIME_UTC := \r\n&lt;             TO_CHAR(CAST(SYS_EXTRACT_UTC(L_RT_OUTER_START_TIME) AS DATE), \r\n&lt;                     DBMS_REPORT.DATE_FMT);\r\n&lt;           L_TIME_SINCE_SEC := (SYSDATE - L_RT_OUTER_START_TIME)*86400;\r\n&lt;         \r\n&lt;         ELSE\r\n&lt;           L_TIME_MODE := 'historical';\r\n&lt;           L_BEGIN_TIME_UTC := \r\n&lt;             TO_CHAR(CAST(SYS_EXTRACT_UTC(L_OUTER_START_TIME) AS DATE), \r\n&lt;                     DBMS_REPORT.DATE_FMT);\r\n&lt;           L_TIME_SINCE_SEC := (SYSDATE - L_OUTER_START_TIME)*86400;\r\n&lt;         END IF;\r\n---\r\n&gt;         L_TIME_MODE := 'historical';\r\n&gt;         L_BEGIN_TIME_UTC := TO_CHAR(L_OUTER_START_TIME,\r\n&gt;                                     'yyyy-mm-dd hh24:mi:ss') || L_TZ;\r\n&gt;         L_BEGIN_TIME_UTC := \r\n&gt;           TO_CHAR(CAST(SYS_EXTRACT_UTC(\r\n&gt;               TO_TIMESTAMP_TZ(L_BEGIN_TIME_UTC,\r\n&gt;                   'yyyy-mm-dd hh24:mi:ssTZH:TZM')) AS DATE), \r\n&gt;                   DBMS_REPORT.DATE_FMT);\r\n&gt;         L_TIME_SINCE_SEC := (SYSDATE - L_OUTER_START_TIME)*86400;\r\n1477a1491,1492\r\n&gt;         L_END_TIME_UTC := TO_CHAR(L_OUTER_END_TIME,\r\n&gt;                                   'yyyy-mm-dd hh24:mi:ss') || L_TZ;\r\n1479c1494,1496\r\n&lt;           TO_CHAR(CAST(SYS_EXTRACT_UTC(L_OUTER_END_TIME) AS DATE), \r\n---\r\n&gt;           TO_CHAR(CAST(SYS_EXTRACT_UTC(\r\n&gt;               TO_TIMESTAMP_TZ(L_END_TIME_UTC,\r\n&gt;                   'yyyy-mm-dd hh24:mi:ssTZH:TZM')) AS DATE), \r\n1488a1506\r\n&gt;                               AWR_INFO        =&gt; L_AWR_INFO,\r\n1637a1656,1658\r\n&gt; \r\n&gt;         L_BEGIN_TIME_UTC := TO_CHAR(L_SELECTED_START_TIME,\r\n&gt;                                     'yyyy-mm-dd hh24:mi:ss') || L_TZ; \r\n1639,1640c1660,1666\r\n&lt;           TO_CHAR(CAST(SYS_EXTRACT_UTC(L_SELECTED_START_TIME) AS DATE), \r\n&lt;                   DBMS_REPORT.DATE_FMT);\r\n---\r\n&gt;              TO_CHAR(CAST(SYS_EXTRACT_UTC(\r\n&gt;                  TO_TIMESTAMP_TZ(L_BEGIN_TIME_UTC,\r\n&gt;                     'yyyy-mm-dd hh24:mi:ssTZH:TZM')) AS DATE), \r\n&gt;                     DBMS_REPORT.DATE_FMT);\r\n&gt; \r\n&gt;         L_END_TIME_UTC := TO_CHAR(L_SELECTED_END_TIME,\r\n&gt;                                   'yyyy-mm-dd hh24:mi:ss') || L_TZ;\r\n1642,1643c1668,1672\r\n&lt;           TO_CHAR(CAST(SYS_EXTRACT_UTC(L_SELECTED_END_TIME) AS DATE), \r\n&lt;                   DBMS_REPORT.DATE_FMT);\r\n---\r\n&gt;             TO_CHAR(CAST(SYS_EXTRACT_UTC(\r\n&gt;                 TO_TIMESTAMP_TZ(L_END_TIME_UTC, \r\n&gt;                     'yyyy-mm-dd hh24:mi:ssTZH:TZM')) AS DATE), \r\n&gt;                     DBMS_REPORT.DATE_FMT);\r\n&gt; \r\n1747,1749c1776\r\n&lt;       IF (L_IS_REALTIME = 1 AND L_SPOTREP = 0\r\n&lt;           AND LOWER(REPORT_LEVEL) != REPORT_LEVEL_WATCHDOG \r\n&lt;           AND L_OUTER_END_TIME = L_SELECTED_END_TIME) THEN\r\n---\r\n&gt;       IF(IS_OMX = 1) THEN\r\n1750a1778,1807\r\n&gt;         DBMS_REPORT.GET_TIMING_INFO(0, L_ADDM_ELAPSED, L_ADDM_CPU);\r\n&gt; \r\n&gt;         IF(L_IS_REALTIME = 1) THEN\r\n&gt; \t  \r\n&gt;           L_START_TIME_ADDM := TO_CHAR(L_OUTER_START_TIME,\r\n&gt; \t\t\t\t    'mm\/dd\/yyyy hh24:mi:ss');\r\n&gt;           L_END_TIME_ADDM := TO_CHAR(L_OUTER_END_TIME,\r\n&gt;                                   'mm\/dd\/yyyy hh24:mi:ss');   \r\n&gt; \r\n&gt;         ELSE\r\n&gt;           L_START_TIME_ADDM := TO_CHAR(L_SELECTED_START_TIME,\r\n&gt;                                       'mm\/dd\/yyyy hh24:mi:ss');\r\n&gt;           L_END_TIME_ADDM := TO_CHAR(L_SELECTED_END_TIME,\r\n&gt; \t\t\t\t    'mm\/dd\/yyyy hh24:mi:ss');\r\n&gt;  \r\n&gt;         END IF;\r\n&gt; \r\n&gt;         L_ADDM_XML := SYS.PRVT_HDM.ADDM_REPORT_XML(\r\n&gt;                             P_DBID       =&gt; NULL,\r\n&gt;                             P_INST_ID    =&gt; INST_ID,\r\n&gt;                             P_BEGIN_TIME =&gt; L_START_TIME_ADDM,\r\n&gt;                             P_END_TIME   =&gt; L_END_TIME_ADDM,\r\n&gt;                             P_DAYS       =&gt; NULL,\r\n&gt;                             P_OWNER      =&gt; NULL,\r\n&gt;                             P_TASK_NAME  =&gt; NULL,\r\n&gt;                             P_SECTION    =&gt; 'ALL',\r\n&gt;                             P_SPOTREP    =&gt; NULL,\r\n&gt;                             P_SPOTLIST   =&gt; NULL,\r\n&gt;                             P_SHOW_SQL   =&gt; 0);\r\n&gt; \r\n1751a1809\r\n&gt;         DBMS_REPORT.GET_TIMING_INFO(1,L_ADDM_ELAPSED,L_ADDM_CPU);\r\n1753,1754c1811,1812\r\n&lt;         L_SPOTREP := 1;\r\n&lt;       END IF;\r\n---\r\n&gt;         L_REPORT_REFERENCE := DBMS_REPORT.BUILD_REPORT_REFERENCE_STRUCT(\r\n&gt;                            'addm','main',L_REF_PARAMS);\r\n1756,1760c1814,1817\r\n&lt;       IF (LOWER(REPORT_LEVEL) = REPORT_LEVEL_WATCHDOG) THEN\r\n&lt;         L_COMPRESS_ADDM := 0; \r\n&lt;       ELSE\r\n&lt;         L_COMPRESS_ADDM := 1;\r\n&lt;       END IF;\r\n---\r\n&gt;         \r\n&gt;         IF (L_ADDM_ELAPSED &lt; 0) THEN\r\n&gt;             L_ADDM_ELAPSED  := 0;\r\n&gt;         END IF;\r\n1762,1765c1819,1851\r\n&lt;       \r\n&lt;       \r\n&lt;       \r\n&lt;       IF (L_IS_REALTIME = 1) THEN\r\n---\r\n&gt;         IF (L_ADDM_CPU &lt; 0) THEN\r\n&gt;             L_ADDM_CPU  := 0;\r\n&gt;         END IF;\r\n&gt; \r\n&gt;         L_REPORT_XML := PRVT_REPORT_TAGS.BUILD_REPORT_TAG(\r\n&gt;                      L_REPORT_REFERENCE,L_ADDM_ELAPSED,L_ADDM_CPU);\r\n&gt; \r\n&gt;         L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(\r\n&gt;                      XML_ROOT,L_ACTIVE_REPORT_PARAM_XML);\r\n&gt; \r\n&gt;         L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT,L_ADDM_XML);\r\n&gt; \r\n&gt;         L_ADDM_XML := L_REPORT_XML;\r\n&gt; \r\n&gt;       ELSE \r\n&gt; \r\n&gt;         IF (L_IS_REALTIME = 1 AND L_SPOTREP = 0\r\n&gt;             AND LOWER(REPORT_LEVEL) != REPORT_LEVEL_WATCHDOG \r\n&gt;             AND L_OUTER_END_TIME = L_SELECTED_END_TIME) THEN\r\n&gt;           \r\n&gt;           \r\n&gt;           \r\n&gt;           L_SPOTREP := 1;\r\n&gt;         END IF;\r\n&gt; \r\n&gt;         IF (LOWER(REPORT_LEVEL) = REPORT_LEVEL_WATCHDOG) THEN\r\n&gt;           \r\n&gt;           L_COMPRESS_ADDM := 0;\r\n&gt;         ELSE\r\n&gt;           L_COMPRESS_ADDM := 1;\r\n&gt;         END IF;\r\n&gt; \r\n&gt;         \r\n1768c1854,1857\r\n&lt;         L_ADDM_XML := SYS.PRVT_AWR_VIEWER.REPORT_ADDM_XML(\r\n---\r\n&gt;         IF (L_IS_REALTIME = 1) THEN\r\n&gt;           \r\n&gt;           \r\n&gt;           L_ADDM_XML := SYS.PRVT_AWR_VIEWER.REPORT_ADDM_XML(\r\n1777,1779c1866,1868\r\n&lt;       ELSE\r\n&lt;         \r\n&lt;         \r\n---\r\n&gt;         ELSE\r\n&gt;           \r\n&gt;           \r\n1781c1870\r\n&lt;         L_ADDM_XML := SYS.PRVT_AWR_VIEWER.REPORT_ADDM_XML(\r\n---\r\n&gt;           L_ADDM_XML := SYS.PRVT_AWR_VIEWER.REPORT_ADDM_XML(\r\n1790a1880\r\n&gt;         END IF;\r\n2160a2251\r\n&gt;     L_TZ              VARCHAR2(10)    := NULL;\r\n2424a2516,2518\r\n&gt;     \r\n&gt;     \r\n&gt;     L_TZ := DBMS_SQLTUNE_UTIL2.GET_TZ_OFFSET();\r\n2435,2439c2529\r\n&lt;         IF (L_IS_REALTIME = 1) THEN\r\n&lt;           L_TIME_MODE := 'realtime';\r\n&lt;           L_BEGIN_TIME_UTC := \r\n&lt;             TO_CHAR(CAST(SYS_EXTRACT_UTC(L_RT_OUTER_START_TIME) AS DATE), \r\n&lt;                     DBMS_REPORT.DATE_FMT);\r\n---\r\n&gt;         L_TIME_MODE := 'historical';\r\n2441,2446c2531,2537\r\n&lt;           L_TIME_SINCE_SEC := (SYSDATE - L_RT_OUTER_START_TIME)*86400;\r\n&lt;         ELSE\r\n&lt;           L_TIME_MODE := 'historical';\r\n&lt;           L_BEGIN_TIME_UTC := \r\n&lt;             TO_CHAR(CAST(SYS_EXTRACT_UTC(L_OUTER_START_TIME) AS DATE), \r\n&lt;                     DBMS_REPORT.DATE_FMT);\r\n---\r\n&gt;         L_BEGIN_TIME_UTC := TO_CHAR(L_OUTER_START_TIME, \r\n&gt;                                    'yyyy-mm-dd hh24:mi:ss') || L_TZ;\r\n&gt;         L_BEGIN_TIME_UTC := \r\n&gt;           TO_CHAR(CAST(SYS_EXTRACT_UTC(\r\n&gt;               TO_TIMESTAMP_TZ(L_BEGIN_TIME_UTC, \r\n&gt;                   'yyyy-mm-dd hh24:mi:ssTZH:TZM')) AS DATE), \r\n&gt;                   DBMS_REPORT.DATE_FMT);\r\n2448,2449c2539\r\n&lt;           L_TIME_SINCE_SEC := (SYSDATE - L_OUTER_START_TIME)*86400;\r\n&lt;         END IF;\r\n---\r\n&gt;         L_TIME_SINCE_SEC := (SYSDATE - L_OUTER_START_TIME)*86400;\r\n2450a2541,2542\r\n&gt;         L_END_TIME_UTC := TO_CHAR(L_OUTER_END_TIME, \r\n&gt;                                   'yyyy-mm-dd hh24:mi:ss') || L_TZ;\r\n2452c2544,2546\r\n&lt;           TO_CHAR(CAST(SYS_EXTRACT_UTC(L_OUTER_END_TIME) AS DATE), \r\n---\r\n&gt;           TO_CHAR(CAST(SYS_EXTRACT_UTC(\r\n&gt;               TO_TIMESTAMP_TZ(L_END_TIME_UTC,\r\n&gt;                   'yyyy-mm-dd hh24:mi:ssTZH:TZM')) AS DATE), \r\n2469c2563\r\n&lt;                           \r\n---\r\n&gt;                               FILTER_LIST     =&gt; L_FILTER_LIST_XML,\r\n2517a2612,2613\r\n&gt;         L_BEGIN_TIME_UTC := TO_CHAR(L_SELECTED_START_TIME,\r\n&gt;                                     'yyyy-mm-dd hh24:mi:ss') || L_TZ;\r\n2519c2615,2617\r\n&lt;             TO_CHAR(CAST(SYS_EXTRACT_UTC(L_SELECTED_START_TIME) AS DATE), \r\n---\r\n&gt;             TO_CHAR(CAST(SYS_EXTRACT_UTC(\r\n&gt;                 TO_TIMESTAMP_TZ(L_BEGIN_TIME_UTC,\r\n&gt;                     'yyyy-mm-dd hh24:mi:ssTZH:TZM')) AS DATE), \r\n2521a2620,2621\r\n&gt;         L_END_TIME_UTC := TO_CHAR(L_SELECTED_END_TIME,\r\n&gt;                                   'yyyy-mm-dd hh24:mi:ss') || L_TZ;\r\n2523c2623,2625\r\n&lt;             TO_CHAR(CAST(SYS_EXTRACT_UTC(L_SELECTED_END_TIME) AS DATE), \r\n---\r\n&gt;             TO_CHAR(CAST(SYS_EXTRACT_UTC(\r\n&gt;                 TO_TIMESTAMP_TZ(L_END_TIME_UTC,\r\n&gt;                     'yyyy-mm-dd hh24:mi:ssTZH:TZM')) AS DATE), \r\n3157,3158c3259\r\n&lt;                        \r\n&lt;                        \r\n---\r\n&gt;                               FILTER_LIST     =&gt; L_FILTER_LIST_XML,\r\n<\/pre>\n<div id=\"SYS.DBMS_RCVMAN.PACKAGE BODY.19.0.0.0_19.7RUR\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY (19.7RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">122c122\r\n&lt; CATALOGVERSION CONSTANT VARCHAR2(11) := '19.07.00.00'; \r\n---\r\n&gt; CATALOGVERSION CONSTANT VARCHAR2(11) := '19.07.01.00'; \r\n<\/pre>\n<div id=\"SYS.DBMS_RCVMAN.PACKAGE BODY.19.0.0.0_19.6RUR\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY (19.6RUR):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">122c122\r\n&lt; CATALOGVERSION CONSTANT VARCHAR2(11) := '19.06.01.00'; \r\n---\r\n&gt; CATALOGVERSION CONSTANT VARCHAR2(11) := '19.06.02.00'; \r\n<\/pre>\n<div id=\"SYS.DBMS_RCVMAN.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_RCVMAN &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">122c122\r\n&lt; CATALOGVERSION CONSTANT VARCHAR2(11) := '19.07.00.00'; \r\n---\r\n&gt; CATALOGVERSION CONSTANT VARCHAR2(11) := '19.08.00.00'; \r\n6274c6274\r\n&lt;           DECODE(A.NEXT_CHANGE#, HIGHSCNVAL, -2, A.STAMP) STAMP,\r\n---\r\n&gt;           DECODE(A.ARCHIVED, 'NO', -2, A.STAMP) STAMP,\r\n6480c6480\r\n&lt;           DECODE(A.NEXT_CHANGE#, HIGHSCNVAL, -2, A.STAMP) STAMP,\r\n---\r\n&gt;           DECODE(A.ARCHIVED, 'NO', -2, A.STAMP) STAMP,\r\n6642c6642\r\n&lt;           DECODE(A.NEXT_CHANGE#, HIGHSCNVAL, -2, A.STAMP) STAMP,\r\n---\r\n&gt;           DECODE(A.ARCHIVED, 'NO', -2, A.STAMP) STAMP,\r\n6729c6729\r\n&lt;           DECODE(A.NEXT_CHANGE#, HIGHSCNVAL, -2, A.STAMP) STAMP,\r\n---\r\n&gt;           DECODE(A.ARCHIVED, 'NO', -2, A.STAMP) STAMP,\r\n7879,7892d7878\r\n&lt; WITH\r\n&lt; MY_DBINC AS\r\n&lt;    (SELECT RESETLOGS_TIME, \r\n&lt;            RESETLOGS_CHANGE#,\r\n&lt;            PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&lt;     FROM V$DATABASE_INCARNATION             \r\n&lt;     START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&lt;           AND  RESETLOGS_TIME    = THIS_RESET_TIME  \r\n&lt;     CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&lt;     UNION ALL\r\n&lt;     SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&lt;            THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&lt;            NULL             NEXT_RESETLOGS_CHANGE#\r\n&lt;     FROM DUAL)\r\n7932c7918,7930\r\n&lt;            FROM V$DATAFILE_COPY CDF, MY_DBINC\r\n---\r\n&gt;            FROM V$DATAFILE_COPY CDF, \r\n&gt;             (SELECT RESETLOGS_TIME,\r\n&gt;               RESETLOGS_CHANGE#,\r\n&gt;              PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&gt;              FROM V$DATABASE_INCARNATION\r\n&gt;              START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&gt;               AND  RESETLOGS_TIME    = THIS_RESET_TIME\r\n&gt;               CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&gt;               UNION ALL\r\n&gt;               SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&gt;                THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&gt;                 NULL             NEXT_RESETLOGS_CHANGE#\r\n&gt;                FROM DUAL) MY_DBINC\r\n8087c8085,8097\r\n&lt;             FROM V$DATAFILE_COPY CDF, MY_DBINC\r\n---\r\n&gt;             FROM V$DATAFILE_COPY CDF, \r\n&gt;             (SELECT RESETLOGS_TIME,\r\n&gt;               RESETLOGS_CHANGE#,\r\n&gt;              PRIOR RESETLOGS_CHANGE# NEXT_RESETLOGS_CHANGE#\r\n&gt;              FROM V$DATABASE_INCARNATION\r\n&gt;              START WITH RESETLOGS_CHANGE# = THIS_RESET_SCN\r\n&gt;               AND  RESETLOGS_TIME    = THIS_RESET_TIME\r\n&gt;               CONNECT BY PRIOR PRIOR_INCARNATION# = INCARNATION#\r\n&gt;               UNION ALL\r\n&gt;               SELECT THIS_RESET_TIME  RESETLOGS_TIME,\r\n&gt;                THIS_RESET_SCN   RESETLOGS_CHANGE#,\r\n&gt;                 NULL             NEXT_RESETLOGS_CHANGE#\r\n&gt;                FROM DUAL) MY_DBINC\r\n<\/pre>\n<div id=\"SYS.DBMS_SQLTUNE.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_SQLTUNE &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">26420a26421,26463\r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt; \r\n&gt;     IF ( (LOCAL_DB = 1) \r\n&gt;           AND\r\n&gt;          (DBMS_SQLTUNE_UTIL2.GET_CLOUD_SERVICE_TYPE() IN \r\n&gt;           (DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_D,\r\n&gt;            DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_S,\r\n&gt;            DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_S,\r\n&gt;            DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_D))\r\n&gt;           AND \r\n&gt;          (DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(START_TIME) = \r\n&gt;                         DBMS_SQLTUNE_UTIL1.AWR_VIEW_PDB)\r\n&gt;        )\r\n&gt;     THEN  \r\n&gt;         TARGET_DBID := CON_DBID;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n<\/pre>\n<div id=\"SYS.DBMS_SQLTUNE_UTIL2.PACKAGE BODY.19.0.0.0_RU\">SYS.DBMS_SQLTUNE_UTIL2 &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">683a684\r\n&gt;   \r\n686a688\r\n&gt;     CLOUD_SERVICE_TYPE VARCHAR2(32);\r\n689c691,713\r\n&lt;     RETURN NVL(SYS_CONTEXT('userenv', 'cloud_service'), CLOUD_SERVICE_TYPE_NONE);\r\n---\r\n&gt;     SELECT \r\n&gt;       CASE \r\n&gt;         WHEN UPPER(SYS_CONTEXT('USERENV','CLOUD_SERVICE'))='PAAS' THEN\r\n&gt;           CASE \r\n&gt;             WHEN UPPER(MAX(PROPERTY_VALUE)) LIKE '%ADW.ORACLECLOUD.COM' THEN\r\n&gt;               CLOUD_SERVICE_TYPE_ADW_D\r\n&gt;       \t    WHEN UPPER(MAX(PROPERTY_VALUE)) LIKE '%ATP.ORACLECLOUD.COM' THEN \r\n&gt;               CLOUD_SERVICE_TYPE_ATP_D\r\n&gt;       \t    ELSE CLOUD_SERVICE_TYPE_OTHER\r\n&gt;           END\r\n&gt;         WHEN UPPER(SYS_CONTEXT('USERENV','CLOUD_SERVICE'))='DWCS' THEN \r\n&gt;           CLOUD_SERVICE_TYPE_ADW_S\r\n&gt;         WHEN UPPER(SYS_CONTEXT('USERENV','CLOUD_SERVICE'))='OLTP' THEN \r\n&gt;           CLOUD_SERVICE_TYPE_ATP_S\r\n&gt;         ELSE\r\n&gt;           UPPER(NVL(SYS_CONTEXT('USERENV','CLOUD_SERVICE'), \r\n&gt;                 CLOUD_SERVICE_TYPE_NONE))\r\n&gt;       END\r\n&gt;     INTO CLOUD_SERVICE_TYPE\r\n&gt;     FROM DATABASE_PROPERTIES\r\n&gt;     WHERE UPPER(PROPERTY_NAME) = 'GLOBAL_DB_NAME';\r\n&gt; \r\n&gt;     RETURN CLOUD_SERVICE_TYPE;\r\n702a727,752\r\n&gt;   FUNCTION GET_TZ_OFFSET\r\n&gt;   RETURN VARCHAR2\r\n&gt;   IS\r\n&gt;     L_TZ VARCHAR2(10);\r\n&gt;   BEGIN\r\n&gt;     \r\n&gt;     \r\n&gt;     L_TZ := EXTRACT(TIMEZONE_HOUR FROM SYSTIMESTAMP) || ':' ||\r\n&gt;                    EXTRACT(TIMEZONE_MINUTE FROM SYSTIMESTAMP);\r\n&gt;     RETURN L_TZ;\r\n&gt;   END GET_TZ_OFFSET;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n704,705c754,768\r\n&lt;   FUNCTION IS_ADW\r\n&lt;   RETURN BOOLEAN\r\n---\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION CHOOSEAWRFORPDB(\r\n&gt;         BEGINTIME IN DATE) \r\n&gt;   RETURN VARCHAR2\r\n706a770,774\r\n&gt;     L_AWR_LOCATION VARCHAR2(32) := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt;     L_SQLTEXT   VARCHAR2(4000);\r\n&gt;     L_PDB_TIME  DATE;\r\n&gt;     L_ROOT_TIME DATE;\r\n&gt; \r\n707a776,790\r\n&gt;     \r\n&gt;     \r\n&gt;     L_SQLTEXT := \r\n&gt;       'SELECT CAST(MAX(end_interval_time) AS DATE)\r\n&gt;        FROM   AWR_PDB_SNAPSHOT\r\n&gt;        WHERE  dbid = :1';\r\n&gt;     EXECUTE IMMEDIATE L_SQLTEXT \r\n&gt;     INTO L_PDB_TIME\r\n&gt;     USING SYS_CONTEXT('USERENV', 'CON_DBID');\r\n&gt; \r\n&gt;     IF L_PDB_TIME IS NULL THEN\r\n&gt;       \r\n&gt;       L_AWR_LOCATION := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt;       RETURN L_AWR_LOCATION;\r\n&gt;     END IF;\r\n709,712c792,795\r\n&lt;     IF (GET_CLOUD_SERVICE_TYPE() = CLOUD_SERVICE_TYPE_ADW) THEN\r\n&lt;       RETURN TRUE;\r\n&lt;     ELSE\r\n&lt;       RETURN FALSE;\r\n---\r\n&gt;     IF L_PDB_TIME &gt;= BEGINTIME THEN\r\n&gt;       \r\n&gt;       L_AWR_LOCATION := DBMS_SQLTUNE_UTIL1.AWR_VIEW_PDB;\r\n&gt;       RETURN L_AWR_LOCATION;\r\n715c798,825\r\n&lt;   END IS_ADW;\r\n---\r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     L_SQLTEXT := \r\n&gt;       'SELECT CAST(MAX(end_interval_time) AS DATE)\r\n&gt;        FROM   AWR_ROOT_SNAPSHOT\r\n&gt;        WHERE  dbid = :1';\r\n&gt;     EXECUTE IMMEDIATE L_SQLTEXT\r\n&gt;     INTO L_ROOT_TIME\r\n&gt;     USING SYS_CONTEXT('USERENV', 'DBID');\r\n&gt;     \r\n&gt;     IF ((L_ROOT_TIME IS NOT NULL) AND \r\n&gt;         (L_ROOT_TIME &gt;= BEGINTIME) \r\n&gt;        ) \r\n&gt;     THEN\r\n&gt;       \r\n&gt;       L_AWR_LOCATION := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt;       RETURN L_AWR_LOCATION;\r\n&gt; \r\n&gt;     ELSE \r\n&gt;         \r\n&gt;         L_AWR_LOCATION := DBMS_SQLTUNE_UTIL1.AWR_VIEW_PDB;\r\n&gt;         RETURN L_AWR_LOCATION;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_AWR_LOCATION;\r\n&gt; \r\n&gt;   END CHOOSEAWRFORPDB;\r\n<\/pre>\n<div id=\"SYS.PRVTEMX_PERF.PACKAGE BODY.19.0.0.0_RU\">SYS.PRVTEMX_PERF &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">7a8,13\r\n&gt;   AWR_PREFIX_ROOT   VARCHAR2(16) := 'sys.awr_root';\r\n&gt;   AWR_PREFIX_PDB    VARCHAR2(16) := 'sys.awr_pdb';\r\n&gt;   G_CLOUD_SERVICE_TYPE CONSTANT VARCHAR2(32) := \r\n&gt;                     DBMS_SQLTUNE_UTIL2.GET_CLOUD_SERVICE_TYPE();\r\n&gt; \r\n&gt;   \r\n379c385\r\n&lt;             from sys.dba_hist_active_sess_history a\r\n---\r\n&gt;             from #AWR_VIEW_PREFIX#_active_sess_history a\r\n462c468\r\n&lt;                             from sys.dba_hist_pdb_instance)) c');\r\n---\r\n&gt;                             from #AWR_VIEW_PREFIX#_pdb_instance)) c');\r\n485,502c491,550\r\n&lt;       SELECT MIN(SNAP_ID)\r\n&lt;         INTO L_BEGIN_SNAP\r\n&lt;         FROM SYS.DBA_HIST_ASH_SNAPSHOT\r\n&lt;        WHERE DBID            = L_DBID\r\n&lt;          AND INSTANCE_NUMBER = P_INST_ID\r\n&lt;          AND (END_INTERVAL_TIME   BETWEEN P_START_TIME AND P_END_TIME\r\n&lt;            OR BEGIN_INTERVAL_TIME BETWEEN P_START_TIME AND P_END_TIME\r\n&lt;            OR P_START_TIME BETWEEN BEGIN_INTERVAL_TIME AND END_INTERVAL_TIME);\r\n&lt; \r\n&lt;          \r\n&lt;       SELECT MAX(SNAP_ID)\r\n&lt;         INTO L_END_SNAP\r\n&lt;         FROM SYS.DBA_HIST_ASH_SNAPSHOT\r\n&lt;        WHERE DBID            = L_DBID\r\n&lt;          AND INSTANCE_NUMBER = P_INST_ID\r\n&lt;          AND (END_INTERVAL_TIME   BETWEEN P_START_TIME AND P_END_TIME\r\n&lt;            OR BEGIN_INTERVAL_TIME BETWEEN P_START_TIME AND P_END_TIME\r\n&lt;            OR P_END_TIME BETWEEN BEGIN_INTERVAL_TIME AND END_INTERVAL_TIME);\r\n---\r\n&gt;       \r\n&gt;       IF ((G_CLOUD_SERVICE_TYPE IN \r\n&gt;             (DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_D,\r\n&gt;              DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_S,\r\n&gt;              DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_S,\r\n&gt;              DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_D))\r\n&gt;           AND \r\n&gt;             (L_IS_ROOT = FALSE))\r\n&gt;       THEN  \r\n&gt;           L_QRY := REPLACE(L_QRY,'#AWR_VIEW_PREFIX#', AWR_PREFIX_PDB);\r\n&gt; \r\n&gt;           \r\n&gt;           SELECT MIN(SNAP_ID)\r\n&gt;             INTO L_BEGIN_SNAP\r\n&gt;             FROM SYS.AWR_PDB_ASH_SNAPSHOT\r\n&gt;            WHERE DBID            = L_DBID\r\n&gt;              AND INSTANCE_NUMBER = P_INST_ID\r\n&gt;              AND (END_INTERVAL_TIME   BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR BEGIN_INTERVAL_TIME BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR P_START_TIME BETWEEN \r\n&gt;                                BEGIN_INTERVAL_TIME AND END_INTERVAL_TIME);\r\n&gt; \r\n&gt;              \r\n&gt;           SELECT MAX(SNAP_ID)\r\n&gt;             INTO L_END_SNAP\r\n&gt;             FROM SYS.AWR_PDB_ASH_SNAPSHOT\r\n&gt;            WHERE DBID            = L_DBID\r\n&gt;              AND INSTANCE_NUMBER = P_INST_ID\r\n&gt;              AND (END_INTERVAL_TIME   BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR BEGIN_INTERVAL_TIME BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR P_END_TIME BETWEEN \r\n&gt;                              BEGIN_INTERVAL_TIME AND END_INTERVAL_TIME);\r\n&gt; \r\n&gt;       ELSE \r\n&gt;           \r\n&gt;           L_QRY := REPLACE(L_QRY,'#AWR_VIEW_PREFIX#', AWR_PREFIX_ROOT);\r\n&gt; \r\n&gt;           \r\n&gt;           SELECT MIN(SNAP_ID)\r\n&gt;             INTO L_BEGIN_SNAP\r\n&gt;             FROM SYS.AWR_ROOT_ASH_SNAPSHOT\r\n&gt;            WHERE DBID            = L_DBID\r\n&gt;              AND INSTANCE_NUMBER = P_INST_ID\r\n&gt;              AND (END_INTERVAL_TIME   BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR BEGIN_INTERVAL_TIME BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR P_START_TIME BETWEEN \r\n&gt;                                BEGIN_INTERVAL_TIME AND END_INTERVAL_TIME);\r\n&gt; \r\n&gt;              \r\n&gt;           SELECT MAX(SNAP_ID)\r\n&gt;             INTO L_END_SNAP\r\n&gt;             FROM SYS.AWR_ROOT_ASH_SNAPSHOT\r\n&gt;            WHERE DBID            = L_DBID\r\n&gt;              AND INSTANCE_NUMBER = P_INST_ID\r\n&gt;              AND (END_INTERVAL_TIME   BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR BEGIN_INTERVAL_TIME BETWEEN P_START_TIME AND P_END_TIME\r\n&gt;                OR P_END_TIME BETWEEN \r\n&gt;                              BEGIN_INTERVAL_TIME AND END_INTERVAL_TIME);\r\n&gt; \r\n&gt;       END IF;\r\n1095c1143\r\n&lt;     V_REF_PARAMS \t        DBMS_REPORT.REF_STRING_IDSPEC;\r\n---\r\n&gt;     V_REF_PARAMS                DBMS_REPORT.REF_STRING_IDSPEC;\r\n<\/pre>\n<div id=\"SYS.PRVT_ASH_OMX.PACKAGE BODY.19.0.0.0_RU\">SYS.PRVT_ASH_OMX &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">41a42,43\r\n&gt;   \r\n&gt;   \r\n54a57\r\n&gt;     RESOLUTION      IN VARCHAR2 := NULL,\r\n74c77,78\r\n&lt;                           INSTANCE_NUMBER =&gt; INST_ID);\r\n---\r\n&gt;                           INSTANCE_NUMBER =&gt; INST_ID,\r\n&gt;                           RESOLUTION      =&gt; RESOLUTION);\r\n84c88,89\r\n&lt;                           INSTANCE_NUMBER =&gt; INST_ID);\r\n---\r\n&gt;                           INSTANCE_NUMBER =&gt; INST_ID,\r\n&gt;                           RESOLUTION      =&gt; RESOLUTION);\r\n96c101,102\r\n&lt;                           INSTANCE_NUMBER =&gt; INST_ID);\r\n---\r\n&gt;                           INSTANCE_NUMBER =&gt; INST_ID,\r\n&gt;                           RESOLUTION      =&gt; RESOLUTION);\r\n108c114,115\r\n&lt;                           AWR_INFO        =&gt; AWR_INFO);\r\n---\r\n&gt;                           AWR_INFO        =&gt; AWR_INFO,\r\n&gt;                           RESOLUTION      =&gt; RESOLUTION);\r\n118c125,126\r\n&lt;                           AWR_INFO        =&gt; AWR_INFO);\r\n---\r\n&gt;                           AWR_INFO        =&gt; AWR_INFO,\r\n&gt;                           RESOLUTION      =&gt; RESOLUTION);\r\n130c138,139\r\n&lt;                           AWR_INFO        =&gt; AWR_INFO);        \r\n---\r\n&gt;                           AWR_INFO        =&gt; AWR_INFO,\r\n&gt;                           RESOLUTION      =&gt; RESOLUTION);        \r\n183a193,194\r\n&gt;   \r\n&gt;   \r\n196a208\r\n&gt;     RESOLUTION      IN VARCHAR2 := NULL,\r\n215c227,228\r\n&lt;                         MINIMIZE_COST   =&gt; MINIMIZE_COST);\r\n---\r\n&gt;                         MINIMIZE_COST   =&gt; MINIMIZE_COST,\r\n&gt;                         RESOLUTION      =&gt; RESOLUTION);\r\n227c240,241\r\n&lt;                         MINIMIZE_COST   =&gt; MINIMIZE_COST);\r\n---\r\n&gt;                         MINIMIZE_COST   =&gt; MINIMIZE_COST,\r\n&gt;                         RESOLUTION      =&gt; RESOLUTION);\r\n241c255,256\r\n&lt;                         MINIMIZE_COST   =&gt; MINIMIZE_COST);\r\n---\r\n&gt;                         MINIMIZE_COST   =&gt; MINIMIZE_COST,\r\n&gt;                         RESOLUTION      =&gt; RESOLUTION);\r\n<\/pre>\n<div id=\"SYS.PRVT_AWR_VIEWER.PACKAGE BODY.19.0.0.0_RU\">SYS.PRVT_AWR_VIEWER &#8211; PACKAGE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1186,1187c1186,1187\r\n&lt;   ADW_RMMETRICS_COMMON CONSTANT VARCHAR2(32767) := q'[\r\n&lt;       with rmmetrics_data as (-- ADW workload main query\r\n---\r\n&gt;   RMMETRICS_COMMON CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       with rmmetrics_data as (-- autonomous DB workload main query\r\n1200a1201,1202\r\n&gt;                cpu_usage_per_sec,\r\n&gt;                avg_running_stmts,\r\n1207c1209,1211\r\n&lt;                    avg_cpu_utilization, \r\n---\r\n&gt;                    avg_cpu_utilization,\r\n&gt;                    cpu_usage_per_sec,\r\n&gt;                    avg_running_stmts,\r\n1219,1221c1223,1225\r\n&lt;               where avg_cpu_utilization +\r\n&lt;                     avg_active_parallel_stmts + \r\n&lt;                     avg_queued_parallel_stmts &gt; 0) \r\n---\r\n&gt;               where avg_cpu_utilization + cpu_usage_per_sec + \r\n&gt;                     avg_running_stmts +\r\n&gt;                     avg_active_parallel_stmts + avg_queued_parallel_stmts &gt; 0) \r\n1247a1252,1253\r\n&gt;                             round(cpu_usage_per_sec, 2)           as \"cpuUsage\",\r\n&gt;                             round(avg_running_stmts, 2)           as \"rst\",\r\n1260a1267,1268\r\n&gt;                          cpu_usage_per_sec,\r\n&gt;                          avg_running_stmts,\r\n1422a1431\r\n&gt;     \r\n1430a1440\r\n&gt;     \r\n18245a18256\r\n&gt; \r\n18266,18271c18277,18291\r\n&lt;   FUNCTION REPORT_ADW_WORKLOAD_REALTIME(\r\n&lt;     START_TIME        IN DATE           DEFAULT NULL,\r\n&lt;     END_TIME          IN DATE           DEFAULT NULL,\r\n&lt;     INST_ID_LOW       IN NUMBER         DEFAULT NULL,\r\n&lt;     INST_ID_HIGH      IN NUMBER         DEFAULT NULL,\r\n&lt;     SHOW_SQL          IN NUMBER         DEFAULT 0)\r\n---\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_RMMETRICS_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME      IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME        IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT 0)\r\n18274,18276d18293\r\n&lt;     \r\n&lt;     L_ELAPSED        NUMBER;\r\n&lt;     L_CPU            NUMBER;\r\n18279c18296,18297\r\n&lt;     L_REF_PARAMS     DBMS_REPORT.REF_STRING_IDSPEC;\r\n---\r\n&gt;     L_QRY VARCHAR2(32767) := NULL;\r\n&gt;     L_SQL CLOB;\r\n18282,18283c18300\r\n&lt;     L_ORIG_ENV       DBMS_REPORT.FORMAT_PARAM_VALUES;\r\n&lt;     L_SET_ENV        BOOLEAN;\r\n---\r\n&gt;     L_RESULT_XML XMLTYPE := NULL;\r\n18286,18287c18303,18310\r\n&lt;     L_QUERY          VARCHAR2(32767) := NULL;\r\n&lt;     L_REPORT_SQL     CLOB;\r\n---\r\n&gt;     L_IS_REALTIME     NUMBER        := IS_REALTIME;\r\n&gt;     L_DBID            NUMBER        := DBID;\r\n&gt;     L_START_TIME      DATE          := START_TIME;\r\n&gt;     L_END_TIME        DATE          := END_TIME;\r\n&gt;     L_BUCKET_COUNT    NUMBER        := BUCKET_COUNT;\r\n&gt;     L_BUCKET_INTERVAL NUMBER        := BUCKET_INTERVAL;\r\n&gt;     L_AWR_PERIOD PRVT_AWRV_METADATA := AWR_PERIOD;\r\n&gt;     L_AWR_VIEW_PREFIX VARCHAR2(10)  := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n18290,18292c18313\r\n&lt;     L_REPORT_XML     XMLTYPE := NULL;\r\n&lt;     L_RMMETRICS_XML  XMLTYPE := NULL;\r\n&lt; \r\n---\r\n&gt;     L_BUCKET_MAP PRVT_AWRV_MAPTAB;\r\n18295,18298c18316,18317\r\n&lt;     L_START_TIME     DATE := START_TIME;\r\n&lt;     L_END_TIME       DATE := END_TIME;\r\n&lt;     L_INST_ID_LOW    NUMBER := INST_ID_LOW;\r\n&lt;     L_INST_ID_HIGH   NUMBER := INST_ID_HIGH;\r\n---\r\n&gt;     L_CON_ID   NUMBER;\r\n&gt;     L_CON_DBID NUMBER;\r\n18301,18302c18320,18323\r\n&lt;     L_BUCKET_COUNT    NUMBER;\r\n&lt;     L_BUCKET_INTERVAL NUMBER;\r\n---\r\n&gt;     L_RESOURCE_MANAGER_ENABLED NUMBER := 0;\r\n&gt;     \r\n&gt;     \r\n&gt;     L_NUM_CPUS NUMBER := NULL;\r\n18307c18328,18329\r\n&lt;     ADW_RMMETRICS_REALTIME  CONSTANT VARCHAR2(32767) := q'[\r\n---\r\n&gt;     \r\n&gt;     RMMETRICS_RT CONSTANT VARCHAR2(32767) := q'[\r\n18310c18332,18337\r\n&lt;            avg(avg_cpu_utilization)  avg_cpu_utilization,\r\n---\r\n&gt;            case\r\n&gt;              when avg(avg_cpu_utilization) &gt; 100 then 100\r\n&gt;              else avg(avg_cpu_utilization) \r\n&gt;            end avg_cpu_utilization,\r\n&gt;            avg(cpu_usage_per_sec) cpu_usage_per_sec,\r\n&gt;            sum(avg_running_stmts) avg_running_stmts,\r\n18340,18346c18367,18397\r\n&lt;                   case \r\n&lt;                     when running_sessions_limit is null or\r\n&lt;                          running_sessions_limit = 0 then\r\n&lt;                       avg_cpu_utilization\r\n&lt;                     else\r\n&lt;                       (avg_running_sessions\/running_sessions_limit)*100 \r\n&lt;                   end avg_cpu_utilization,\r\n---\r\n&gt;                   (case \r\n&gt;                      -- resource manager enabled, use running_sessions_limit\r\n&gt;                      when :resource_manager_enabled &gt; 0 then\r\n&gt;                        (case\r\n&gt;                           -- if running_sessions_limit is not set\r\n&gt;                           when running_sessions_limit is null or\r\n&gt;                                running_sessions_limit = 0 then\r\n&gt;                             avg_cpu_utilization\r\n&gt;                           else\r\n&gt;                             (avg_running_sessions\/running_sessions_limit)*100\r\n&gt;                         end)\r\n&gt;                      -- resource manager disabled, use system cpu limit\r\n&gt;                      else\r\n&gt;                        (case\r\n&gt;                           when :num_cpus &gt; 0 then\r\n&gt;                             (avg_running_sessions\/:num_cpus)*100\r\n&gt;                           -- system cpu limit not available\r\n&gt;                           -- use running_sessions_limit\r\n&gt;                           else\r\n&gt;                             (case\r\n&gt;                                when running_sessions_limit is null or\r\n&gt;                                     running_sessions_limit = 0 then\r\n&gt;                                  avg_cpu_utilization\r\n&gt;                                else\r\n&gt;                                 (avg_running_sessions\/running_sessions_limit)*100\r\n&gt;                              end)\r\n&gt;                         end)\r\n&gt;                      end) avg_cpu_utilization,\r\n&gt;                   cpu_consumed_time\/(intsize_csec*10) cpu_usage_per_sec,\r\n&gt;                   avg_running_sessions + avg_waiting_sessions\r\n&gt;                     as avg_running_stmts,\r\n18349,18353c18400,18402\r\n&lt;              from v$rsrcmgrmetric_history\r\n&lt;             where end_time &gt;= to_date(:b_start_time,:date_fmt)\r\n&lt;               and end_time &lt;  to_date(:b_end_time,:date_fmt)\r\n&lt;               and userenv('INSTANCE') between :p_inst_id_low\r\n&lt;                                           and :p_inst_id_high)))\r\n---\r\n&gt;              from sys.v_$rsrcmgrmetric_history\r\n&gt;             where end_time &gt;= to_date(:b_start_time, :date_fmt)\r\n&gt;               and end_time &lt;  to_date(:b_end_time, :date_fmt))))\r\n18356,18357c18405,18549\r\n&lt;   \r\n&lt;   ADW_RMMETRICS_RT_HEADER   CONSTANT VARCHAR2(32767) := q'[\r\n---\r\n&gt;     \r\n&gt;     RMMETRICS_RT_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var is_awr                   number;\r\n&gt;       var p_contTab                prvt_awrv_instTab;\r\n&gt;       var b_start_time             varchar2(4000);\r\n&gt;       var b_end_time               varchar2(4000);\r\n&gt;       var p_bucket_interval        number;\r\n&gt;       var p_bucket_count           number;\r\n&gt;       var b_min_time               varchar2(4000);\r\n&gt;       var b_max_time               varchar2(4000);\r\n&gt;       var b_duration               number;\r\n&gt;       var date_fmt                 varchar2(4000);\r\n&gt;       var resource_manager_enabled number;\r\n&gt;       var num_cpus                 number;\r\n&gt;       begin\r\n&gt;         :is_awr                   := #is_awr#;\r\n&gt;         :p_contTab                := #p_contTab#;\r\n&gt;         :b_start_time             := '#b_start_time#';\r\n&gt;         :b_end_time               := '#b_end_time#';\r\n&gt;         :p_bucket_interval        := #p_bucket_interval#;\r\n&gt;         :p_bucket_count           := #p_bucket_count#;\r\n&gt;         :b_min_time               := '#b_min_time#';\r\n&gt;         :b_max_time               := '#b_max_time#';\r\n&gt;         :b_duration               := #b_duration#;\r\n&gt;         :date_fmt                 := '#date_fmt#';\r\n&gt;         :resource_manager_enabled := #resource_manager_enabled#;\r\n&gt;         :num_cpus                 := #num_cpus#;\r\n&gt;       end;\r\n&gt;       \/]';\r\n&gt; \r\n&gt;     \r\n&gt;     RMMETRICS_AWR CONSTANT VARCHAR2(32767) := q'[\r\n&gt;     select bucket_id,\r\n&gt;            consumer_group_id,\r\n&gt;            consumer_group_name,\r\n&gt;            case\r\n&gt;              when sum(avg_cpu_utilization) &gt; 100 then 100\r\n&gt;              else sum(avg_cpu_utilization) \r\n&gt;            end avg_cpu_utilization,\r\n&gt;            sum(cpu_usage_per_sec) cpu_usage_per_sec,\r\n&gt;            sum(avg_running_stmts) avg_running_stmts,\r\n&gt;            sum(avg_active_parallel_stmts) avg_active_parallel_stmts,\r\n&gt;            sum(avg_queued_parallel_stmts) avg_queued_parallel_stmts\r\n&gt;      from (\r\n&gt;         select bucket_id,\r\n&gt;                consumer_group_name,  \r\n&gt;                consumer_group_id,\r\n&gt;                -- avg\r\n&gt;                avg(avg_cpu_utilization) avg_cpu_utilization,\r\n&gt;                avg(cpu_usage_per_sec) cpu_usage_per_sec,\r\n&gt;                avg(avg_running_stmts) avg_running_stmts,\r\n&gt;                avg(avg_active_parallel_stmts) \r\n&gt;                   avg_active_parallel_stmts,\r\n&gt;                avg(avg_queued_parallel_stmts) \r\n&gt;                   avg_queued_parallel_stmts\r\n&gt;           from table(cast(:bucket_map as sys.prvt_awrv_mapTab)) b,\r\n&gt;                (select \/*+ no_merge *\/ nvl(m.snap_id, c.snap_id) as snap_id,\r\n&gt;                        nvl(m.instance_number, c.instance_number) \r\n&gt;                                                  as instance_number,\r\n&gt;                        m.consumer_group_id consumer_group_id,\r\n&gt;                        null consumer_group_name,\r\n&gt;                        case \r\n&gt;                          when c.cpu_limit is null or\r\n&gt;                               c.cpu_limit = 0 then\r\n&gt;                            m.avg_cpu_utilization\r\n&gt;                          else\r\n&gt;                            (m.avg_running_sessions\/c.cpu_limit)*100\r\n&gt;                          end                       as avg_cpu_utilization,\r\n&gt;                        m.cpu_consumed_time\/(m.intsize_csec*10) cpu_usage_per_sec,\r\n&gt;                        m.avg_running_sessions + m.avg_waiting_sessions\r\n&gt;                                                    as avg_running_stmts,\r\n&gt;                        m.avg_active_parallel_stmts as avg_active_parallel_stmts,\r\n&gt;                        m.avg_queued_parallel_stmts as avg_queued_parallel_stmts\r\n&gt;                   from awr_root_rsrc_metric m,\r\n&gt;                        (SELECT \/*+ no_merge *\/ \r\n&gt;                                nvl(s.snap_id, p.snap_id) as snap_id,\r\n&gt;                                nvl(s.instance_number, p.instance_number) \r\n&gt;                                                          as instance_number,\r\n&gt;                                CASE WHEN p.cpu_count IS NULL \r\n&gt;                                     THEN nvl(s.num_cpus, s.num_cpu_cores)\r\n&gt;                                     ELSE LEAST(p.cpu_count, \r\n&gt;                                                NVL(s.num_cpus, s.num_cpu_cores))\r\n&gt;                                END as cpu_limit\r\n&gt;                           FROM   \r\n&gt;                             (SELECT \/*+ NO_MERGE *\/ snap_id, instance_number,\r\n&gt;                                     MAX(num_cpus)      num_cpus,\r\n&gt;                                     MAX(num_cpu_cores) num_cpu_cores\r\n&gt;                                FROM \r\n&gt;                                  (SELECT snap_id, instance_number,\r\n&gt;                                          CASE\r\n&gt;                                            WHEN stat_name = 'NUM_CPUS' \r\n&gt;                                            THEN value\r\n&gt;                                            ELSE NULL\r\n&gt;                                          END as num_cpus,\r\n&gt;                                          CASE\r\n&gt;                                            WHEN stat_name = 'NUM_CPU_CORES'\r\n&gt;                                            THEN value\r\n&gt;                                            ELSE NULL\r\n&gt;                                          END as num_cpu_cores\r\n&gt;                                     FROM awr_root_osstat\r\n&gt;                                    WHERE stat_name IN \r\n&gt;                                            ('NUM_CPUS','NUM_CPU_CORES'))\r\n&gt;                                   GROUP BY snap_id, instance_number) s,\r\n&gt;                             (SELECT \/*+ NO_MERGE *\/ snap_id, instance_number,\r\n&gt;                                     MAX(\r\n&gt;                                       CASE \r\n&gt;                                         WHEN resource_plan IS NULL THEN NULL \r\n&gt;                                         ELSE TO_NUMBER(cpu_count)\r\n&gt;                                       END) as cpu_count\r\n&gt;                                FROM \r\n&gt;                                  (SELECT snap_id, instance_number,\r\n&gt;                                          CASE\r\n&gt;                                            WHEN parameter_name = 'cpu_count' \r\n&gt;                                            THEN value\r\n&gt;                                            ELSE NULL\r\n&gt;                                          END cpu_count,\r\n&gt;                                          CASE\r\n&gt;                                            WHEN parameter_name = \r\n&gt;                                                   'resource_manager_plan'\r\n&gt;                                            THEN value\r\n&gt;                                            ELSE NULL\r\n&gt;                                          END resource_plan\r\n&gt;                                     FROM awr_root_parameter\r\n&gt;                                    WHERE parameter_name IN \r\n&gt;                                           ('cpu_count', 'resource_manager_plan'))\r\n&gt;                                   GROUP BY snap_id, instance_number) p\r\n&gt;                          WHERE s.snap_id = p.snap_id\r\n&gt;                            AND s.instance_number = p.instance_number) c\r\n&gt;                  where m.dbid = :m_dbid \r\n&gt;                    and m.snap_id between :m_begin_snap and :m_end_snap\r\n&gt;                    and m.con_dbid = :l_con_dbid\r\n&gt;                    and m.snap_id = c.snap_id(+)\r\n&gt;                    and m.instance_number = c.instance_number(+)) y\r\n&gt;          where b.snap_id         = y.snap_id\r\n&gt;            and b.instance_number = y.instance_number\r\n&gt;          group by bucket_id, \r\n&gt;                y.instance_number, \r\n&gt;                y.consumer_group_id, \r\n&gt;                y.consumer_group_name)\r\n&gt;       group by bucket_id, \r\n&gt;                consumer_group_id,\r\n&gt;                consumer_group_name]'; \r\n&gt; \r\n&gt;     \r\n&gt;     RMMETRICS_AWR_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n18360,18361c18552,18556\r\n&lt;       var b_start_time      varchar2(4000);\r\n&lt;       var b_end_time        varchar2(4000);\r\n---\r\n&gt;       var bucket_map        prvt_awrv_mapTab;\r\n&gt;       var m_dbid            number;\r\n&gt;       var m_begin_snap      number;\r\n&gt;       var m_end_snap        number;\r\n&gt;       var l_con_dbid        number;\r\n18364,18365d18558\r\n&lt;       var p_inst_id_low     number;\r\n&lt;       var p_inst_id_high    number;\r\n18369d18561\r\n&lt;       var date_fmt          varchar2(4000);\r\n18373,18374c18565,18569\r\n&lt;         :b_start_time      := '#b_start_time#';\r\n&lt;         :b_end_time        := '#b_end_time#';\r\n---\r\n&gt;         :bucket_map        := #bucket_map#;\r\n&gt;         :m_dbid            := #m_dbid#;\r\n&gt;         :m_begin_snap      := #m_begin_snap#;\r\n&gt;         :m_end_snap        := #m_end_snap#;\r\n&gt;         :l_con_dbid        := #l_con_dbid#;\r\n18377,18378d18571\r\n&lt;         :p_inst_id_low     := #p_inst_id_low#;\r\n&lt;         :p_inst_id_high    := #p_inst_id_high#;\r\n18382d18574\r\n&lt;         :date_fmt          := '#date_fmt#';\r\n18387,18390d18578\r\n&lt;     \r\n&lt;     \r\n&lt;     L_ORIG_ENV := DBMS_REPORT.FORMAT_PARAM_VALUES();\r\n&lt;     L_SET_ENV  := DBMS_REPORT.SETUP_REPORT_ENV(L_ORIG_ENV);\r\n18393c18581,18583\r\n&lt;     DBMS_REPORT.GET_TIMING_INFO(0, L_ELAPSED, L_CPU);\r\n---\r\n&gt;     IF (IS_REALTIME IS NULL) THEN\r\n&gt;       L_IS_REALTIME := 1;\r\n&gt;     END IF;\r\n18396c18586\r\n&lt; \r\n---\r\n&gt;     L_CON_DBID := SYS_CONTEXT('USERENV','CON_DBID');\r\n18398,18421d18587\r\n&lt;     IF (START_TIME IS NOT NULL) THEN\r\n&lt;       L_REF_PARAMS('start_time') :=\r\n&lt;         TO_CHAR(START_TIME,DBMS_REPORT.DATE_FMT_MOD);\r\n&lt;     END IF;\r\n&lt; \r\n&lt;     IF (END_TIME IS NOT NULL) THEN\r\n&lt;       L_REF_PARAMS('end_time') :=\r\n&lt;         TO_CHAR(END_TIME,DBMS_REPORT.DATE_FMT_MOD);\r\n&lt;     END IF;\r\n&lt; \r\n&lt;     IF (INST_ID_LOW IS NOT NULL) THEN\r\n&lt;       L_REF_PARAMS('inst_id_low') := TO_CHAR(INST_ID_LOW);\r\n&lt;     END IF;\r\n&lt; \r\n&lt;     IF (INST_ID_HIGH IS NOT NULL) THEN\r\n&lt;       L_REF_PARAMS('inst_id_high') := TO_CHAR(INST_ID_HIGH);\r\n&lt;     END IF;\r\n&lt; \r\n&lt;     L_REF_PARAMS('is_realtime') := 1;\r\n&lt; \r\n&lt;     IF (SHOW_SQL IS NOT NULL) THEN\r\n&lt;       L_REF_PARAMS('show_sql') := SHOW_SQL; \r\n&lt;     END IF;\r\n&lt; \r\n18423,18428c18589,18590\r\n&lt;     IF (L_INST_ID_LOW IS NULL) THEN\r\n&lt;       L_INST_ID_LOW := 0;\r\n&lt;     END IF;\r\n&lt; \r\n&lt;     IF (L_INST_ID_HIGH IS NULL) THEN\r\n&lt;       L_INST_ID_HIGH := INST_ID_MAX;\r\n---\r\n&gt;     IF (DBID IS NULL) THEN\r\n&gt;       L_DBID := L_CON_DBID;\r\n18438c18600,18606\r\n&lt;       L_START_TIME := L_END_TIME - 1\/24;\r\n---\r\n&gt;       \r\n&gt;       IF (L_IS_REALTIME = 1) THEN\r\n&gt;         L_START_TIME := L_END_TIME - 1\/24;\r\n&gt;       \r\n&gt;       ELSE\r\n&gt;         L_START_TIME := L_END_TIME - 1;\r\n&gt;       END IF;\r\n18442,18444c18610,18612\r\n&lt;     CALCULATE_BUCKETS(L_BUCKET_COUNT, L_BUCKET_INTERVAL, \r\n&lt;                       (L_END_TIME - L_START_TIME)*DTOS,\r\n&lt;                       NULL);\r\n---\r\n&gt;     IF (BUCKET_COUNT IS NULL) THEN\r\n&gt;       L_BUCKET_COUNT := 60;\r\n&gt;     END IF;\r\n18447,18456c18615\r\n&lt;     L_QUERY := ADW_RMMETRICS_COMMON;\r\n&lt;    \r\n&lt;     \r\n&lt;     L_QUERY := REPLACE(L_QUERY,'#GENERATE_BUCKETS_TAG#', GENERATE_BUCKETS_TAG2);\r\n&lt;     L_QUERY := REPLACE(L_QUERY,'#GENERATE_BUCKETID_TAG#', \r\n&lt;                                 GENERATE_BUCKETID_TAG);\r\n&lt;     L_QUERY := REPLACE(L_QUERY,'#GENERATE_METRICS_BUCKETID#', \r\n&lt;                                 ADW_RMMETRICS_REALTIME);\r\n&lt; \r\n&lt;     IF (SHOW_SQL = 1) THEN\r\n---\r\n&gt;     IF (IS_REALTIME = 1) THEN\r\n18458,18459d18616\r\n&lt;       L_REPORT_SQL := ADW_RMMETRICS_RT_HEADER;\r\n&lt; \r\n18461c18618,18627\r\n&lt;       L_REPORT_SQL := L_REPORT_SQL || L_QUERY;\r\n---\r\n&gt;       BEGIN\r\n&gt;         SELECT COUNT(VALUE)\r\n&gt;           INTO L_RESOURCE_MANAGER_ENABLED\r\n&gt;           FROM SYS.V_$SYSTEM_PARAMETER2        \r\n&gt;          WHERE NAME = 'resource_manager_plan'\r\n&gt;            AND (VALUE IS NOT NULL AND VALUE != '');\r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           L_RESOURCE_MANAGER_ENABLED := 0;\r\n&gt;       END;\r\n18464,18483c18630,18650\r\n&lt;       L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#is_awr#', 0);\r\n&lt;       L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#p_contTab#', 'null');\r\n&lt;       L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#b_start_time#',\r\n&lt;                                             TO_CHAR(L_START_TIME, DATE_FMT));\r\n&lt;       L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#b_end_time#',\r\n&lt;                                             TO_CHAR(L_END_TIME, DATE_FMT));\r\n&lt;       L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#p_bucket_count#', L_BUCKET_COUNT);\r\n&lt;       L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#p_bucket_interval#', \r\n&lt;                                             L_BUCKET_INTERVAL);\r\n&lt;       L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#p_inst_id_low#', L_INST_ID_LOW);\r\n&lt;       L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#p_inst_id_high#', L_INST_ID_HIGH);\r\n&lt;       L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#b_min_time#', \r\n&lt;                                             TO_CHAR(L_START_TIME, DATE_FMT));\r\n&lt;       L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#b_max_time#', \r\n&lt;                                             TO_CHAR(L_END_TIME, DATE_FMT));\r\n&lt;       L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#b_duration#',\r\n&lt;                               ROUND((L_END_TIME - L_START_TIME)*DTOS));\r\n&lt;       L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#date_fmt#', DATE_FMT);\r\n&lt; \r\n&lt;       L_RMMETRICS_XML := I_SHOW_SQL_XML('rsrcmgrmetric', L_REPORT_SQL);\r\n---\r\n&gt;       BEGIN\r\n&gt;         SELECT SUM(NUM_CPUS)\r\n&gt;           INTO L_NUM_CPUS\r\n&gt;           FROM (\r\n&gt;             SELECT HOST_NAME, SUM(NUM_CPUS) AS NUM_CPUS\r\n&gt;               FROM TABLE(GV$(CURSOR(\r\n&gt;                      SELECT I.INSTANCE_NUMBER AS INST_ID, I.HOST_NAME,\r\n&gt;                             NVL(OS.NUM_CPUS, OS.NUM_CPU_CORES) AS NUM_CPUS\r\n&gt;                        FROM SYS.V$INSTANCE I, \r\n&gt;                             (SELECT MAX(DECODE(STAT_NAME, 'NUM_CPUS', \r\n&gt;                                                VALUE, NULL)) AS NUM_CPUS,\r\n&gt;                                     MAX(DECODE(STAT_NAME, 'NUM_CPU_CORES', \r\n&gt;                                                VALUE, NULL)) AS NUM_CPU_CORES\r\n&gt;                                FROM SYS.V$OSSTAT\r\n&gt;                               WHERE STAT_NAME IN ('NUM_CPUS', 'NUM_CPU_CORES')\r\n&gt;                             ) OS)))\r\n&gt;             GROUP BY HOST_NAME);\r\n&gt;       EXCEPTION\r\n&gt;         WHEN OTHERS THEN\r\n&gt;           L_NUM_CPUS := 0;\r\n&gt;       END;\r\n18485d18651\r\n&lt;     ELSE\r\n18487,18502c18653,18661\r\n&lt;       EXECUTE IMMEDIATE L_QUERY\r\n&lt;          INTO L_RMMETRICS_XML\r\n&lt;         USING 0, L_CG_MAP,\r\n&lt;               TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT, \r\n&lt;               TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT, \r\n&lt;               TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT, \r\n&lt;               TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT, \r\n&lt;               L_BUCKET_INTERVAL,\r\n&lt;               TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT,\r\n&lt;               TO_CHAR(L_END_TIME, DATE_FMT), DATE_FMT,\r\n&lt;               L_INST_ID_LOW, L_INST_ID_HIGH,\r\n&lt;               \r\n&lt;               L_BUCKET_INTERVAL, L_BUCKET_COUNT,\r\n&lt;               TO_CHAR(L_START_TIME,DATE_FMT), TO_CHAR(L_END_TIME,DATE_FMT),\r\n&lt;               (L_END_TIME - L_START_TIME)*DTOS;\r\n&lt;     END IF;\r\n---\r\n&gt;       L_QRY := RMMETRICS_COMMON;\r\n&gt;    \r\n&gt;       \r\n&gt;       L_QRY := REPLACE(L_QRY,'#GENERATE_BUCKETS_TAG#', \r\n&gt;                               GENERATE_BUCKETS_TAG2);\r\n&gt;       L_QRY := REPLACE(L_QRY,'#GENERATE_BUCKETID_TAG#', \r\n&gt;                               GENERATE_BUCKETID_TAG);\r\n&gt;       L_QRY := REPLACE(L_QRY,'#GENERATE_METRICS_BUCKETID#', \r\n&gt;                               RMMETRICS_RT);\r\n18504,18505c18663,18665\r\n&lt;     \r\n&lt;     DBMS_REPORT.GET_TIMING_INFO(1, L_ELAPSED, L_CPU);\r\n---\r\n&gt;       IF (SHOW_SQL = 1) THEN\r\n&gt;         \r\n&gt;         L_SQL := RMMETRICS_RT_HEADER;\r\n18507,18513c18667,18668\r\n&lt;     \r\n&lt;     \r\n&lt;     L_REPORT_XML :=\r\n&lt;       PRVT_REPORT_TAGS.BUILD_REPORT_TAG(\r\n&lt;                          DBMS_REPORT.BUILD_REPORT_REFERENCE_STRUCT(\r\n&lt;                            'awrv','topsql', L_REF_PARAMS),\r\n&lt;                          L_ELAPSED, L_CPU);\r\n---\r\n&gt;         \r\n&gt;         L_SQL := L_SQL || L_QRY;\r\n18515,18519c18670,18684\r\n&lt;     \r\n&lt;     \r\n&lt;     IF (L_RMMETRICS_XML IS NOT NULL) THEN\r\n&lt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, L_RMMETRICS_XML);\r\n&lt;     END IF;\r\n---\r\n&gt;         \r\n&gt;         L_SQL := REPLACE(L_SQL, '#is_awr#', 0);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_contTab#', 'null');\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_start_time#',\r\n&gt;                                  TO_CHAR(L_START_TIME, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_end_time#',\r\n&gt;                                  TO_CHAR(L_END_TIME, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_count#', L_BUCKET_COUNT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_interval#', L_BUCKET_INTERVAL);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_min_time#', TO_CHAR(L_START_TIME, \r\n&gt;                                                         DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_max_time#', TO_CHAR(L_END_TIME, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_duration#',\r\n&gt;                                  ROUND((L_END_TIME - L_START_TIME)*DTOS));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#date_fmt#', DATE_FMT);\r\n18521c18686,18711\r\n&lt;     &lt;&lt;DONE&gt;&gt;\r\n---\r\n&gt;         L_SQL := REPLACE(L_SQL, '#resource_manager_enabled#', \r\n&gt;                                 L_RESOURCE_MANAGER_ENABLED);\r\n&gt; \r\n&gt;         L_SQL := REPLACE(L_SQL, '#num_cpus#', L_NUM_CPUS);\r\n&gt; \r\n&gt;         L_RESULT_XML := I_SHOW_SQL_XML('rsrcmgrmetric', L_SQL);\r\n&gt; \r\n&gt;       ELSE\r\n&gt;         \r\n&gt;         EXECUTE IMMEDIATE L_QRY\r\n&gt;            INTO L_RESULT_XML\r\n&gt;           USING 0, L_CG_MAP,\r\n&gt;                 TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT, \r\n&gt;                 TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT, \r\n&gt;                 TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT, \r\n&gt;                 TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT, \r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_RESOURCE_MANAGER_ENABLED,\r\n&gt;                 L_NUM_CPUS, L_NUM_CPUS,\r\n&gt;                 TO_CHAR(L_START_TIME, DATE_FMT), DATE_FMT,\r\n&gt;                 TO_CHAR(L_END_TIME, DATE_FMT), DATE_FMT,\r\n&gt;                 \r\n&gt;                 L_BUCKET_INTERVAL, L_BUCKET_COUNT,\r\n&gt;                 TO_CHAR(L_START_TIME,DATE_FMT), TO_CHAR(L_END_TIME,DATE_FMT),\r\n&gt;                 (L_END_TIME - L_START_TIME)*DTOS;\r\n&gt;       END IF;\r\n18524,18531c18714,18792\r\n&lt;     IF (L_REPORT_XML IS NULL) THEN\r\n&lt;       \r\n&lt;       L_REPORT_XML :=\r\n&lt;         PRVT_REPORT_TAGS.BUILD_REPORT_TAG(\r\n&lt;           DBMS_REPORT.BUILD_REPORT_REFERENCE_STRUCT(\r\n&lt;             'awrv','topsql',L_REF_PARAMS),\r\n&lt;           NULL, NULL);\r\n&lt;     END IF;\r\n---\r\n&gt;     ELSE\r\n&gt; \r\n&gt;       IF (L_AWR_PERIOD IS NOT NULL) THEN\r\n&gt;         \r\n&gt;         CREATE_BUCKET_SNAP_MAP(L_AWR_PERIOD, L_BUCKET_MAP, \r\n&gt;                                L_BUCKET_COUNT, L_BUCKET_INTERVAL);\r\n&gt; \r\n&gt;         L_CON_ID := SYS_CONTEXT('USERENV','CON_ID');\r\n&gt; \r\n&gt;         CREATE_CONSUMER_GROUP_MAP(L_CON_ID, L_AWR_PERIOD, L_CG_MAP);\r\n&gt; \r\n&gt;         \r\n&gt;         L_QRY := RMMETRICS_COMMON;\r\n&gt;    \r\n&gt;         \r\n&gt;         L_QRY := REPLACE(L_QRY,'#GENERATE_BUCKETS_TAG#', \r\n&gt;                                 GENERATE_BUCKETS_TAG2);\r\n&gt;         L_QRY := REPLACE(L_QRY,'#GENERATE_BUCKETID_TAG#', \r\n&gt;                                 GENERATE_BUCKETID_TAG);\r\n&gt;         L_QRY := REPLACE(L_QRY,'#GENERATE_METRICS_BUCKETID#', \r\n&gt;                                 RMMETRICS_AWR);\r\n&gt; \r\n&gt;         \r\n&gt;         \r\n&gt;         IF (SYS_CONTEXT('USERENV','CON_ID') &gt; 2) THEN\r\n&gt;           L_AWR_VIEW_PREFIX := \r\n&gt;             DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(L_AWR_PERIOD.M_MIN_TIME);\r\n&gt; \r\n&gt;           DBMS_SQLTUNE_UTIL1.REPLACE_AWR_VIEW_PREFIX(L_QRY, L_AWR_VIEW_PREFIX);\r\n&gt;         END IF;\r\n&gt; \r\n&gt;         IF (SHOW_SQL = 1) THEN\r\n&gt;           \r\n&gt;           L_SQL := RMMETRICS_AWR_HEADER;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := REPLACE(L_SQL, '#is_awr#', 1);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#p_contTab#', '');\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_map#', '');\r\n&gt;           L_SQL := REPLACE(L_SQL, '#m_dbid#', L_AWR_PERIOD.M_DBID);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#m_begin_snap#', L_AWR_PERIOD.M_BEGIN_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#m_end_snap#', L_AWR_PERIOD.M_END_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#l_con_dbid#', L_CON_DBID);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#p_bucket_count#', L_BUCKET_COUNT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#p_bucket_interval#', \r\n&gt;                                    L_BUCKET_INTERVAL);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#b_min_time#', \r\n&gt;                                    TO_CHAR(L_AWR_PERIOD.M_MIN_TIME, DATE_FMT));\r\n&gt;           L_SQL := REPLACE(L_SQL, '#b_max_time#', \r\n&gt;                                    TO_CHAR(L_AWR_PERIOD.M_MAX_TIME, DATE_FMT));\r\n&gt;           L_SQL := REPLACE(L_SQL, '#b_duration#',\r\n&gt;                                    ROUND(INTERVAL_TO_SECOND(\r\n&gt;                                            L_AWR_PERIOD.M_MAX_TIME, \r\n&gt;                                            L_AWR_PERIOD.M_MIN_TIME)));\r\n&gt; \r\n&gt;           L_RESULT_XML := I_SHOW_SQL_XML('rsrcmgrmetric', L_SQL);\r\n&gt; \r\n&gt;         ELSE\r\n&gt;           EXECUTE IMMEDIATE L_QRY\r\n&gt;            INTO L_RESULT_XML\r\n&gt;           USING 1, \r\n&gt;                 L_CG_MAP, \r\n&gt;                 L_BUCKET_MAP,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_CON_DBID,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_COUNT,\r\n&gt;                 TO_CHAR(L_AWR_PERIOD.M_MIN_TIME, DATE_FMT),\r\n&gt;                 TO_CHAR(L_AWR_PERIOD.M_MAX_TIME, DATE_FMT),\r\n&gt;                 ROUND(\r\n&gt;                   INTERVAL_TO_SECOND(\r\n&gt;                     L_AWR_PERIOD.M_MAX_TIME, L_AWR_PERIOD.M_MIN_TIME));\r\n&gt;         END IF;\r\n&gt;       END IF;\r\n18533,18535d18793\r\n&lt;     IF (L_SET_ENV) THEN\r\n&lt;       \r\n&lt;       DBMS_REPORT.RESTORE_REPORT_ENV(L_ORIG_ENV);\r\n18537,18539d18794\r\n&lt;  \r\n&lt;     \r\n&lt;     RETURN L_REPORT_XML;\r\n18541c18796\r\n&lt;   END REPORT_ADW_WORKLOAD_REALTIME;\r\n---\r\n&gt;     RETURN L_RESULT_XML;\r\n18542a18798\r\n&gt;   END GET_RMMETRICS_XML;\r\n18566,18571c18822,18834\r\n&lt;   FUNCTION REPORT_ADW_WORKLOAD_HISTORICAL(\r\n&lt;     START_TIME        IN DATE           DEFAULT NULL,\r\n&lt;     END_TIME          IN DATE           DEFAULT NULL,\r\n&lt;     DBID              IN NUMBER         DEFAULT NULL,\r\n&lt;     INST_ID           IN NUMBER         DEFAULT NULL,\r\n&lt;     SHOW_SQL          IN NUMBER         DEFAULT 0)\r\n---\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_SQL_N_PARSE_TIME_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME_UTC  IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME_UTC    IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT NULL)\r\n18574,18576d18836\r\n&lt;     \r\n&lt;     L_ELAPSED        NUMBER;\r\n&lt;     L_CPU            NUMBER;\r\n18579c18839,18840\r\n&lt;     L_REF_PARAMS     DBMS_REPORT.REF_STRING_IDSPEC;\r\n---\r\n&gt;     L_QRY VARCHAR2(32767) := NULL;\r\n&gt;     L_SQL CLOB;\r\n18582,18583c18843\r\n&lt;     L_ORIG_ENV       DBMS_REPORT.FORMAT_PARAM_VALUES;\r\n&lt;     L_SET_ENV        BOOLEAN;\r\n---\r\n&gt;     L_RESULT_XML XMLTYPE := NULL;\r\n18586,18587c18846,18853\r\n&lt;     L_QUERY          VARCHAR2(32767) := NULL;\r\n&lt;     L_REPORT_SQL     CLOB;\r\n---\r\n&gt;     L_IS_REALTIME     NUMBER             := IS_REALTIME;\r\n&gt;     L_DBID            NUMBER             := DBID;\r\n&gt;     L_START_TIME_UTC  DATE               := START_TIME_UTC;\r\n&gt;     L_END_TIME_UTC    DATE               := END_TIME_UTC;\r\n&gt;     L_BUCKET_COUNT    NUMBER             := BUCKET_COUNT;\r\n&gt;     L_BUCKET_INTERVAL NUMBER             := BUCKET_INTERVAL;\r\n&gt;     L_AWR_PERIOD      PRVT_AWRV_METADATA := AWR_PERIOD;\r\n&gt;     L_AWR_VIEW_PREFIX VARCHAR2(20)       := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n18590,18591c18856\r\n&lt;     L_REPORT_XML     XMLTYPE := NULL;\r\n&lt;     L_RMMETRICS_XML  XMLTYPE := NULL;\r\n---\r\n&gt;     L_CON_DBID NUMBER;\r\n18592a18858,18921\r\n&gt;     \r\n&gt;     SQL_AND_PARSE_TIME_RT CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       with base_data as (\r\n&gt;         SELECT bucket_id,\r\n&gt;                SUM(parse_time_sec) \/ :p_bucket_interval AS parse_aas,\r\n&gt;                SUM(sql_exec_time_sec) \/ :p_bucket_interval AS sql_exec_aas,\r\n&gt;                SUM(plsql_exec_time_sec) \/ :p_bucket_interval AS plsql_exec_aas\r\n&gt;           FROM TABLE(GV$(CURSOR(\r\n&gt;                  SELECT bucket_id, \r\n&gt;                         SUM(parse_time_usec) \/ 1000000    as parse_time_sec,\r\n&gt;                         SUM(sql_exec_time_usec) \/ 1000000 as sql_exec_time_sec,\r\n&gt;                         SUM(plsql_exec_time_usec) \/ 1000000 \r\n&gt;                                                           as plsql_exec_time_sec\r\n&gt;                    FROM (\r\n&gt;                          SELECT TRUNC(((\r\n&gt;                                   cast(sample_time_utc as date) - \r\n&gt;                                   to_date(:b_start_time_utc, :date_fmt)) \r\n&gt;                                   * 86400 ) \/ :p_bucket_interval) + 1 \r\n&gt;                                     as bucket_id,\r\n&gt;                                 CASE \r\n&gt;                                   WHEN (session_type = 'FOREGROUND' \r\n&gt;                                         AND in_parse = 'Y') \r\n&gt;                                   THEN usecs_per_row \r\n&gt;                                   ELSE 0 \r\n&gt;                                 END as parse_time_usec,\r\n&gt;                                 CASE \r\n&gt;                                   WHEN (session_type = 'FOREGROUND' \r\n&gt;                                         AND in_sql_execution = 'Y') \r\n&gt;                                   THEN usecs_per_row \r\n&gt;                                   ELSE 0 \r\n&gt;                                 END as sql_exec_time_usec,\r\n&gt;                                 CASE \r\n&gt;                                   WHEN (session_type = 'FOREGROUND' \r\n&gt;                                         AND in_plsql_execution = 'Y') \r\n&gt;                                   THEN usecs_per_row \r\n&gt;                                   ELSE 0 \r\n&gt;                                 END as plsql_exec_time_usec\r\n&gt;                            FROM sys.v_$active_session_history \r\n&gt;                           WHERE sample_time_utc &gt; to_timestamp(\r\n&gt;                                                     :b_start_time_utc,\r\n&gt;                                                     :date_fmt) \r\n&gt;                             AND sample_time_utc &lt;= to_timestamp(\r\n&gt;                                                     :b_end_time_utc,:date_fmt)\r\n&gt;                         )\r\n&gt;                   WHERE bucket_id &gt; 0\r\n&gt;                   GROUP BY bucket_id\r\n&gt;                )))\r\n&gt;         GROUP BY bucket_id\r\n&gt;         ORDER BY bucket_id)\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes('sql' as \"name\"),\r\n&gt;                xmlelement(\"buckets\",\r\n&gt;                  xmlattributes(:p_bucket_interval as \"bucket_interval\",\r\n&gt;                                :p_bucket_count    as \"bucket_count\",\r\n&gt;                                :b_start_time_utc  as \"start_time_utc\",\r\n&gt;                                :b_end_time_utc    as \"end_time_utc\",\r\n&gt;                                :b_duration        as \"duration\"),\r\n&gt;                  xmlagg(xmlelement(\"bucket\",\r\n&gt;                           xmlattributes(bucket_id    as \"bucket_id\"),\r\n&gt;                   xmlforest(round(parse_aas, 2)      as \"parse_aas\",\r\n&gt;                             round(sql_exec_aas, 2)   as \"sql_aas\",\r\n&gt;                             round(plsql_exec_aas, 2) as \"plsql_aas\")))))\r\n&gt;         from base_data\r\n&gt;        where (parse_aas + sql_exec_aas + plsql_exec_aas) &gt; 0]';\r\n18595,18600c18924,18940\r\n&lt;     L_START_TIME     DATE := START_TIME;\r\n&lt;     L_END_TIME       DATE := END_TIME;\r\n&lt;     L_DBID           NUMBER := DBID;\r\n&lt;     L_INST_ID        NUMBER := INST_ID;\r\n&lt;     L_CON_ID         NUMBER;\r\n&lt;     L_CON_DBID       NUMBER;\r\n---\r\n&gt;     SQL_AND_PARSE_TIME_RT_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;     var date_fmt          varchar2(32);\r\n&gt;     var b_start_time_utc  varchar2(32);\r\n&gt;     var b_end_time_utc    varchar2(32);\r\n&gt;     var p_bucket_interval number;\r\n&gt;     var p_bucket_count    number;\r\n&gt;     var b_duration        number;\r\n&gt;     begin \r\n&gt;       :date_fmt            := '#date_fmt#';\r\n&gt;       :b_start_time_utc    := '#b_start_time_utc#';\r\n&gt;       :b_end_time_utc      := '#b_end_time_utc#';\r\n&gt;       :p_bucket_interval   := #p_bucket_interval#;\r\n&gt;       :p_bucket_count      := #p_bucket_count#;\r\n&gt;       :b_duration          := #b_duration#;\r\n&gt;     end;\r\n&gt;     \/]';\r\n&gt; \r\n18603,18606c18943,19048\r\n&lt;     L_BUCKET_CALC_INTERVAL   NUMBER;\r\n&lt;     L_BUCKET_CALC_MAX_COUNT  NUMBER;\r\n&lt;     L_BUCKET_MAP             PRVT_AWRV_MAPTAB;\r\n&lt;     L_AWR_PERIOD             PRVT_AWRV_METADATA;\r\n---\r\n&gt;     SQL_AND_PARSE_TIME_AWR CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       WITH \r\n&gt;         snaps AS\r\n&gt;           (SELECT \/*+ no_merge *\/ s.instance_number, s.snap_id, \r\n&gt;                   CASE \r\n&gt;                     WHEN p.open_time_tz &gt; s.begin_interval_time_tz \r\n&gt;                     THEN CAST((p.open_time_tz at time zone 'UTC') AS DATE)\r\n&gt;                     ELSE CAST((s.begin_interval_time_tz at time zone 'UTC') \r\n&gt;                               AS DATE)\r\n&gt;                   END as begin_time_utc,\r\n&gt;                   CAST((s.end_interval_time_tz at time zone 'UTC') AS DATE) \r\n&gt;                       as end_time_utc,\r\n&gt;                   CASE \r\n&gt;                     WHEN p.open_time_tz &gt; s.begin_interval_time_tz \r\n&gt;                     THEN 0 \r\n&gt;                     ELSE 1 \r\n&gt;                   END as diff_logic\r\n&gt;              FROM awr_root_snapshot s, awr_root_pdb_in_snap p\r\n&gt;             WHERE s.dbid = :dbid\r\n&gt;               AND p.dbid = :dbid\r\n&gt;               AND s.instance_number = p.instance_number\r\n&gt;               AND s.snap_id = p.snap_id\r\n&gt;               AND s.snap_id &gt;= :begin_snap_id\r\n&gt;               AND s.snap_id &lt;= :end_snap_id\r\n&gt;               AND p.snap_id &gt;= :begin_snap_id\r\n&gt;               AND p.snap_id &lt;= :end_snap_id\r\n&gt;           ),\r\n&gt;         base_stats AS\r\n&gt;           (SELECT \/*+ no_merge *\/ s.instance_number, s.snap_id, s.stat_name, \r\n&gt;                   s.value \/ 1000000 as value_secs \r\n&gt;              FROM awr_root_con_sys_time_model s\r\n&gt;             WHERE s.dbid = :dbid\r\n&gt;               AND s.snap_id &gt;= :begin_snap_id\r\n&gt;               AND s.snap_id &lt;= :end_snap_id\r\n&gt;               AND s.stat_name IN ('parse time elapsed', \r\n&gt;                                   'sql execute elapsed time', \r\n&gt;                                   'PL\/SQL execution elapsed time')\r\n&gt;           ),\r\n&gt;         diff_stats AS \r\n&gt;           (SELECT estat.instance_number, estat.snap_id, estat.stat_name, \r\n&gt;                   s.begin_time_utc, s.end_time_utc,\r\n&gt;                   GREATEST(estat.value_secs - \r\n&gt;                            (s.diff_logic * NVL(bstat.value_secs,0)),0) \/\r\n&gt;                   ((s.end_time_utc - s.begin_time_utc)*86400)\r\n&gt;                   as value_per_sec\r\n&gt;              FROM base_stats estat, snaps s, base_stats bstat\r\n&gt;             WHERE estat.instance_number = s.instance_number\r\n&gt;               AND estat.snap_id = s.snap_id\r\n&gt;               AND estat.instance_number = bstat.instance_number(+)\r\n&gt;               AND estat.snap_id-1 = bstat.snap_id(+)\r\n&gt;               AND estat.stat_name = bstat.stat_name(+)\r\n&gt;           ),\r\n&gt;         buckets AS\r\n&gt;           (SELECT level as bucket_id,\r\n&gt;                   to_date(:begin_time_utc, :date_format) + \r\n&gt;                   ((level -1) * :bucket_interval_secs\/86400) as begin_time_utc,\r\n&gt;                   to_date(:begin_time_utc, :date_format) + \r\n&gt;                   (level * :bucket_interval_secs\/86400)      as end_time_utc\r\n&gt;              FROM sys.dual\r\n&gt;            CONNECT BY level &lt;= (to_date(:end_time_utc, :date_format) - \r\n&gt;                                 to_date(:begin_time_utc, :date_format)) \r\n&gt;                                * 86400 \/ :bucket_interval_secs\r\n&gt;           ),\r\n&gt;         final_stats AS\r\n&gt;           (SELECT bucket_id, stat_name, \r\n&gt;                   SUM(value_per_sec * bucket_ratio) as aas\r\n&gt;              FROM (\r\n&gt;                    SELECT b.bucket_id, s.stat_name, s.value_per_sec, \r\n&gt;                           (LEAST(s.end_time_utc, b.end_time_utc) - \r\n&gt;                            GREATEST(s.begin_time_utc, b.begin_time_utc))\r\n&gt;                           \/ (b.end_time_utc - b.begin_time_utc) as bucket_ratio\r\n&gt;                      FROM diff_stats s, buckets b\r\n&gt;                     WHERE s.value_per_sec &gt; 0\r\n&gt;                       AND b.end_time_utc &gt; b.begin_time_utc\r\n&gt;                       AND s.begin_time_utc &lt; b.end_time_utc\r\n&gt;                       AND s.end_time_utc &gt; b.begin_time_utc\r\n&gt;                   )\r\n&gt;            GROUP BY bucket_id, stat_name\r\n&gt;           ),\r\n&gt;         pivoted_stats AS\r\n&gt;           (SELECT * FROM final_stats\r\n&gt;            PIVOT(SUM(aas) FOR stat_name IN \r\n&gt;                              ('parse time elapsed' as parse_aas,\r\n&gt;                               'sql execute elapsed time' as sql_exec_aas,\r\n&gt;                               'PL\/SQL execution elapsed time' as plsql_exec_aas)\r\n&gt;                 )\r\n&gt;           ),\r\n&gt;         base_data AS\r\n&gt;           (SELECT bucket_id, parse_aas, sql_exec_aas, plsql_exec_aas\r\n&gt;              FROM pivoted_stats\r\n&gt;            ORDER BY bucket_id)\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes('sql' as \"name\"),\r\n&gt;                xmlelement(\"buckets\",\r\n&gt;                  xmlattributes(:bucket_interval_secs as \"bucket_interval\",\r\n&gt;                                :bucket_count         as \"bucket_count\",\r\n&gt;                                :begin_time_utc       as \"start_time_utc\",\r\n&gt;                                :end_time_utc         as \"end_time_utc\",\r\n&gt;                                :duration             as \"duration\"),\r\n&gt;                  xmlagg(xmlelement(\"bucket\",\r\n&gt;                           xmlattributes(bucket_id    as \"bucket_id\"),\r\n&gt;                   xmlforest(round(parse_aas, 2)      as \"parse_aas\",\r\n&gt;                             round(sql_exec_aas, 2)   as \"sql_aas\",\r\n&gt;                             round(plsql_exec_aas, 2) as \"plsql_aas\")))))\r\n&gt;         from base_data\r\n&gt;        where (parse_aas + sql_exec_aas + plsql_exec_aas) &gt; 0]';\r\n18609c19051,19060\r\n&lt;     L_CG_MAP PRVT_AWRV_INSTTAB := NULL;\r\n---\r\n&gt;     SQL_AND_PARSE_TIME_AWR_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var dbid                 number;\r\n&gt;       var begin_snap_id        number;\r\n&gt;       var end_snap_id          number;\r\n&gt;       var begin_time_utc       varchar2(4000);\r\n&gt;       var end_time_utc         varchar2(4000);\r\n&gt;       var date_format          varchar2(32);\r\n&gt;       var bucket_interval_secs number;\r\n&gt;       var bucket_count         number;\r\n&gt;       var duration             number;\r\n18611c19062,19073\r\n&lt;     L_CPU_COUNT NUMBER := NULL;\r\n---\r\n&gt;       begin\r\n&gt;         :dbid                 := #dbid#;\r\n&gt;         :begin_snap_id        := #begin_snap_id#;\r\n&gt;         :end_snap_id          := #end_snap_id#;\r\n&gt;         :begin_time_utc       := '#begin_time_utc#';\r\n&gt;         :end_time_utc         := '#end_time_utc#';\r\n&gt;         :date_format          := '#date_format#';\r\n&gt;         :bucket_interval_secs := #bucket_interval_secs#;\r\n&gt;         :bucket_count         := #bucket_count#;\r\n&gt;         :duration             := #duration#;\r\n&gt;     end;\r\n&gt;     \/]';\r\n18612a19075\r\n&gt;   BEGIN\r\n18614,18615c19077,19079\r\n&lt;     L_ERRMSG                           VARCHAR2(32767);\r\n&lt;     L_ERROR_XML                        XMLTYPE := NULL;\r\n---\r\n&gt;     IF (IS_REALTIME IS NULL) THEN\r\n&gt;       L_IS_REALTIME := 1;\r\n&gt;     END IF;\r\n18617,18668c19081,19775\r\n&lt;     ADW_RMMETRICS_AWR CONSTANT VARCHAR2(32767) := q'[\r\n&lt;     select bucket_id,\r\n&lt;            consumer_group_id,\r\n&lt;            consumer_group_name,\r\n&lt;            sum(avg_cpu_utilization) \r\n&lt;                   avg_cpu_utilization,\r\n&lt;            sum(avg_active_parallel_stmts) \r\n&lt;                   avg_active_parallel_stmts,\r\n&lt;            sum(avg_queued_parallel_stmts) \r\n&lt;                   avg_queued_parallel_stmts\r\n&lt;      from (\r\n&lt;         select bucket_id,\r\n&lt;                consumer_group_name,  \r\n&lt;                consumer_group_id,\r\n&lt;                -- avg\r\n&lt;                avg(avg_cpu_utilization) \r\n&lt;                   avg_cpu_utilization,\r\n&lt;                avg(avg_active_parallel_stmts) \r\n&lt;                   avg_active_parallel_stmts,\r\n&lt;                avg(avg_queued_parallel_stmts) \r\n&lt;                   avg_queued_parallel_stmts\r\n&lt;           from table(\r\n&lt;                  cast(:bucket_map as \r\n&lt;                       sys.prvt_awrv_mapTab)) m,\r\n&lt;                (select \/*+ no_merge *\/ snap_id,\r\n&lt;                        instance_number,\r\n&lt;                        consumer_group_id,\r\n&lt;                        null consumer_group_name,\r\n&lt;                        case \r\n&lt;                          when :cpu_count is null or\r\n&lt;                               :cpu_count = 0 then\r\n&lt;                            avg_cpu_utilization\r\n&lt;                          else\r\n&lt;                            (avg_running_sessions\/:cpu_count)*100\r\n&lt;                          end avg_cpu_utilization,\r\n&lt;                        avg_active_parallel_stmts,\r\n&lt;                        avg_queued_parallel_stmts\r\n&lt;                   from awr_pdb_rsrc_metric\r\n&lt;                  where dbid = :m_dbid \r\n&lt;                    and snap_id between :m_begin_snap \r\n&lt;                                    and :m_end_snap\r\n&lt;                    and con_dbid = :l_con_dbid) y\r\n&lt;          where m.snap_id         = y.snap_id\r\n&lt;            and m.instance_number = y.instance_number\r\n&lt;            and y.snap_id         &gt; :m_begin_snap\r\n&lt;          group by bucket_id, \r\n&lt;                y.instance_number, \r\n&lt;                y.consumer_group_id, \r\n&lt;                y.consumer_group_name)\r\n&lt;       group by bucket_id, \r\n&lt;                consumer_group_id,\r\n&lt;                consumer_group_name]'; \r\n---\r\n&gt;     \r\n&gt;     L_CON_DBID := SYS_CONTEXT('USERENV','CON_DBID');\r\n&gt; \r\n&gt;     IF (DBID IS NULL) THEN\r\n&gt;       L_DBID := L_CON_DBID;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (END_TIME_UTC IS NULL) THEN\r\n&gt;       L_END_TIME_UTC := CAST(SYS_EXTRACT_UTC(SYSTIMESTAMP) AS DATE);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (START_TIME_UTC IS NULL) THEN\r\n&gt;       \r\n&gt;       IF (L_IS_REALTIME = 1) THEN\r\n&gt;         L_START_TIME_UTC := L_END_TIME_UTC - 1\/24;\r\n&gt;       \r\n&gt;       ELSE\r\n&gt;         L_START_TIME_UTC := L_END_TIME_UTC - 1;\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (BUCKET_COUNT IS NULL) THEN\r\n&gt;       L_BUCKET_COUNT := 60;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME = 1) THEN\r\n&gt;       \r\n&gt;       L_QRY := SQL_AND_PARSE_TIME_RT;\r\n&gt;     \r\n&gt;       \r\n&gt;       IF (SHOW_SQL = 1) THEN\r\n&gt; \r\n&gt;         L_SQL := SQL_AND_PARSE_TIME_RT_HEADER;\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := REPLACE(L_SQL, '#date_fmt#', DATE_FMT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_start_time_utc#',\r\n&gt;                                  TO_CHAR(L_START_TIME_UTC, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_end_time_utc#',\r\n&gt;                                  TO_CHAR(L_END_TIME_UTC, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_count#', L_BUCKET_COUNT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_interval#', L_BUCKET_INTERVAL);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_duration#',\r\n&gt;                                  ROUND(L_END_TIME_UTC-L_START_TIME_UTC)*DTOS);\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;         \r\n&gt;         L_RESULT_XML := I_SHOW_SQL_XML('sql_and_parse_time', L_SQL);\r\n&gt; \r\n&gt;       ELSE\r\n&gt;         \r\n&gt;         EXECUTE IMMEDIATE L_QRY\r\n&gt;                      INTO L_RESULT_XML\r\n&gt;                     USING L_BUCKET_INTERVAL,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           \r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           \r\n&gt;                           L_BUCKET_INTERVAL, L_BUCKET_COUNT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT),\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT),\r\n&gt;                           ROUND((L_END_TIME_UTC - L_START_TIME_UTC)*DTOS);\r\n&gt;       END IF;\r\n&gt;  \r\n&gt;     \r\n&gt;     ELSE\r\n&gt;       IF (L_AWR_PERIOD IS NOT NULL) THEN\r\n&gt; \r\n&gt;         \r\n&gt;         L_QRY := SQL_AND_PARSE_TIME_AWR;\r\n&gt; \r\n&gt;         \r\n&gt;         \r\n&gt;         IF (SYS_CONTEXT('USERENV','CON_ID') &gt; 2) THEN\r\n&gt;           L_AWR_VIEW_PREFIX := \r\n&gt;             DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(L_AWR_PERIOD.M_MIN_TIME);\r\n&gt; \r\n&gt;           DBMS_SQLTUNE_UTIL1.REPLACE_AWR_VIEW_PREFIX(L_QRY, L_AWR_VIEW_PREFIX);\r\n&gt;         END IF;\r\n&gt; \r\n&gt;         IF (SHOW_SQL = 1) THEN\r\n&gt;           \r\n&gt;           L_SQL := SQL_AND_PARSE_TIME_AWR_HEADER;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := REPLACE(L_SQL, '#dbid#', L_AWR_PERIOD.M_DBID);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#begin_snap_id#', L_AWR_PERIOD.M_BEGIN_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#end_snap_id#', L_AWR_PERIOD.M_END_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#begin_time_utc#', \r\n&gt;                                    TO_CHAR(L_START_TIME_UTC, DATE_FMT)); \r\n&gt;           L_SQL := REPLACE(L_SQL, '#end_time_utc#', \r\n&gt;                                    TO_CHAR(L_END_TIME_UTC, DATE_FMT));\r\n&gt;           L_SQL := REPLACE(L_SQL, '#date_format#', DATE_FMT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_count#', L_BUCKET_COUNT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_interval_secs#', \r\n&gt;                                    L_BUCKET_INTERVAL);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#duration#', ROUND(INTERVAL_TO_SECOND(\r\n&gt;                                    L_END_TIME_UTC, L_START_TIME_UTC)));\r\n&gt; \r\n&gt;           L_RESULT_XML := I_SHOW_SQL_XML('sql_and_parse_time', L_SQL);\r\n&gt; \r\n&gt;         ELSE\r\n&gt;           EXECUTE IMMEDIATE L_QRY\r\n&gt;            INTO L_RESULT_XML\r\n&gt;           USING L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_COUNT,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC,DATE_FMT),\r\n&gt;                 TO_CHAR(L_END_TIME_UTC,DATE_FMT),\r\n&gt;                 ROUND(\r\n&gt;                   INTERVAL_TO_SECOND(L_END_TIME_UTC, L_START_TIME_UTC));\r\n&gt; \r\n&gt;         END IF;\r\n&gt; \r\n&gt;       END IF;\r\n&gt; \r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_RESULT_XML;\r\n&gt; \r\n&gt;   END GET_SQL_N_PARSE_TIME_XML;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_WAIT_TIME_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME_UTC  IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME_UTC    IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt; \r\n&gt;     \r\n&gt;     L_QRY VARCHAR2(32767) := NULL;\r\n&gt;     L_SQL CLOB;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RESULT_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_IS_REALTIME     NUMBER             := IS_REALTIME;\r\n&gt;     L_DBID            NUMBER             := DBID;\r\n&gt;     L_START_TIME_UTC  DATE               := START_TIME_UTC;\r\n&gt;     L_END_TIME_UTC    DATE               := END_TIME_UTC;\r\n&gt;     L_BUCKET_COUNT    NUMBER             := BUCKET_COUNT;\r\n&gt;     L_BUCKET_INTERVAL NUMBER             := BUCKET_INTERVAL;\r\n&gt;     L_AWR_PERIOD      PRVT_AWRV_METADATA := AWR_PERIOD;\r\n&gt;     L_AWR_VIEW_PREFIX VARCHAR2(20)       := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_DBID NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     WAIT_TIME_RT CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       WITH \r\n&gt;         inst_data AS\r\n&gt;           (SELECT inst_id, bucket_id, metric_name, value\r\n&gt;              FROM TABLE(GV$(CURSOR(\r\n&gt;                     SELECT USERENV('INSTANCE') as inst_id,\r\n&gt;                            bucket_id, metric_name,\r\n&gt;                            SUM(value*bucket_ratio) as value\r\n&gt;                       FROM (\r\n&gt;                             SELECT USERENV('INSTANCE') as inst_id,\r\n&gt;                                    buckets.bucket_id,\r\n&gt;                                    met.metric_name,\r\n&gt;                                    met.value,\r\n&gt;                                    (LEAST(met.end_time_utc, \r\n&gt;                                           buckets.end_time_utc) - \r\n&gt;                                     GREATEST(met.begin_time_utc, \r\n&gt;                                              buckets.begin_time_utc)) \/ \r\n&gt;                                     (met.end_time_utc - met.begin_time_utc) \r\n&gt;                                       as bucket_ratio\r\n&gt;                              FROM ( \r\n&gt;                                    SELECT \/*+ no_merge *\/ USERENV('INSTANCE') \r\n&gt;                                                               as inst_id,\r\n&gt;                                           m.begin_time-tz.time_zone \r\n&gt;                                                               as begin_time_utc,\r\n&gt;                                           m.end_time-tz.time_zone \r\n&gt;                                                               as end_time_utc,\r\n&gt;                                           CASE\r\n&gt;                                             WHEN m.metric_name = \r\n&gt;                                                    'Average Active Sessions'\r\n&gt;                                               THEN 'DBTime'\r\n&gt;                                             ELSE 'CPU'\r\n&gt;                                           END as metric_name,\r\n&gt;                                           CASE \r\n&gt;                                             WHEN m.metric_name = \r\n&gt;                                                    'CPU Usage Per Sec' \r\n&gt;                                             THEN m.value*m.intsize_csec\/10000\r\n&gt;                                             ELSE m.value*m.intsize_csec\/100\r\n&gt;                                           END as value\r\n&gt;                                      FROM sys.v_$con_sysmetric_history m,\r\n&gt;                                           (SELECT ROUND(\r\n&gt;                                                     (cast(latest_sample_time \r\n&gt;                                                           as date) - \r\n&gt;                                                      cast(sys_extract_utc(\r\n&gt;                                                             systimestamp) \r\n&gt;                                                           as date))\r\n&gt;                                                     *900,0)\/900 as time_zone\r\n&gt;                                              FROM sys.v_$ash_info) tz\r\n&gt;                                     WHERE m.group_id = 18\r\n&gt;                                       AND m.metric_name IN \r\n&gt;                                             ('Average Active Sessions',\r\n&gt;                                              'CPU Usage Per Sec')\r\n&gt;                                       AND m.begin_time-tz.time_zone &lt; \r\n&gt;                                           to_date(:b_end_time_utc, :date_fmt)\r\n&gt;                                       AND m.end_time-tz.time_zone &gt;= \r\n&gt;                                           to_date(:b_start_time_utc, :date_fmt)\r\n&gt;                                   ) met,    \r\n&gt;                                   ( \r\n&gt;                                    SELECT \/*+ no_merge *\/ level as bucket_id,\r\n&gt;                                           to_date(:b_start_time_utc,:date_fmt) +\r\n&gt;                                           ((level -1) * :p_bucket_interval \r\n&gt;                                            \/ 86400) as begin_time_utc,\r\n&gt;                                           to_date(:b_start_time_utc,:date_fmt) +\r\n&gt;                                           (level * :p_bucket_interval \/ 86400) \r\n&gt;                                                     as end_time_utc\r\n&gt;                                      FROM sys.v_$instance \r\n&gt;                                           -- note: DUAL not allowed inside GV$\r\n&gt;                                    CONNECT BY level &lt;= \r\n&gt;                                               (to_date(:b_end_time_utc,\r\n&gt;                                                        :date_fmt) - \r\n&gt;                                                to_date(:b_start_time_utc, \r\n&gt;                                                        :date_fmt)) \r\n&gt;                                               * 86400 \/ :p_bucket_interval\r\n&gt;                                   ) buckets\r\n&gt;                             WHERE buckets.begin_time_utc &lt; met.end_time_utc\r\n&gt;                               AND buckets.end_time_utc &gt; met.begin_time_utc\r\n&gt;                            )\r\n&gt;                     GROUP BY bucket_id, metric_name\r\n&gt;                     UNION ALL\r\n&gt;                     SELECT USERENV('INSTANCE') as inst_id,\r\n&gt;                            bucket_id,\r\n&gt;                            metric_name,\r\n&gt;                            SUM(value) as value\r\n&gt;                       FROM (\r\n&gt;                             SELECT TRUNC(((cast(sample_time_utc as date) - \r\n&gt;                                                 to_date(:b_start_time_utc, \r\n&gt;                                                         :date_fmt)) * 86400) \/ \r\n&gt;                                    :p_bucket_interval) + 1 AS bucket_id,\r\n&gt;                                    DECODE(session_state, 'WAITING', wait_class, \r\n&gt;                                                          'ASH_CPU') \r\n&gt;                                                            AS metric_name,\r\n&gt;                                    CASE \r\n&gt;                                      WHEN session_type = 'FOREGROUND' \r\n&gt;                                      THEN usecs_per_row\/1000000 \r\n&gt;                                      ELSE 0 \r\n&gt;                                    END AS value\r\n&gt;                               FROM sys.v_$active_session_history\r\n&gt;                              WHERE sample_time_utc &gt;= \r\n&gt;                                    to_timestamp(:b_start_time_utc, :date_fmt)\r\n&gt;                                AND sample_time_utc &lt; \r\n&gt;                                    to_timestamp(:b_end_time_utc, :date_fmt)\r\n&gt;                            )\r\n&gt;                     WHERE bucket_id &gt; 0\r\n&gt;                     GROUP BY bucket_id, metric_name\r\n&gt;           )))),\r\n&gt;         db_data AS \r\n&gt;           (SELECT bucket_id, metric_name, \r\n&gt;                   SUM(value) as value\r\n&gt;              FROM inst_data\r\n&gt;            GROUP BY bucket_id, metric_name\r\n&gt;           ),\r\n&gt;         wait_for_cpu AS\r\n&gt;           (SELECT bucket_id, 'wait for CPU' as metric_name, \r\n&gt;                   GREATEST(SUM(DECODE(metric_name, 'ASH_CPU', value, \r\n&gt;                                       -value)), 0)    AS value\r\n&gt;              FROM db_data\r\n&gt;             WHERE metric_name IN ('CPU', 'ASH_CPU')\r\n&gt;            GROUP BY bucket_id\r\n&gt;           ),\r\n&gt;         final_data AS\r\n&gt;           (SELECT bucket_id, metric_name,\r\n&gt;                   value \/ :p_bucket_interval    AS value\r\n&gt;              FROM db_data\r\n&gt;             WHERE metric_name &lt;&gt; 'ASH_CPU'\r\n&gt;               AND value &gt; 0\r\n&gt;            UNION ALL\r\n&gt;            SELECT bucket_id, metric_name, \r\n&gt;                   value \/:p_bucket_interval     AS value\r\n&gt;              FROM wait_for_cpu\r\n&gt;             WHERE value &gt; 0\r\n&gt;           ),\r\n&gt;         base_data AS\r\n&gt;           (SELECT * FROM final_data\r\n&gt;            ORDER BY bucket_id, metric_name)\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes('wait_time' as \"name\"),\r\n&gt;                xmlelement(\"buckets\",\r\n&gt;                  xmlattributes(:p_bucket_interval as \"bucket_interval\",\r\n&gt;                                :p_bucket_count    as \"bucket_count\",\r\n&gt;                                :b_start_time_utc  as \"start_time_utc\",\r\n&gt;                                :b_end_time_utc    as \"end_time_utc\",\r\n&gt;                                :b_duration        as \"duration\"),\r\n&gt;                  xmlagg(xmlelement(\"bucket\",\r\n&gt;                           xmlattributes(bucket_id as \"bucket_id\"),\r\n&gt;                           xmlagg(\r\n&gt;                             xmlelement(\"metric\",\r\n&gt;                               xmlattributes(metric_name     as \"name\",\r\n&gt;                                             round(value, 2) as \"value\")\r\n&gt;              ))))))\r\n&gt;         from base_data\r\n&gt;        where value &gt; 0 \r\n&gt;        group by bucket_id]';\r\n&gt; \r\n&gt;     WAIT_TIME_RT_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var date_fmt          varchar2(32);\r\n&gt;       var b_start_time_utc  varchar2(32);\r\n&gt;       var b_end_time_utc    varchar2(32);\r\n&gt;       var p_bucket_interval number;\r\n&gt;       var p_bucket_count    number;\r\n&gt;       var b_duration        number;\r\n&gt;       begin \r\n&gt;         :date_fmt            := '#date_fmt#';\r\n&gt;         :b_start_time_utc    := '#b_start_time_utc#';\r\n&gt;         :b_end_time_utc      := '#b_end_time_utc#';\r\n&gt;         :p_bucket_interval   := #p_bucket_interval#;\r\n&gt;         :p_bucket_count      := #p_bucket_count#;\r\n&gt;         :b_duration          := #b_duration#;\r\n&gt;       end;\r\n&gt;       \/]';\r\n&gt; \r\n&gt;     \r\n&gt;     WAIT_TIME_AWR CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       WITH \r\n&gt;         snaps AS\r\n&gt;           (SELECT \/*+ no_merge *\/ s.instance_number, s.snap_id, \r\n&gt;                   CASE \r\n&gt;                     WHEN p.open_time_tz &gt; s.begin_interval_time_tz \r\n&gt;                     THEN CAST((p.open_time_tz at time zone 'UTC') AS DATE)\r\n&gt;                     ELSE CAST((s.begin_interval_time_tz at time zone 'UTC') \r\n&gt;                               AS DATE)\r\n&gt;                   END as begin_time_utc,\r\n&gt;                   CAST((s.end_interval_time_tz at time zone 'UTC') AS DATE) \r\n&gt;                       as end_time_utc,\r\n&gt;                   CASE \r\n&gt;                     WHEN p.open_time_tz &gt; s.begin_interval_time_tz \r\n&gt;                     THEN 0 \r\n&gt;                     ELSE 1 \r\n&gt;                   END as diff_logic\r\n&gt;              FROM awr_root_snapshot s, awr_root_pdb_in_snap p\r\n&gt;             WHERE s.dbid = :dbid\r\n&gt;               AND p.dbid = :dbid\r\n&gt;               AND s.instance_number = p.instance_number\r\n&gt;               AND s.snap_id = p.snap_id\r\n&gt;               AND s.snap_id &gt;= :begin_snap_id\r\n&gt;               AND s.snap_id &lt;= :end_snap_id\r\n&gt;               AND p.snap_id &gt;= :begin_snap_id\r\n&gt;               AND p.snap_id &lt;= :end_snap_id\r\n&gt;           ),\r\n&gt;         base_stats AS\r\n&gt;           (SELECT e.instance_number, e.snap_id, e.wait_class, \r\n&gt;                   SUM(e.time_waited_micro_fg)\/1000000 as value\r\n&gt;              FROM awr_root_con_system_event e\r\n&gt;             WHERE e.dbid = :dbid\r\n&gt;               AND e.snap_id &gt;= :begin_snap_id\r\n&gt;               AND e.snap_id &lt;= :end_snap_id\r\n&gt;               AND e.wait_class &lt;&gt; 'Idle'\r\n&gt;            GROUP BY e.instance_number, e.snap_id, e.wait_class  \r\n&gt;            UNION ALL\r\n&gt;            SELECT s.instance_number, s.snap_id, \r\n&gt;                   CASE \r\n&gt;                     WHEN s.stat_name = 'DB time'\r\n&gt;                     THEN 'DBTime' \r\n&gt;                     ELSE 'CPU'\r\n&gt;                   END as wait_class,\r\n&gt;                   s.value\/1000000 as value\r\n&gt;              FROM awr_root_con_sys_time_model s\r\n&gt;             WHERE s.dbid = :dbid\r\n&gt;               AND s.snap_id &gt;= :begin_snap_id\r\n&gt;               AND s.snap_id &lt;= :end_snap_id\r\n&gt;               AND s.stat_name IN ('DB time', 'DB CPU')\r\n&gt;           ),\r\n&gt;         agg_stats AS\r\n&gt;           (SELECT \/*+ no_merge *\/ instance_number, snap_id, wait_class, \r\n&gt;                   SUM(value) as value\r\n&gt;              FROM base_stats\r\n&gt;             WHERE value &gt; 0\r\n&gt;            GROUP BY instance_number, snap_id, wait_class\r\n&gt;           ),\r\n&gt;         diff_stats AS \r\n&gt;           (SELECT estat.instance_number, estat.snap_id, estat.wait_class, \r\n&gt;                   s.begin_time_utc, s.end_time_utc,\r\n&gt;                   GREATEST(estat.value - \r\n&gt;                            (s.diff_logic * NVL(bstat.value,0)),0) \/\r\n&gt;                   ((s.end_time_utc - s.begin_time_utc)*86400)\r\n&gt;                   as value\r\n&gt;              FROM agg_stats estat, snaps s, agg_stats bstat\r\n&gt;             WHERE estat.instance_number = s.instance_number\r\n&gt;               AND estat.snap_id = s.snap_id\r\n&gt;               AND estat.instance_number = bstat.instance_number(+)\r\n&gt;               AND estat.snap_id-1 = bstat.snap_id(+)\r\n&gt;               AND estat.wait_class = bstat.wait_class(+)\r\n&gt;           ),\r\n&gt;         buckets AS\r\n&gt;           (SELECT level as bucket_id,\r\n&gt;                   to_date(:begin_time_utc, :date_format) + \r\n&gt;                   ((level -1) * :bucket_interval_secs\/86400) as begin_time_utc,\r\n&gt;                   to_date(:begin_time_utc, :date_format) + \r\n&gt;                   (level * :bucket_interval_secs\/86400) as end_time_utc\r\n&gt;              FROM sys.dual\r\n&gt;            CONNECT BY level &lt;= (to_date(:end_time_utc, :date_format) - \r\n&gt;                                 to_date(:begin_time_utc, :date_format)) \r\n&gt;                                * 86400 \/ :bucket_interval_secs\r\n&gt;           ),\r\n&gt;         db_stats AS\r\n&gt;           (SELECT bucket_id, wait_class, \r\n&gt;                   SUM(value * bucket_ratio) as value\r\n&gt;              FROM (\r\n&gt;                    SELECT b.bucket_id, s.wait_class, s.value,\r\n&gt;                           (LEAST(s.end_time_utc, b.end_time_utc) - \r\n&gt;                            GREATEST(s.begin_time_utc, b.begin_time_utc))\r\n&gt;                           \/ (b.end_time_utc - b.begin_time_utc) as bucket_ratio\r\n&gt;                      FROM diff_stats s, buckets b\r\n&gt;                     WHERE b.end_time_utc &gt; b.begin_time_utc\r\n&gt;                       AND s.begin_time_utc &lt; b.end_time_utc\r\n&gt;                       AND s.end_time_utc &gt; b.begin_time_utc\r\n&gt;                   )\r\n&gt;            GROUP BY bucket_id, wait_class\r\n&gt;           ),\r\n&gt;         wait_for_cpu AS\r\n&gt;           (SELECT bucket_id, 'wait for CPU' as wait_class,\r\n&gt;                   GREATEST(SUM(DECODE(wait_class, 'DBTime', value, -value)), \r\n&gt;                            0) as value\r\n&gt;              FROM db_stats\r\n&gt;            GROUP BY bucket_id\r\n&gt;           ),\r\n&gt;         final_stats AS \r\n&gt;           (SELECT bucket_id, wait_class, value\r\n&gt;              FROM db_stats\r\n&gt;            UNION ALL\r\n&gt;            SELECT bucket_id, wait_class, value\r\n&gt;              FROM wait_for_cpu\r\n&gt;           ),\r\n&gt;        base_data AS\r\n&gt;          (SELECT bucket_id, wait_class, value\r\n&gt;             FROM final_stats\r\n&gt;           ORDER BY 1,2)\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes('wait_time' as \"name\"),\r\n&gt;                xmlelement(\"buckets\",\r\n&gt;                  xmlattributes(:bucket_interval_secs as \"bucket_interval\",\r\n&gt;                                :bucket_count         as \"bucket_count\",\r\n&gt;                                :begin_time_utc       as \"start_time_utc\",\r\n&gt;                                :end_time_utc         as \"end_time_utc\",\r\n&gt;                                :duration             as \"duration\"),\r\n&gt;                  xmlagg(xmlelement(\"bucket\",\r\n&gt;                           xmlattributes(bucket_id as \"bucket_id\"),\r\n&gt;                           xmlagg(\r\n&gt;                             xmlelement(\"wait_class\",\r\n&gt;                               xmlattributes(wait_class      as \"name\",\r\n&gt;                                             round(value, 2) as \"value\")))))))\r\n&gt;         from base_data\r\n&gt;        where value &gt; 0 \r\n&gt;        group by bucket_id]';\r\n&gt; \r\n&gt;     WAIT_TIME_AWR_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var dbid                 number;\r\n&gt;       var begin_snap_id        number;\r\n&gt;       var end_snap_id          number;\r\n&gt;       var begin_time_utc       varchar2(4000);\r\n&gt;       var end_time_utc         varchar2(4000);\r\n&gt;       var date_format          varchar2(32);\r\n&gt;       var bucket_interval_secs number;\r\n&gt;       var bucket_count         number;\r\n&gt;       var duration             number;\r\n&gt; \r\n&gt;       begin\r\n&gt;         :dbid                 := #dbid#;\r\n&gt;         :begin_snap_id        := #begin_snap_id#;\r\n&gt;         :end_snap_id          := #end_snap_id#;\r\n&gt;         :begin_time_utc       := '#begin_time_utc#';\r\n&gt;         :end_time_utc         := '#end_time_utc#';\r\n&gt;         :date_format          := '#date_format#';\r\n&gt;         :bucket_interval_secs := #bucket_interval_secs#;\r\n&gt;         :bucket_count         := #bucket_count#;\r\n&gt;         :duration             := #duration#;\r\n&gt;     end;\r\n&gt;     \/]';\r\n&gt; \r\n&gt;   BEGIN\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME IS NULL) THEN\r\n&gt;       L_IS_REALTIME := 1;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_DBID := SYS_CONTEXT('USERENV','CON_DBID');\r\n&gt; \r\n&gt;     IF (DBID IS NULL) THEN\r\n&gt;       L_DBID := L_CON_DBID;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (END_TIME_UTC IS NULL) THEN\r\n&gt;       L_END_TIME_UTC := CAST(SYS_EXTRACT_UTC(SYSTIMESTAMP) AS DATE);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (START_TIME_UTC IS NULL) THEN\r\n&gt;       \r\n&gt;       IF (L_IS_REALTIME = 1) THEN\r\n&gt;         L_START_TIME_UTC := L_END_TIME_UTC - 1\/24;\r\n&gt;       \r\n&gt;       ELSE\r\n&gt;         L_START_TIME_UTC := L_END_TIME_UTC - 1;\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (BUCKET_COUNT IS NULL) THEN\r\n&gt;       L_BUCKET_COUNT := 60;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME = 1) THEN\r\n&gt; \r\n&gt;       L_QRY := WAIT_TIME_RT;\r\n&gt;     \r\n&gt;       \r\n&gt;       IF (SHOW_SQL = 1) THEN\r\n&gt; \r\n&gt;         L_SQL := WAIT_TIME_RT_HEADER;\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := REPLACE(L_SQL, '#date_fmt#', DATE_FMT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_start_time_utc#',\r\n&gt;                                  TO_CHAR(L_START_TIME_UTC, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_end_time_utc#',\r\n&gt;                                  TO_CHAR(L_END_TIME_UTC, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_count#', L_BUCKET_COUNT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_interval#', L_BUCKET_INTERVAL);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_duration#', \r\n&gt;                                  ROUND(L_END_TIME_UTC-L_START_TIME_UTC)*DTOS);\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;         \r\n&gt;         L_RESULT_XML := I_SHOW_SQL_XML('wait_time', L_SQL);\r\n&gt; \r\n&gt;       ELSE\r\n&gt; \r\n&gt;         \r\n&gt;         EXECUTE IMMEDIATE L_QRY\r\n&gt;                      INTO L_RESULT_XML\r\n&gt;                     USING TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           \r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           \r\n&gt;                           L_BUCKET_INTERVAL, L_BUCKET_COUNT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT),\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT),\r\n&gt;                           ROUND((L_END_TIME_UTC - L_START_TIME_UTC)*DTOS);\r\n&gt;       END IF;\r\n&gt;     \r\n&gt;     \r\n&gt;     ELSE\r\n&gt;      IF (L_AWR_PERIOD IS NOT NULL) THEN\r\n&gt; \r\n&gt;         \r\n&gt;         L_QRY := WAIT_TIME_AWR;\r\n&gt; \r\n&gt;         IF (SYS_CONTEXT('USERENV','CON_ID') &gt; 2) THEN\r\n&gt;           L_AWR_VIEW_PREFIX := \r\n&gt;             DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(L_AWR_PERIOD.M_MIN_TIME);\r\n&gt; \r\n&gt;           DBMS_SQLTUNE_UTIL1.REPLACE_AWR_VIEW_PREFIX(L_QRY, L_AWR_VIEW_PREFIX);\r\n&gt;         END IF;\r\n&gt; \r\n&gt;         IF (SHOW_SQL = 1) THEN\r\n&gt;           \r\n&gt;           L_SQL := WAIT_TIME_AWR_HEADER;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := REPLACE(L_SQL, '#dbid#', L_AWR_PERIOD.M_DBID);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#begin_snap_id#', L_AWR_PERIOD.M_BEGIN_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#end_snap_id#', L_AWR_PERIOD.M_END_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#begin_time_utc#', \r\n&gt;                                    TO_CHAR(L_START_TIME_UTC, DATE_FMT)); \r\n&gt;           L_SQL := REPLACE(L_SQL, '#end_time_utc#', \r\n&gt;                                    TO_CHAR(L_END_TIME_UTC, DATE_FMT));\r\n&gt;           L_SQL := REPLACE(L_SQL, '#date_format#', DATE_FMT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_count#', L_BUCKET_COUNT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_interval_secs#', \r\n&gt;                                    L_BUCKET_INTERVAL);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#duration#',\r\n&gt;                                    ROUND(INTERVAL_TO_SECOND(\r\n&gt;                                      L_END_TIME_UTC, L_START_TIME_UTC)));\r\n&gt; \r\n&gt;           L_RESULT_XML := I_SHOW_SQL_XML('wait_time', L_SQL);\r\n&gt; \r\n&gt;         ELSE\r\n&gt;           EXECUTE IMMEDIATE L_QRY\r\n&gt;            INTO L_RESULT_XML\r\n&gt;           USING L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 TO_CHAR(L_END_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_COUNT,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT),\r\n&gt;                 TO_CHAR(L_END_TIME_UTC, DATE_FMT),\r\n&gt;                 ROUND((L_END_TIME_UTC - L_START_TIME_UTC)*DTOS);\r\n&gt;         END IF;\r\n&gt; \r\n&gt;       END IF;\r\n18669a19777,20464\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_RESULT_XML;\r\n&gt; \r\n&gt;   END GET_WAIT_TIME_XML;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_SYSMETRICS_XML(\r\n&gt;     IS_REALTIME     IN NUMBER             DEFAULT 1,\r\n&gt;     DBID            IN NUMBER             DEFAULT NULL,\r\n&gt;     START_TIME_UTC  IN DATE               DEFAULT NULL,\r\n&gt;     END_TIME_UTC    IN DATE               DEFAULT NULL,\r\n&gt;     BUCKET_COUNT    IN NUMBER             DEFAULT 128,\r\n&gt;     BUCKET_INTERVAL IN NUMBER             DEFAULT NULL,\r\n&gt;     AWR_PERIOD      IN PRVT_AWRV_METADATA DEFAULT NULL,\r\n&gt;     SHOW_SQL        IN NUMBER             DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt; \r\n&gt;     \r\n&gt;     L_QRY VARCHAR2(32767) := NULL;\r\n&gt;     L_SQL CLOB;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RESULT_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_IS_REALTIME     NUMBER             := IS_REALTIME;\r\n&gt;     L_DBID            NUMBER             := DBID;\r\n&gt;     L_START_TIME_UTC  DATE               := START_TIME_UTC;\r\n&gt;     L_END_TIME_UTC    DATE               := END_TIME_UTC;\r\n&gt;     L_BUCKET_COUNT    NUMBER             := BUCKET_COUNT;\r\n&gt;     L_BUCKET_INTERVAL NUMBER             := BUCKET_INTERVAL;\r\n&gt;     L_AWR_PERIOD      PRVT_AWRV_METADATA := AWR_PERIOD;\r\n&gt;     L_AWR_VIEW_PREFIX VARCHAR2(20)       := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_DBID NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     SYSMETRIC_RT CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       WITH \r\n&gt;         inst_data AS\r\n&gt;           (SELECT inst_id, bucket_id, metric_name, value\r\n&gt;              FROM TABLE(GV$(CURSOR(\r\n&gt;                     SELECT USERENV('INSTANCE') as inst_id,\r\n&gt;                            bucket_id, metric_name,\r\n&gt;                            SUM(value*bucket_ratio) as value\r\n&gt;                       FROM (\r\n&gt;                             SELECT USERENV('INSTANCE') as inst_id,\r\n&gt;                                    buckets.bucket_id,\r\n&gt;                                    met.metric_name,\r\n&gt;                                    met.value,\r\n&gt;                                    (LEAST(met.end_time_utc, \r\n&gt;                                           buckets.end_time_utc) - \r\n&gt;                                     GREATEST(met.begin_time_utc, \r\n&gt;                                              buckets.begin_time_utc)) \/ \r\n&gt;                                     (met.end_time_utc - met.begin_time_utc) \r\n&gt;                                       as bucket_ratio\r\n&gt;                              FROM ( \r\n&gt;                                    SELECT \/*+ no_merge *\/ USERENV('INSTANCE') \r\n&gt;                                                               as inst_id,\r\n&gt;                                           m.begin_time-tz.time_zone \r\n&gt;                                                               as begin_time_utc,\r\n&gt;                                           m.end_time-tz.time_zone \r\n&gt;                                                               as end_time_utc,\r\n&gt;                                           m.metric_name,\r\n&gt;                                           CASE \r\n&gt;                                             WHEN m.metric_name = \r\n&gt;                                                    'CPU Usage Per Sec' \r\n&gt;                                             THEN m.value\/100\r\n&gt;                                             ELSE m.value\r\n&gt;                                           END as value\r\n&gt;                                      FROM sys.v_$con_sysmetric_history m,\r\n&gt;                                           (SELECT ROUND(\r\n&gt;                                                     (cast(latest_sample_time \r\n&gt;                                                           as date) - \r\n&gt;                                                      cast(sys_extract_utc(\r\n&gt;                                                             systimestamp) \r\n&gt;                                                           as date))\r\n&gt;                                                     *900,0)\/900 as time_zone\r\n&gt;                                              FROM sys.v_$ash_info) tz\r\n&gt;                                     WHERE m.group_id = 18\r\n&gt;                                       AND m.metric_name IN \r\n&gt;                                             ('Average Active Sessions',\r\n&gt;                                              'CPU Usage Per Sec',\r\n&gt;                                              'Executions Per Sec',\r\n&gt;                                              'User Calls Per Sec', \r\n&gt;                                              'Total Parse Count Per Sec',\r\n&gt;                                              'User Commits Per Sec', \r\n&gt;                                              'User Rollbacks Per Sec', \r\n&gt;                                              'Session Count',\r\n&gt;                                              'Current Logons Count', \r\n&gt;                                              'Logons Per Sec',\r\n&gt;                                              'Logons Per Txn',\r\n&gt;                                              'Redo Generated Per Sec',\r\n&gt;                                              'Redo Generated Per Txn',\r\n&gt;                                              'User Transaction Per Sec',\r\n&gt;                                              'Network Traffic Volume Per Sec',\r\n&gt;                                              'Hard Parse Count Per Sec',\r\n&gt;                                              'Parse Failure Count Per Sec',\r\n&gt;                                              'Current Open Cursors Count')\r\n&gt;                                       AND m.begin_time-tz.time_zone &lt; \r\n&gt;                                           to_date(:b_end_time_utc, :date_fmt)\r\n&gt;                                       AND m.end_time-tz.time_zone &gt;= \r\n&gt;                                           to_date(:b_start_time_utc, :date_fmt)\r\n&gt;                                   ) met,    \r\n&gt;                                   ( \r\n&gt;                                    SELECT \/*+ no_merge *\/ level as bucket_id,\r\n&gt;                                           to_date(:b_start_time_utc,:date_fmt) +\r\n&gt;                                           ((level -1) * :p_bucket_interval \r\n&gt;                                            \/ 86400) as begin_time_utc,\r\n&gt;                                           to_date(:b_start_time_utc,:date_fmt) +\r\n&gt;                                           (level * :p_bucket_interval \/ 86400) \r\n&gt;                                                     as end_time_utc\r\n&gt;                                      FROM sys.v_$instance \r\n&gt;                                           -- note: DUAL not allowed inside GV$\r\n&gt;                                    CONNECT BY level &lt;= \r\n&gt;                                               (to_date(:b_end_time_utc,\r\n&gt;                                                        :date_fmt) - \r\n&gt;                                                to_date(:b_start_time_utc, \r\n&gt;                                                        :date_fmt)) \r\n&gt;                                               * 86400 \/ :p_bucket_interval\r\n&gt;                                   ) buckets\r\n&gt;                             WHERE buckets.begin_time_utc &lt; met.end_time_utc\r\n&gt;                               AND buckets.end_time_utc &gt; met.begin_time_utc\r\n&gt;                            )\r\n&gt;                     GROUP BY bucket_id, metric_name)))),\r\n&gt;         db_data AS \r\n&gt;           (SELECT bucket_id, metric_name, \r\n&gt;                   SUM(value) as value\r\n&gt;              FROM inst_data\r\n&gt;            GROUP BY bucket_id, metric_name\r\n&gt;           ),\r\n&gt;         final_data AS\r\n&gt;           (SELECT bucket_id, metric_name,\r\n&gt;                   value AS value\r\n&gt;              FROM db_data\r\n&gt;             WHERE value &gt; 0\r\n&gt;           ),\r\n&gt;         base_data AS\r\n&gt;           (SELECT * FROM final_data\r\n&gt;            ORDER BY bucket_id, metric_name)\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes('sysmetric' as \"name\"),\r\n&gt;                xmlelement(\"buckets\",\r\n&gt;                  xmlattributes(:p_bucket_interval as \"bucket_interval\",\r\n&gt;                                :p_bucket_count    as \"bucket_count\",\r\n&gt;                                :b_start_time_utc  as \"start_time_utc\",\r\n&gt;                                :b_end_time_utc    as \"end_time_utc\",\r\n&gt;                                :b_duration        as \"duration\"),\r\n&gt;                  xmlagg(xmlelement(\"bucket\",\r\n&gt;                           xmlattributes(bucket_id as \"bucket_id\"),\r\n&gt;                           xmlagg(\r\n&gt;                             xmlelement(\"metric\",\r\n&gt;                               xmlattributes(metric_name     as \"name\",\r\n&gt;                                             round(value, 2) as \"value\")\r\n&gt;              ))))))\r\n&gt;         from base_data\r\n&gt;        where value &gt; 0 \r\n&gt;        group by bucket_id]';\r\n&gt; \r\n&gt;     SYSMETRIC_RT_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var date_fmt          varchar2(32);\r\n&gt;       var b_start_time_utc  varchar2(32);\r\n&gt;       var b_end_time_utc    varchar2(32);\r\n&gt;       var p_bucket_interval number;\r\n&gt;       var p_bucket_count    number;\r\n&gt;       var b_duration        number;\r\n&gt;       begin \r\n&gt;         :date_fmt            := '#date_fmt#';\r\n&gt;         :b_start_time_utc    := '#b_start_time_utc#';\r\n&gt;         :b_end_time_utc      := '#b_end_time_utc#';\r\n&gt;         :p_bucket_interval   := #p_bucket_interval#;\r\n&gt;         :p_bucket_count      := #p_bucket_count#;\r\n&gt;         :b_duration          := #b_duration#;\r\n&gt;       end;\r\n&gt;       \/]';\r\n&gt; \r\n&gt;     \r\n&gt;     SYSMETRIC_AWR CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       WITH \r\n&gt;         snaps AS\r\n&gt;           (SELECT \/*+ no_merge *\/ s.instance_number, s.snap_id, \r\n&gt;                   CASE \r\n&gt;                     WHEN p.open_time_tz &gt; s.begin_interval_time_tz \r\n&gt;                     THEN CAST((p.open_time_tz at time zone 'UTC') AS DATE)\r\n&gt;                     ELSE CAST((s.begin_interval_time_tz at time zone 'UTC') \r\n&gt;                               AS DATE)\r\n&gt;                   END as begin_time_utc,\r\n&gt;                   CAST((s.end_interval_time_tz at time zone 'UTC') AS DATE) \r\n&gt;                       as end_time_utc,\r\n&gt;                   CASE \r\n&gt;                     WHEN p.open_time_tz &gt; s.begin_interval_time_tz \r\n&gt;                     THEN 0 \r\n&gt;                     ELSE 1 \r\n&gt;                   END as diff_logic\r\n&gt;              FROM awr_root_snapshot s, awr_root_pdb_in_snap p\r\n&gt;             WHERE s.dbid = :dbid\r\n&gt;               AND p.dbid = :dbid\r\n&gt;               AND s.instance_number = p.instance_number\r\n&gt;               AND s.snap_id = p.snap_id\r\n&gt;               AND s.snap_id &gt;= :begin_snap_id\r\n&gt;               AND s.snap_id &lt;= :end_snap_id\r\n&gt;               AND p.snap_id &gt;= :begin_snap_id\r\n&gt;               AND p.snap_id &lt;= :end_snap_id\r\n&gt;           ),\r\n&gt;         base_stats AS\r\n&gt;           (SELECT s.instance_number, s.snap_id,\r\n&gt;                   s.metric_name,\r\n&gt;                   CASE \r\n&gt;                     WHEN s.metric_name = \r\n&gt;                            'CPU Usage Per Sec' \r\n&gt;                     THEN s.average\/100\r\n&gt;                     ELSE s.average\r\n&gt;                   END as value\r\n&gt;              FROM awr_root_con_sysmetric_summ s\r\n&gt;             WHERE s.dbid = :dbid\r\n&gt;               AND s.snap_id &gt;= :begin_snap_id\r\n&gt;               AND s.snap_id &lt;= :end_snap_id\r\n&gt;               AND s.metric_name IN ('Average Active Sessions',\r\n&gt;                                     'CPU Usage Per Sec',\r\n&gt;                                     'Executions Per Sec',\r\n&gt;                                     'User Calls Per Sec', \r\n&gt;                                     'Total Parse Count Per Sec',\r\n&gt;                                     'User Commits Per Sec', \r\n&gt;                                     'User Rollbacks Per Sec', \r\n&gt;                                     'Session Count',\r\n&gt;                                     'Current Logons Count', \r\n&gt;                                     'Logons Per Sec',\r\n&gt;                                     'Logons Per Txn',\r\n&gt;                                     'Redo Generated Per Sec',\r\n&gt;                                     'Redo Generated Per Txn',\r\n&gt;                                     'User Transaction Per Sec',\r\n&gt;                                     'Network Traffic Volume Per Sec',\r\n&gt;                                     'Hard Parse Count Per Sec',\r\n&gt;                                     'Parse Failure Count Per Sec',\r\n&gt;                                     'Current Open Cursors Count')\r\n&gt;           ),\r\n&gt;         agg_stats AS\r\n&gt;           (SELECT \/*+ no_merge *\/ instance_number, snap_id, metric_name, \r\n&gt;                   SUM(value) as value\r\n&gt;              FROM base_stats\r\n&gt;             WHERE value &gt; 0\r\n&gt;            GROUP BY instance_number, snap_id, metric_name\r\n&gt;           ),\r\n&gt;         snap_stats AS \r\n&gt;           (SELECT a.instance_number, a.snap_id, a.metric_name, a.value,  \r\n&gt;                   s.begin_time_utc, s.end_time_utc\r\n&gt;              FROM agg_stats a, snaps s\r\n&gt;             WHERE a.instance_number = s.instance_number\r\n&gt;               AND a.snap_id = s.snap_id\r\n&gt;           ),\r\n&gt;         buckets AS\r\n&gt;           (SELECT level as bucket_id,\r\n&gt;                   to_date(:begin_time_utc, :date_format) + \r\n&gt;                   ((level -1) * :bucket_interval_secs\/86400) as begin_time_utc,\r\n&gt;                   to_date(:begin_time_utc, :date_format) + \r\n&gt;                   (level * :bucket_interval_secs\/86400) as end_time_utc\r\n&gt;              FROM sys.dual\r\n&gt;            CONNECT BY level &lt;= (to_date(:end_time_utc, :date_format) - \r\n&gt;                                 to_date(:begin_time_utc, :date_format)) \r\n&gt;                                * 86400 \/ :bucket_interval_secs\r\n&gt;           ),\r\n&gt;         db_stats AS\r\n&gt;           (SELECT bucket_id, metric_name, \r\n&gt;                   SUM(value * bucket_ratio) as value\r\n&gt;              FROM (\r\n&gt;                    SELECT b.bucket_id, s.metric_name, s.value,\r\n&gt;                           (LEAST(s.end_time_utc, b.end_time_utc) - \r\n&gt;                            GREATEST(s.begin_time_utc, b.begin_time_utc))\r\n&gt;                           \/ (b.end_time_utc - b.begin_time_utc) as bucket_ratio\r\n&gt;                      FROM snap_stats s, buckets b\r\n&gt;                     WHERE b.end_time_utc &gt; b.begin_time_utc\r\n&gt;                       AND s.begin_time_utc &lt; b.end_time_utc\r\n&gt;                       AND s.end_time_utc &gt; b.begin_time_utc\r\n&gt;                   )\r\n&gt;            GROUP BY bucket_id, metric_name\r\n&gt;           ),\r\n&gt;         base_data AS \r\n&gt;           (SELECT bucket_id, metric_name, value\r\n&gt;              FROM db_stats\r\n&gt;            ORDER BY 1, 2)\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes('sysmetric' as \"name\"),\r\n&gt;                xmlelement(\"buckets\",\r\n&gt;                  xmlattributes(:bucket_interval_secs as \"bucket_interval\",\r\n&gt;                                :bucket_count         as \"bucket_count\",\r\n&gt;                                :begin_time_utc       as \"start_time_utc\",\r\n&gt;                                :end_time_utc         as \"end_time_utc\",\r\n&gt;                                :duration             as \"duration\"),\r\n&gt;                  xmlagg(xmlelement(\"bucket\",\r\n&gt;                           xmlattributes(bucket_id as \"bucket_id\"),\r\n&gt;                           xmlagg(\r\n&gt;                             xmlelement(\"metric\",\r\n&gt;                               xmlattributes(metric_name     as \"name\",\r\n&gt;                                             round(value, 2) as \"value\")))))))\r\n&gt;         from base_data\r\n&gt;        where value &gt; 0 \r\n&gt;        group by bucket_id]';\r\n&gt; \r\n&gt;     SYSMETRIC_AWR_HEADER CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       var dbid                 number;\r\n&gt;       var begin_snap_id        number;\r\n&gt;       var end_snap_id          number;\r\n&gt;       var begin_time_utc       varchar2(4000);\r\n&gt;       var end_time_utc         varchar2(4000);\r\n&gt;       var date_format          varchar2(32);\r\n&gt;       var bucket_interval_secs number;\r\n&gt;       var bucket_count         number;\r\n&gt;       var duration             number;\r\n&gt; \r\n&gt;       begin\r\n&gt;         :dbid                 := #dbid#;\r\n&gt;         :begin_snap_id        := #begin_snap_id#;\r\n&gt;         :end_snap_id          := #end_snap_id#;\r\n&gt;         :begin_time_utc       := '#begin_time_utc#';\r\n&gt;         :end_time_utc         := '#end_time_utc#';\r\n&gt;         :date_format          := '#date_format#';\r\n&gt;         :bucket_interval_secs := #bucket_interval_secs#;\r\n&gt;         :bucket_count         := #bucket_count#;\r\n&gt;         :duration             := #duration#;\r\n&gt;     end;\r\n&gt;     \/]';\r\n&gt; \r\n&gt;   BEGIN\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME IS NULL) THEN\r\n&gt;       L_IS_REALTIME := 1;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     L_CON_DBID := SYS_CONTEXT('USERENV','CON_DBID');\r\n&gt; \r\n&gt;     IF (DBID IS NULL) THEN\r\n&gt;       L_DBID := L_CON_DBID;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (END_TIME_UTC IS NULL) THEN\r\n&gt;       L_END_TIME_UTC := CAST(SYS_EXTRACT_UTC(SYSTIMESTAMP) AS DATE);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (START_TIME_UTC IS NULL) THEN\r\n&gt;       \r\n&gt;       IF (L_IS_REALTIME = 1) THEN\r\n&gt;         L_START_TIME_UTC := L_END_TIME_UTC - 1\/24;\r\n&gt;       \r\n&gt;       ELSE\r\n&gt;         L_START_TIME_UTC := L_END_TIME_UTC - 1;\r\n&gt;       END IF;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (BUCKET_COUNT IS NULL) THEN\r\n&gt;       L_BUCKET_COUNT := 60;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (IS_REALTIME = 1) THEN\r\n&gt; \r\n&gt;       L_QRY := SYSMETRIC_RT;\r\n&gt;     \r\n&gt;       \r\n&gt;       IF (SHOW_SQL = 1) THEN\r\n&gt; \r\n&gt;         L_SQL := SYSMETRIC_RT_HEADER;\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := REPLACE(L_SQL, '#date_fmt#', DATE_FMT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_start_time_utc#',\r\n&gt;                                  TO_CHAR(L_START_TIME_UTC, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_end_time_utc#',\r\n&gt;                                  TO_CHAR(L_END_TIME_UTC, DATE_FMT));\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_count#', L_BUCKET_COUNT);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#p_bucket_interval#', L_BUCKET_INTERVAL);\r\n&gt;         L_SQL := REPLACE(L_SQL, '#b_duration#', \r\n&gt;                                  ROUND(L_END_TIME_UTC-L_START_TIME_UTC)*DTOS);\r\n&gt; \r\n&gt;         \r\n&gt;         L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;         \r\n&gt;         L_RESULT_XML := I_SHOW_SQL_XML('sysmetric', L_SQL);\r\n&gt; \r\n&gt;       ELSE\r\n&gt; \r\n&gt;         \r\n&gt;         EXECUTE IMMEDIATE L_QRY\r\n&gt;                      INTO L_RESULT_XML\r\n&gt;                     USING TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           \r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT), DATE_FMT,\r\n&gt;                           L_BUCKET_INTERVAL,\r\n&gt;                           \r\n&gt;                           L_BUCKET_INTERVAL, L_BUCKET_COUNT,\r\n&gt;                           TO_CHAR(L_START_TIME_UTC,DATE_FMT),\r\n&gt;                           TO_CHAR(L_END_TIME_UTC,DATE_FMT),\r\n&gt;                           ROUND((L_END_TIME_UTC - L_START_TIME_UTC)*DTOS);\r\n&gt;       END IF;\r\n&gt;     \r\n&gt;     \r\n&gt;     ELSE\r\n&gt;      IF (L_AWR_PERIOD IS NOT NULL) THEN\r\n&gt; \r\n&gt;         \r\n&gt;         L_QRY := SYSMETRIC_AWR;\r\n&gt; \r\n&gt;         IF (SYS_CONTEXT('USERENV','CON_ID') &gt; 2) THEN\r\n&gt;           L_AWR_VIEW_PREFIX := \r\n&gt;             DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(L_AWR_PERIOD.M_MIN_TIME);\r\n&gt; \r\n&gt;           DBMS_SQLTUNE_UTIL1.REPLACE_AWR_VIEW_PREFIX(L_QRY, L_AWR_VIEW_PREFIX);\r\n&gt;         END IF;\r\n&gt; \r\n&gt;         IF (SHOW_SQL = 1) THEN\r\n&gt;           \r\n&gt;           L_SQL := SYSMETRIC_AWR_HEADER;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := L_SQL || L_QRY;\r\n&gt; \r\n&gt;           \r\n&gt;           L_SQL := REPLACE(L_SQL, '#dbid#', L_AWR_PERIOD.M_DBID);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#begin_snap_id#', L_AWR_PERIOD.M_BEGIN_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#end_snap_id#', L_AWR_PERIOD.M_END_SNAP);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#begin_time_utc#', \r\n&gt;                                    TO_CHAR(L_START_TIME_UTC, DATE_FMT)); \r\n&gt;           L_SQL := REPLACE(L_SQL, '#end_time_utc#', \r\n&gt;                                    TO_CHAR(L_END_TIME_UTC, DATE_FMT));\r\n&gt;           L_SQL := REPLACE(L_SQL, '#date_format#', DATE_FMT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_count#', L_BUCKET_COUNT);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#bucket_interval_secs#', \r\n&gt;                                    L_BUCKET_INTERVAL);\r\n&gt;           L_SQL := REPLACE(L_SQL, '#duration#',\r\n&gt;                                    ROUND(INTERVAL_TO_SECOND(\r\n&gt;                                      L_END_TIME_UTC, L_START_TIME_UTC)));\r\n&gt; \r\n&gt;           L_RESULT_XML := I_SHOW_SQL_XML('sysmetric', L_SQL);\r\n&gt; \r\n&gt;         ELSE\r\n&gt;           EXECUTE IMMEDIATE L_QRY\r\n&gt;            INTO L_RESULT_XML\r\n&gt;           USING L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_DBID,\r\n&gt;                 L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&gt;                 L_AWR_PERIOD.M_END_SNAP,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 TO_CHAR(L_END_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_INTERVAL,\r\n&gt;                 L_BUCKET_COUNT,\r\n&gt;                 TO_CHAR(L_START_TIME_UTC, DATE_FMT),\r\n&gt;                 TO_CHAR(L_END_TIME_UTC, DATE_FMT),\r\n&gt;                 ROUND((L_END_TIME_UTC - L_START_TIME_UTC)*DTOS);\r\n&gt;         END IF;\r\n&gt; \r\n&gt;       END IF;\r\n&gt; \r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_RESULT_XML;\r\n&gt; \r\n&gt;   END GET_SYSMETRICS_XML;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_STORAGE_METRICS_XML(\r\n&gt;     SERVICE_TYPE IN VARCHAR2 DEFAULT NULL,\r\n&gt;     SHOW_SQL     IN NUMBER   DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt;     \r\n&gt;     L_QRY VARCHAR2(32767) := NULL;\r\n&gt;     L_SQL CLOB;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RESULT_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     STORAGE_SERVERLESS CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes(\r\n&gt;                  'storage'         as \"name\",\r\n&gt;                  max(c.max_size)   as \"total\",\r\n&gt;                  max(c.total_size) as \"used\",\r\n&gt;                  decode(max(c.max_size), 0, 0,\r\n&gt;                         (max(c.total_size)\/max(c.max_size))*100) \r\n&gt;                                    as \"utilization\"))\r\n&gt;         from sys.v_$containers c\r\n&gt;        where c.con_id &gt; 2\r\n&gt;          and c.name &lt;&gt; 'PAASSEED']';\r\n&gt; \r\n&gt;     \r\n&gt;     STORAGE_DEDICATED CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       select xmlelement(\"stattype\",\r\n&gt;                xmlattributes(\r\n&gt;                  'storage'         as \"name\",\r\n&gt;                  max(c.max_size)   as \"total\",\r\n&gt;                  max(c.total_size) as \"used\",\r\n&gt;                  decode(max(c.max_size), 0, 0,\r\n&gt;                         (max(c.total_size)\/max(c.max_size))*100) \r\n&gt;                                    as \"utilization\"),\r\n&gt;                xmlelement(\"tablespaces\",\r\n&gt;                  xmlagg(\r\n&gt;                    xmlelement(\"tbs\",\r\n&gt;                      xmlattributes(\r\n&gt;                        m.tablespace_name as \"name\",\r\n&gt;                        t.contents        as \"type\",\r\n&gt;                        ROUND((m.tablespace_size)*t.block_size, 3) total_space,\r\n&gt;                        ROUND((m.used_space)*t.block_size, 3) used_space,\r\n&gt;                        ROUND(m.used_percent, 2) used_pct)))))\r\n&gt;         from cdb_tablespace_usage_metrics m, \r\n&gt;              cdb_tablespaces t,\r\n&gt;              sys.v_$containers c\r\n&gt;        where t.tablespace_name = m.tablespace_name\r\n&gt;          and c.con_id &gt; 2\r\n&gt;          and c.name &lt;&gt; 'PAASSEED'\r\n&gt;          and m.con_id = c.con_id\r\n&gt;          and t.con_id = m.con_id]';\r\n&gt; \r\n&gt;   BEGIN\r\n&gt; \r\n&gt;     IF (SERVICE_TYPE IN (DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_D, \r\n&gt;                          DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_D)) THEN\r\n&gt;       L_QRY := STORAGE_DEDICATED;\r\n&gt;     ELSIF (SERVICE_TYPE IN (DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_S, \r\n&gt;                             DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_S)) THEN\r\n&gt;       L_QRY := STORAGE_SERVERLESS;\r\n&gt;     ELSE\r\n&gt;       L_QRY := STORAGE_DEDICATED;\r\n&gt;     END IF;\r\n&gt;    \r\n&gt;     \r\n&gt;     IF (SHOW_SQL = 1) THEN\r\n&gt; \r\n&gt;       \r\n&gt;       L_SQL := L_QRY;\r\n&gt; \r\n&gt;       \r\n&gt;       L_RESULT_XML := I_SHOW_SQL_XML('storage', L_SQL);\r\n&gt; \r\n&gt;     ELSE\r\n&gt; \r\n&gt;       \r\n&gt;       EXECUTE IMMEDIATE L_QRY\r\n&gt;                    INTO L_RESULT_XML;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_RESULT_XML;\r\n&gt; \r\n&gt;   END GET_STORAGE_METRICS_XML;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION GET_SESSION_METRICS_XML(\r\n&gt;     SHOW_SQL        IN NUMBER   DEFAULT NULL)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt;   \r\n&gt;     \r\n&gt;     L_SQL CLOB;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RESULT_XML        XMLTYPE := NULL;\r\n&gt;     L_FAILED_LOGONS_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     NUM_CONNECTIONS_RT CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       SELECT xmlelement(\"stattype\",\r\n&gt;                xmlattributes('session' as \"name\"),\r\n&gt;                xmlelement(\"num_connections\", count(*)))\r\n&gt;         FROM sys.gv_$session s\r\n&gt;        WHERE UPPER(s.service_name) not in \r\n&gt;              (SELECT p.name FROM sys.v_$pdbs p WHERE p.con_id=s.con_id) \r\n&gt;          AND UPPER(s.service_name) not in ('SYS$BACKGROUND','SYS$USERS') \r\n&gt;          AND s.type='USER'\r\n&gt;          AND s.sid not in \r\n&gt;              (SELECT ps.sid FROM sys.gv_$px_session ps)]';\r\n&gt; \r\n&gt;     \r\n&gt;     NUM_FAILED_LOGONS_RT CONSTANT VARCHAR2(32767) := q'[\r\n&gt;       SELECT xmlelement(\"failed_logons\", count(*))\r\n&gt;         FROM cdb_unified_audit_trail\r\n&gt;        WHERE action_name = 'LOGON'\r\n&gt;          AND return_code != 0]';\r\n&gt; \r\n&gt;   BEGIN\r\n&gt;      \r\n&gt;     \r\n&gt;     IF (SHOW_SQL = 1) THEN\r\n&gt; \r\n&gt;       L_SQL := NUM_CONNECTIONS_RT || NUM_FAILED_LOGONS_RT;\r\n&gt; \r\n&gt;       \r\n&gt;       L_RESULT_XML := I_SHOW_SQL_XML('session', L_SQL);\r\n&gt; \r\n&gt;     ELSE\r\n&gt; \r\n&gt;       \r\n&gt;       EXECUTE IMMEDIATE NUM_CONNECTIONS_RT\r\n&gt;                    INTO L_RESULT_XML;\r\n&gt; \r\n&gt;       EXECUTE IMMEDIATE NUM_FAILED_LOGONS_RT\r\n&gt;                    INTO L_FAILED_LOGONS_XML;\r\n&gt; \r\n&gt;       IF (L_FAILED_LOGONS_XML IS NOT NULL) THEN\r\n&gt;         L_RESULT_XML := L_RESULT_XML.APPENDCHILDXML(XML_ROOT, \r\n&gt;                                                     L_FAILED_LOGONS_XML);\r\n&gt;       END IF;\r\n&gt; \r\n&gt;     END IF;\r\n&gt; \r\n&gt;     RETURN L_RESULT_XML;\r\n&gt; \r\n&gt;   END GET_SESSION_METRICS_XML;\r\n&gt; \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n18671,18700c20466,20643\r\n&lt;   ADW_RMMETRICS_AWR_SQL_HEADER   CONSTANT VARCHAR2(32767) := q'[\r\n&lt;       var is_awr            number;\r\n&lt;       var p_contTab         prvt_awrv_instTab;\r\n&lt;       var bucket_map        prvt_awrv_mapTab;\r\n&lt;       var cpu_count         number;\r\n&lt;       var m_dbid            number;\r\n&lt;       var m_begin_snap      number;\r\n&lt;       var m_end_snap        number;\r\n&lt;       var l_con_dbid        number;\r\n&lt;       var p_bucket_interval number;\r\n&lt;       var p_bucket_count    number;\r\n&lt;       var b_min_time        varchar2(4000);\r\n&lt;       var b_max_time        varchar2(4000);\r\n&lt;       var b_duration        number;\r\n&lt;       begin\r\n&lt;         :is_awr            := #is_awr#;\r\n&lt;         :p_contTab         := #p_contTab#;\r\n&lt;         :bucket_map        := #bucket_map#;\r\n&lt;         :cpu_count         := #cpu_count#;\r\n&lt;         :m_dbid            := #m_dbid#;\r\n&lt;         :m_begin_snap      := #m_begin_snap#;\r\n&lt;         :m_end_snap        := #m_end_snap#;\r\n&lt;         :l_con_dbid        := #l_con_dbid#;\r\n&lt;         :p_bucket_interval := #p_bucket_interval#;\r\n&lt;         :p_bucket_count    := #p_bucket_count#;\r\n&lt;         :b_min_time        := '#b_min_time#';\r\n&lt;         :b_max_time        := '#b_max_time#';\r\n&lt;         :b_duration        := #b_duration#;\r\n&lt;       end;\r\n&lt;       \/]';\r\n---\r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   \r\n&gt;   FUNCTION REPORT_WORKLOAD(\r\n&gt;     SERVICE_TYPE   IN VARCHAR2 DEFAULT NULL,\r\n&gt;     IS_REALTIME    IN NUMBER   DEFAULT 1,\r\n&gt;     DBID           IN NUMBER   DEFAULT NULL,\r\n&gt;     START_TIME     IN DATE     DEFAULT NULL,\r\n&gt;     END_TIME       IN DATE     DEFAULT NULL,\r\n&gt;     REPORT_LEVEL   IN VARCHAR2 DEFAULT NULL,\r\n&gt;     SHOW_SQL       IN NUMBER   DEFAULT 0)\r\n&gt;   RETURN XMLTYPE\r\n&gt;   IS\r\n&gt;     \r\n&gt;     L_ELAPSED NUMBER;\r\n&gt;     L_CPU     NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     L_REF_PARAMS DBMS_REPORT.REF_STRING_IDSPEC;\r\n&gt; \r\n&gt;     \r\n&gt;     L_ORIG_ENV DBMS_REPORT.FORMAT_PARAM_VALUES;\r\n&gt;     L_SET_ENV  BOOLEAN;\r\n&gt; \r\n&gt;     \r\n&gt;     L_REPORT_XML          XMLTYPE := NULL;\r\n&gt;     L_RM_METRICS_XML      XMLTYPE := NULL;\r\n&gt;     L_SYS_METRICS_XML     XMLTYPE := NULL;\r\n&gt;     L_SQL_TIME_XML        XMLTYPE := NULL;\r\n&gt;     L_WAIT_TIME_XML       XMLTYPE := NULL;\r\n&gt;     L_STORAGE_METRICS_XML XMLTYPE := NULL;\r\n&gt;     L_SESSION_METRICS_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_SERVICE_TYPE   VARCHAR2(32767) := SERVICE_TYPE;\r\n&gt;     L_IS_REALTIME    NUMBER          := IS_REALTIME;\r\n&gt;     L_DBID           NUMBER          := DBID;\r\n&gt;     L_START_TIME     DATE            := START_TIME;\r\n&gt;     L_END_TIME       DATE            := END_TIME;\r\n&gt;     L_REPORT_LEVEL   VARCHAR2(32767) := REPORT_LEVEL;\r\n&gt;     L_TZ             VARCHAR2(10)    := NULL;\r\n&gt;     L_START_TIME_UTC DATE            := NULL;\r\n&gt;     L_END_TIME_UTC   DATE            := NULL;\r\n&gt;     L_BEGIN_SNAP_ID  NUMBER          := NULL;\r\n&gt;     L_END_SNAP_ID    NUMBER          := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_BUCKET_COUNT    NUMBER;\r\n&gt;     L_BUCKET_INTERVAL NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     L_AWR_PERIOD PRVT_AWRV_METADATA;\r\n&gt; \r\n&gt;     L_SNAP_QRY        VARCHAR2(32767) := NULL;\r\n&gt;     L_AWR_VIEW_PREFIX VARCHAR2(20)    := DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT;\r\n&gt; \r\n&gt;     \r\n&gt;     L_ERRMSG    VARCHAR2(32767);\r\n&gt;     L_ERROR_XML XMLTYPE := NULL;\r\n&gt; \r\n&gt;     \r\n&gt;     L_RSRCMGR_DETAIL   NUMBER;\r\n&gt;     L_SYSMETRIC_DETAIL NUMBER;\r\n&gt;     L_SQL_TIME_DETAIL  NUMBER;\r\n&gt;     L_WAIT_TIME_DETAIL NUMBER;\r\n&gt;     L_STORAGE_DETAIL   NUMBER;\r\n&gt;     L_SESSION_DETAIL   NUMBER;\r\n&gt; \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     FUNCTION I_PARSE_REPORT_LEVEL(\r\n&gt;       P_REPORT_LEVEL     IN  VARCHAR2,\r\n&gt;       P_RSRCMGR_DETAIL   OUT NUMBER,\r\n&gt;       P_SYSMETRIC_DETAIL OUT NUMBER,\r\n&gt;       P_SQL_TIME_DETAIL  OUT NUMBER,\r\n&gt;       P_WAIT_TIME_DETAIL OUT NUMBER,\r\n&gt;       P_STORAGE_DETAIL   OUT NUMBER,\r\n&gt;       P_SESSION_DETAIL   OUT NUMBER)\r\n&gt;     RETURN BOOLEAN\r\n&gt;     IS\r\n&gt;       L_REPORT_LEVEL VARCHAR2(32767) := \r\n&gt;         REPLACE(LOWER(P_REPORT_LEVEL), ' ', NULL);\r\n&gt;       L_POS          NUMBER := 1;\r\n&gt;       L_SETVAL       NUMBER;\r\n&gt;     BEGIN\r\n&gt;       \r\n&gt;       P_RSRCMGR_DETAIL   := 1; \r\n&gt;       P_SYSMETRIC_DETAIL := 1; \r\n&gt;       P_SQL_TIME_DETAIL  := 1; \r\n&gt;       P_WAIT_TIME_DETAIL := 1; \r\n&gt;       P_STORAGE_DETAIL   := 1; \r\n&gt;       P_SESSION_DETAIL   := 1; \r\n&gt; \r\n&gt;        \r\n&gt;       IF (L_REPORT_LEVEL IS NULL) THEN\r\n&gt;         RETURN TRUE;\r\n&gt;       END IF;\r\n&gt; \r\n&gt;       \r\n&gt;       L_POS := 1;\r\n&gt; \r\n&gt;       \r\n&gt;       IF (SUBSTR(L_REPORT_LEVEL, L_POS, 3) = 'all') THEN\r\n&gt;         \r\n&gt;         \r\n&gt;         L_POS := L_POS + 3;\r\n&gt;       \r\n&gt;       ELSIF (SUBSTR(L_REPORT_LEVEL, L_POS, 4) = 'none') THEN\r\n&gt;         P_RSRCMGR_DETAIL := 0;\r\n&gt;         P_SYSMETRIC_DETAIL := 0;\r\n&gt;         P_SQL_TIME_DETAIL := 0;\r\n&gt;         P_WAIT_TIME_DETAIL := 0;\r\n&gt;         P_STORAGE_DETAIL := 0;\r\n&gt;         P_SESSION_DETAIL := 0;\r\n&gt;         L_POS := L_POS + 4;\r\n&gt;       END IF;\r\n&gt; \r\n&gt;       \r\n&gt;       WHILE (L_POS &lt; LENGTH(L_REPORT_LEVEL))\r\n&gt;       LOOP\r\n&gt;         IF (SUBSTR(L_REPORT_LEVEL, L_POS, 1) = '-') THEN\r\n&gt;           L_SETVAL   := 0;\r\n&gt;           L_POS      := L_POS + 1;\r\n&gt;         ELSE\r\n&gt;           L_SETVAL   := 1;\r\n&gt;           IF (SUBSTR(L_REPORT_LEVEL, L_POS, 1) = '+') THEN\r\n&gt;             L_POS := L_POS + 1;\r\n&gt;           END IF;\r\n&gt;         END IF;\r\n&gt; \r\n&gt;         CASE\r\n&gt;           \r\n&gt;           WHEN (SUBSTR(L_REPORT_LEVEL, L_POS, 7) = 'rsrcmgr') THEN\r\n&gt;             P_RSRCMGR_DETAIL := L_SETVAL;\r\n&gt;             L_POS := L_POS + 7;\r\n&gt; \r\n&gt;           \r\n&gt;           WHEN (SUBSTR(L_REPORT_LEVEL, L_POS, 9) = 'sysmetric') THEN\r\n&gt;             P_SYSMETRIC_DETAIL := L_SETVAL;\r\n&gt;             L_POS := L_POS + 9;\r\n&gt; \r\n&gt;           \r\n&gt;           WHEN (SUBSTR(L_REPORT_LEVEL, L_POS, 3) = 'sql') THEN\r\n&gt;             P_SQL_TIME_DETAIL := L_SETVAL;\r\n&gt;             L_POS := L_POS + 3;\r\n&gt; \r\n&gt;           \r\n&gt;           WHEN (SUBSTR(L_REPORT_LEVEL, L_POS, 4) = 'wait') THEN\r\n&gt;             P_WAIT_TIME_DETAIL := L_SETVAL;\r\n&gt;             L_POS := L_POS + 4;\r\n&gt; \r\n&gt;           \r\n&gt;           WHEN (SUBSTR(L_REPORT_LEVEL, L_POS, 7) = 'storage') THEN\r\n&gt;             P_STORAGE_DETAIL := L_SETVAL;\r\n&gt;             L_POS := L_POS + 7;\r\n&gt; \r\n&gt;           \r\n&gt;           WHEN (SUBSTR(L_REPORT_LEVEL, L_POS, 7) = 'session') THEN\r\n&gt;             P_SESSION_DETAIL := L_SETVAL;\r\n&gt;             L_POS := L_POS + 7;\r\n&gt;             \r\n&gt;           ELSE\r\n&gt;             \r\n&gt;             RETURN FALSE;\r\n&gt;         END CASE;\r\n&gt;       END LOOP;\r\n18701a20645,20648\r\n&gt;       \r\n&gt;       RETURN TRUE;\r\n&gt;       \r\n&gt;     END I_PARSE_REPORT_LEVEL;\r\n18714a20662,20673\r\n&gt;     IF (SERVICE_TYPE IS NOT NULL) THEN\r\n&gt;       L_REF_PARAMS('service_type') := SERVICE_TYPE;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (IS_REALTIME IS NOT NULL) THEN\r\n&gt;       L_REF_PARAMS('is_realtime') := IS_REALTIME;\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (DBID IS NOT NULL) THEN\r\n&gt;       L_REF_PARAMS('dbid') := DBID;\r\n&gt;     END IF;\r\n&gt; \r\n18725,18730c20684,20685\r\n&lt;     IF (DBID IS NOT NULL) THEN\r\n&lt;       L_REF_PARAMS('dbid') := TO_CHAR(DBID);\r\n&lt;     END IF;\r\n&lt; \r\n&lt;     IF (INST_ID IS NOT NULL) THEN\r\n&lt;       L_REF_PARAMS('inst_id') := TO_CHAR(INST_ID);\r\n---\r\n&gt;     IF (REPORT_LEVEL IS NOT NULL) THEN\r\n&gt;       L_REF_PARAMS('report_level') := REPORT_LEVEL;\r\n18733,18734d20687\r\n&lt;     L_REF_PARAMS('is_realtime') := 0;\r\n&lt; \r\n18737a20691,20697\r\n&gt;    \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     IF (IS_REALTIME IS NULL) THEN\r\n&gt;       L_IS_REALTIME := 1;\r\n&gt;     END IF;\r\n18739c20699,20702\r\n&lt;     L_CON_DBID := SYS_CONTEXT('USERENV','CON_DBID');\r\n---\r\n&gt;     \r\n&gt;     IF (DBID IS NULL) THEN\r\n&gt;       L_DBID := SYS_CONTEXT('USERENV','CON_DBID');\r\n&gt;     END IF;\r\n18742,18743c20705,20706\r\n&lt;     IF (L_DBID IS NULL) THEN\r\n&lt;       L_DBID := L_CON_DBID;\r\n---\r\n&gt;     IF (REPORT_LEVEL IS NULL) THEN\r\n&gt;       L_REPORT_LEVEL := 'all';\r\n18753c20716,20722\r\n&lt;       L_START_TIME := L_END_TIME - 1;\r\n---\r\n&gt;       \r\n&gt;       IF (L_IS_REALTIME = 1) THEN\r\n&gt;         L_START_TIME := L_END_TIME - 1\/24;\r\n&gt;       \r\n&gt;       ELSE\r\n&gt;         L_START_TIME := L_END_TIME - 1;\r\n&gt;       END IF;\r\n18757,18761c20726,20731\r\n&lt;     \r\n&lt;     L_AWR_PERIOD := PRVT_AWRV_METADATA(\r\n&lt;                         P_START_TIME =&gt; L_START_TIME, \r\n&lt;                         P_END_TIME =&gt; L_END_TIME,\r\n&lt;                         P_DBID =&gt; L_DBID);\r\n---\r\n&gt;     L_TZ := DBMS_SQLTUNE_UTIL2.GET_TZ_OFFSET();\r\n&gt;     L_END_TIME_UTC := CAST(SYS_EXTRACT_UTC(\r\n&gt;                             TO_TIMESTAMP_TZ(\r\n&gt;                               TO_CHAR(L_END_TIME, 'yyyy-mm-dd hh24:mi:ss') \r\n&gt;                               || L_TZ,\r\n&gt;                               'yyyy-mm-dd hh24:mi:ssTZH:TZM')) AS DATE);\r\n18763,18766d20732\r\n&lt;     \r\n&lt;     IF (L_AWR_PERIOD.M_BEGIN_SNAP IS NULL OR\r\n&lt;         L_AWR_PERIOD.M_BEGIN_SNAP = L_AWR_PERIOD.M_END_SNAP) \r\n&lt;     THEN\r\n18768,18776c20734,20739\r\n&lt;       L_ERRMSG := '[' || L_AWR_PERIOD.M_DBID || ']' ||\r\n&lt;                   '[' || L_AWR_PERIOD.M_INST_ID_LOW || '.' ||\r\n&lt;                          L_AWR_PERIOD.M_INST_ID_HIGH || ']' ||\r\n&lt;                   '[' || L_AWR_PERIOD.M_BEGIN_SNAP || '.' || \r\n&lt;                          L_AWR_PERIOD.M_END_SNAP || ']' ||\r\n&lt;                   '[' || TO_CHAR(L_AWR_PERIOD.M_MIN_TIME, \r\n&lt;                                  DBMS_REPORT.DATE_FMT) || '-' ||\r\n&lt;                          TO_CHAR(L_AWR_PERIOD.M_MAX_TIME, \r\n&lt;                                  DBMS_REPORT.DATE_FMT) || ']';\r\n---\r\n&gt;     \r\n&gt;     L_START_TIME_UTC := CAST(SYS_EXTRACT_UTC(\r\n&gt;                               TO_TIMESTAMP_TZ(\r\n&gt;                                 TO_CHAR(L_START_TIME, 'yyyy-mm-dd hh24:mi:ss') \r\n&gt;                                 || L_TZ,\r\n&gt;                                 'yyyy-mm-dd hh24:mi:ssTZH:TZM')) AS DATE);\r\n18777a20741,20746\r\n&gt;     \r\n&gt;     IF (L_IS_REALTIME = 1) THEN\r\n&gt;       CALCULATE_BUCKETS(L_BUCKET_COUNT, L_BUCKET_INTERVAL, \r\n&gt;                         (L_END_TIME - L_START_TIME)*DTOS,\r\n&gt;                         G_METRIC_SOURCE_HISTORY);\r\n&gt;     ELSE\r\n18779c20748,20750\r\n&lt;       L_AWR_PERIOD := NULL;\r\n---\r\n&gt;       CALCULATE_BUCKETS(L_BUCKET_COUNT, L_BUCKET_INTERVAL, \r\n&gt;                         (L_END_TIME - L_START_TIME)*DTOS,\r\n&gt;                         NULL);\r\n18782,18785c20753,20760\r\n&lt;       L_ERROR_XML := ERROR_XML('report_adw_workload_historical',\r\n&lt;                                -20800,\r\n&lt;                                'Insufficient awr data', \r\n&lt;                                L_ERRMSG);\r\n---\r\n&gt;       L_SNAP_QRY := q'[\r\n&gt;         SELECT MIN(snap_id)-1, MAX(snap_id)\r\n&gt;           FROM awr_root_snapshot\r\n&gt;          WHERE dbid = :l_dbid\r\n&gt;            AND cast((end_interval_time_tz at time zone 'UTC') as DATE)\r\n&gt;                 &gt; to_date(:l_start_time_utc, :date_fmt)\r\n&gt;            AND cast((begin_interval_time_tz at time zone 'UTC') as DATE)\r\n&gt;                 &lt; to_date(:l_end_time_utc, :date_fmt)]';\r\n18787,18792c20762,20764\r\n&lt;     ELSE\r\n&lt; \r\n&lt;       \r\n&lt;       L_BUCKET_CALC_MAX_COUNT := 128;\r\n&lt;       CREATE_BUCKET_SNAP_MAP(L_AWR_PERIOD, L_BUCKET_MAP, \r\n&lt;                              L_BUCKET_CALC_MAX_COUNT, L_BUCKET_CALC_INTERVAL);\r\n---\r\n&gt;       IF (SYS_CONTEXT('USERENV','CON_ID') &gt; 2) THEN\r\n&gt;         L_AWR_VIEW_PREFIX := \r\n&gt;           DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(L_START_TIME);\r\n18794c20766,20768\r\n&lt;       L_CON_ID := SYS_CONTEXT('USERENV','CON_ID');\r\n---\r\n&gt;         DBMS_SQLTUNE_UTIL1.REPLACE_AWR_VIEW_PREFIX(L_SNAP_QRY, \r\n&gt;                                                    L_AWR_VIEW_PREFIX);\r\n&gt;       END IF;\r\n18796c20770,20772\r\n&lt;       CREATE_CONSUMER_GROUP_MAP(L_CON_ID, L_AWR_PERIOD, L_CG_MAP);\r\n---\r\n&gt;       IF (L_AWR_VIEW_PREFIX = DBMS_SQLTUNE_UTIL1.AWR_VIEW_ROOT) THEN\r\n&gt;         L_DBID := SYS_CONTEXT('USERENV','DBID');\r\n&gt;       END IF;\r\n18798d20773\r\n&lt;       \r\n18800,18803c20775,20779\r\n&lt;         SELECT VALUE\r\n&lt;           INTO L_CPU_COUNT   \r\n&lt;           FROM V$SYSTEM_PARAMETER2                 \r\n&lt;          WHERE NAME = 'cpu_count';\r\n---\r\n&gt;         EXECUTE IMMEDIATE L_SNAP_QRY\r\n&gt;         INTO L_BEGIN_SNAP_ID, L_END_SNAP_ID\r\n&gt;         USING L_DBID, \r\n&gt;               TO_CHAR(L_START_TIME_UTC, DATE_FMT), DATE_FMT,\r\n&gt;               TO_CHAR(L_END_TIME_UTC, DATE_FMT), DATE_FMT;\r\n18805,18806c20781,20783\r\n&lt;         WHEN OTHERS THEN\r\n&lt;           L_CPU_COUNT := NULL;\r\n---\r\n&gt;         WHEN NO_DATA_FOUND THEN\r\n&gt;           L_BEGIN_SNAP_ID := NULL;\r\n&gt;           L_END_SNAP_ID := NULL;\r\n18810,18811d20786\r\n&lt;       L_QUERY := ADW_RMMETRICS_COMMON;\r\n&lt;    \r\n18813,18818c20788,20795\r\n&lt;       L_QUERY := REPLACE(L_QUERY,'#GENERATE_BUCKETS_TAG#', \r\n&lt;                                   GENERATE_BUCKETS_TAG2);\r\n&lt;       L_QUERY := REPLACE(L_QUERY,'#GENERATE_BUCKETID_TAG#', \r\n&lt;                                   GENERATE_BUCKETID_TAG);\r\n&lt;       L_QUERY := REPLACE(L_QUERY,'#GENERATE_METRICS_BUCKETID#', \r\n&lt;                                   ADW_RMMETRICS_AWR);\r\n---\r\n&gt;       L_AWR_PERIOD := PRVT_AWRV_METADATA(P_START_TIME =&gt; L_START_TIME, \r\n&gt;                                          P_END_TIME =&gt; L_END_TIME,\r\n&gt;                                          P_DBID =&gt; L_DBID);\r\n&gt; \r\n&gt;       L_AWR_PERIOD.M_BEGIN_SNAP := L_BEGIN_SNAP_ID;\r\n&gt;       L_AWR_PERIOD.M_END_SNAP := L_END_SNAP_ID;\r\n&gt;       L_AWR_PERIOD.M_MIN_TIME := L_START_TIME;\r\n&gt;       L_AWR_PERIOD.M_MAX_TIME := L_END_TIME;\r\n18820,18822c20797,20800\r\n&lt;       IF (SHOW_SQL = 1) THEN\r\n&lt;         \r\n&lt;         L_REPORT_SQL := ADW_RMMETRICS_AWR_SQL_HEADER;\r\n---\r\n&gt;       \r\n&gt;       IF (L_AWR_PERIOD.M_BEGIN_SNAP IS NULL OR\r\n&gt;           L_AWR_PERIOD.M_BEGIN_SNAP = L_AWR_PERIOD.M_END_SNAP)\r\n&gt;       THEN\r\n18823a20802,20810\r\n&gt;         L_ERRMSG := '[' || L_AWR_PERIOD.M_DBID || ']' ||\r\n&gt;                     '[' || L_AWR_PERIOD.M_INST_ID_LOW || '.' ||\r\n&gt;                            L_AWR_PERIOD.M_INST_ID_HIGH || ']' ||\r\n&gt;                     '[' || L_AWR_PERIOD.M_BEGIN_SNAP || '.' || \r\n&gt;                            L_AWR_PERIOD.M_END_SNAP || ']' ||\r\n&gt;                     '[' || TO_CHAR(L_AWR_PERIOD.M_MIN_TIME, \r\n&gt;                                    DBMS_REPORT.DATE_FMT) || '-' ||\r\n&gt;                            TO_CHAR(L_AWR_PERIOD.M_MAX_TIME, \r\n&gt;                                    DBMS_REPORT.DATE_FMT) || ']';\r\n18825c20812\r\n&lt;         L_REPORT_SQL := L_REPORT_SQL || L_QUERY;\r\n---\r\n&gt;         L_AWR_PERIOD := NULL;\r\n18828,18852c20815,20818\r\n&lt;         L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#is_awr#', 1);\r\n&lt;         L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#p_contTab#', '');\r\n&lt;         L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#bucket_map#', '');\r\n&lt;         L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#cpu_count#', L_CPU_COUNT);\r\n&lt;         L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#m_dbid#', L_AWR_PERIOD.M_DBID);\r\n&lt;         L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#m_begin_snap#', \r\n&lt;                                               L_AWR_PERIOD.M_BEGIN_SNAP);\r\n&lt;         L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#m_end_snap#', \r\n&lt;                                               L_AWR_PERIOD.M_END_SNAP);\r\n&lt;         L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#l_con_dbid#', L_CON_DBID);\r\n&lt;         L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#p_bucket_count#', \r\n&lt;                                               L_BUCKET_CALC_MAX_COUNT);\r\n&lt;         L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#p_bucket_interval#', \r\n&lt;                                               L_BUCKET_CALC_INTERVAL);\r\n&lt;         L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#b_min_time#', \r\n&lt;                                 TO_CHAR(L_AWR_PERIOD.M_MIN_TIME, DATE_FMT));\r\n&lt;         L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#b_max_time#', \r\n&lt;                                 TO_CHAR(L_AWR_PERIOD.M_MAX_TIME, DATE_FMT));\r\n&lt;         L_REPORT_SQL := REPLACE(L_REPORT_SQL, '#b_duration#',\r\n&lt;                                 ROUND(INTERVAL_TO_SECOND(\r\n&lt;                                   L_AWR_PERIOD.M_MAX_TIME, \r\n&lt;                                   L_AWR_PERIOD.M_MIN_TIME)));\r\n&lt; \r\n&lt;         L_RMMETRICS_XML := I_SHOW_SQL_XML('rsrcmgrmetric', L_REPORT_SQL);\r\n&lt; \r\n---\r\n&gt;         L_ERROR_XML := ERROR_XML('report_workload',\r\n&gt;                                  -20800,\r\n&gt;                                  'Insufficient awr data', \r\n&gt;                                  L_ERRMSG);\r\n18855,18872c20821,20822\r\n&lt;         EXECUTE IMMEDIATE L_QUERY\r\n&lt;          INTO L_RMMETRICS_XML\r\n&lt;         USING 1, \r\n&lt;               L_CG_MAP, \r\n&lt;               L_BUCKET_MAP,\r\n&lt;               L_CPU_COUNT, L_CPU_COUNT, L_CPU_COUNT,\r\n&lt;               L_AWR_PERIOD.M_DBID,\r\n&lt;               L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&lt;               L_AWR_PERIOD.M_END_SNAP,\r\n&lt;               L_CON_DBID,\r\n&lt;               L_AWR_PERIOD.M_BEGIN_SNAP,\r\n&lt;               L_BUCKET_CALC_INTERVAL,\r\n&lt;               L_BUCKET_CALC_MAX_COUNT,\r\n&lt;               TO_CHAR(L_AWR_PERIOD.M_MIN_TIME, DATE_FMT),\r\n&lt;               TO_CHAR(L_AWR_PERIOD.M_MAX_TIME, DATE_FMT),\r\n&lt;               ROUND(\r\n&lt;                 INTERVAL_TO_SECOND(\r\n&lt;                   L_AWR_PERIOD.M_MAX_TIME, L_AWR_PERIOD.M_MIN_TIME));\r\n---\r\n&gt;         L_ERRMSG := NULL;\r\n&gt;         L_ERROR_XML := NULL;\r\n18878a20829,20901\r\n&gt;     IF (NOT I_PARSE_REPORT_LEVEL(L_REPORT_LEVEL, L_RSRCMGR_DETAIL, \r\n&gt;                                  L_SYSMETRIC_DETAIL, L_SQL_TIME_DETAIL,\r\n&gt;                                  L_WAIT_TIME_DETAIL, L_STORAGE_DETAIL,\r\n&gt;                                  L_SESSION_DETAIL)) THEN\r\n&gt;       SYS.DBMS_SYS_ERROR.RAISE_SYSTEM_ERROR(SYS_ERR_PARAM, 'report_level');\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (L_RSRCMGR_DETAIL = 1) THEN\r\n&gt;       L_RM_METRICS_XML := GET_RMMETRICS_XML(L_IS_REALTIME, \r\n&gt;                                             L_DBID,\r\n&gt;                                             L_START_TIME,\r\n&gt;                                             L_END_TIME,\r\n&gt;                                             L_BUCKET_COUNT,\r\n&gt;                                             L_BUCKET_INTERVAL,\r\n&gt;                                             L_AWR_PERIOD,\r\n&gt;                                             SHOW_SQL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (L_SYSMETRIC_DETAIL = 1) THEN        \r\n&gt;         L_SYS_METRICS_XML := GET_SYSMETRICS_XML(L_IS_REALTIME,\r\n&gt;                                                 L_DBID,\r\n&gt;                                                 L_START_TIME_UTC,\r\n&gt;                                                 L_END_TIME_UTC,\r\n&gt;                                                 L_BUCKET_COUNT,\r\n&gt;                                                 L_BUCKET_INTERVAL,\r\n&gt;                                                 L_AWR_PERIOD,\r\n&gt;                                                 SHOW_SQL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     IF (L_SQL_TIME_DETAIL = 1) THEN\r\n&gt;       L_SQL_TIME_XML := GET_SQL_N_PARSE_TIME_XML(L_IS_REALTIME,\r\n&gt;                                                  L_DBID,\r\n&gt;                                                  L_START_TIME_UTC,\r\n&gt;                                                  L_END_TIME_UTC,\r\n&gt;                                                  L_BUCKET_COUNT,\r\n&gt;                                                  L_BUCKET_INTERVAL,\r\n&gt;                                                  L_AWR_PERIOD,\r\n&gt;                                                  SHOW_SQL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (L_WAIT_TIME_DETAIL = 1) THEN\r\n&gt;       L_WAIT_TIME_XML := GET_WAIT_TIME_XML(L_IS_REALTIME,\r\n&gt;                                            L_DBID,\r\n&gt;                                            L_START_TIME_UTC,\r\n&gt;                                            L_END_TIME_UTC,\r\n&gt;                                            L_BUCKET_COUNT,\r\n&gt;                                            L_BUCKET_INTERVAL,\r\n&gt;                                            L_AWR_PERIOD,\r\n&gt;                                            SHOW_SQL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     IF (L_STORAGE_DETAIL = 1) THEN\r\n&gt;       L_STORAGE_METRICS_XML := GET_STORAGE_METRICS_XML(L_SERVICE_TYPE,\r\n&gt;                                                        SHOW_SQL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n&gt;     \r\n&gt;     \r\n&gt;     IF (L_SESSION_DETAIL = 1) THEN\r\n&gt;       L_SESSION_METRICS_XML := GET_SESSION_METRICS_XML(SHOW_SQL);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     \r\n18890,18891d20912\r\n&lt;     IF (L_ERROR_XML IS NOT NULL) THEN\r\n&lt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, L_ERROR_XML);\r\n18893,18897c20914,20937\r\n&lt;     ELSE\r\n&lt;       \r\n&lt;       IF (L_RMMETRICS_XML IS NOT NULL) THEN\r\n&lt;         L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, L_RMMETRICS_XML);\r\n&lt;       END IF;\r\n---\r\n&gt;     IF (L_RM_METRICS_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, L_RM_METRICS_XML);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (L_SYS_METRICS_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, L_SYS_METRICS_XML);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (L_SQL_TIME_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, L_SQL_TIME_XML);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (L_WAIT_TIME_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, L_WAIT_TIME_XML);\r\n&gt;     END IF;\r\n&gt; \r\n&gt;     IF (L_STORAGE_METRICS_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, \r\n&gt;                                                   L_STORAGE_METRICS_XML);\r\n&gt;     END IF;\r\n&gt;     \r\n&gt;     IF (L_SESSION_METRICS_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, \r\n&gt;                                                   L_SESSION_METRICS_XML);\r\n18900c20940,20943\r\n&lt;     &lt;&lt;DONE&gt;&gt;    \r\n---\r\n&gt;     IF (L_ERROR_XML IS NOT NULL) THEN\r\n&gt;       L_REPORT_XML := L_REPORT_XML.APPENDCHILDXML(XML_ROOT, \r\n&gt;                                                   L_ERROR_XML);\r\n&gt;     END IF;\r\n18901a20945,20946\r\n&gt;     &lt;&lt;DONE&gt;&gt;\r\n&gt;     \r\n18920c20965,20966\r\n&lt;   END REPORT_ADW_WORKLOAD_HISTORICAL;\r\n---\r\n&gt;   END REPORT_WORKLOAD;\r\n&gt; \r\n<\/pre>\n<div id=\"SYS.DBMS_FEATURE_IMC.PROCEDURE.19.0.0.0_RU\">SYS.DBMS_FEATURE_IMC &#8211; PROCEDURE (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">13a14\r\n&gt;     cell_level_value            number;\r\n18a20\r\n&gt;     cell_level_value            := 0;\r\n68c70\r\n&lt;     -- all instances\r\n---\r\n&gt;     -- all instances, excluding instances where base level mode is enabled\r\n70,71c72,77\r\n&lt;        'select nvl(max(value),0) from gv$parameter where ' ||\r\n&lt;        'name = ''inmemory_size'''\r\n---\r\n&gt;        'select nvl(max(A.value),0) from ' ||\r\n&gt;          '(select value, inst_id from gv$parameter where ' ||\r\n&gt;            'name=''inmemory_size'') A, ' ||\r\n&gt;          '(select value, inst_id from gv$parameter where ' ||\r\n&gt;            'name=''inmemory_force'') B ' ||\r\n&gt;        'where A.inst_id = B.inst_id and upper(B.value) != ''BASE_LEVEL'''\r\n73a80,84\r\n&gt;     execute immediate\r\n&gt;        'select count(*) from gv$parameter where ' ||\r\n&gt;          'upper(value) = ''CELLMEMORY_LEVEL'''\r\n&gt;     into cell_level_value;\r\n&gt; \r\n88c99,101\r\n&lt;                   to_char(num_tab_part_cc);\r\n---\r\n&gt;                   to_char(num_tab_part_cc) ||\r\n&gt;         ', ' || 'CellMemory Level: ' ||\r\n&gt;                   to_char(cell_level_value);\r\n89a103\r\n&gt;     -- Do we want to report feature use for cell level\r\n91,92c105,107\r\n&lt;           AND (inmemory_size_value &gt; 0))\r\n&lt;     OR  (num_tab_cc + num_tab_part_cc &gt; 0))\r\n---\r\n&gt;          AND (inmemory_size_value &gt; 0))\r\n&gt;     OR  (num_tab_cc + num_tab_part_cc &gt; 0)\r\n&gt;     OR  (cell_level_value &gt; 0))\r\n<\/pre>\n<div id=\"SYS.PRVT_AWRV_METADATA.TYPE BODY.19.0.0.0_RU\">SYS.PRVT_AWRV_METADATA &#8211; TYPE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">288,290c288,294\r\n&lt;         IF (M_RESOLVED_DB_TYPE \r\n&lt;           IN (DBMS_SQLTUNE_UTIL2.DB_TYPE_PDB, \r\n&lt;                 DBMS_SQLTUNE_UTIL2.DB_TYPE_IMP))\r\n---\r\n&gt; \r\n&gt;         IF (M_RESOLVED_DB_TYPE IN\r\n&gt;               (DBMS_SQLTUNE_UTIL2.DB_TYPE_PDB, \r\n&gt;                DBMS_SQLTUNE_UTIL2.DB_TYPE_IMP)\r\n&gt;             AND\r\n&gt;             DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(P_START_TIME) = \r\n&gt;               DBMS_SQLTUNE_UTIL1.AWR_VIEW_PDB)\r\n432c436,438\r\n&lt;     IF (SYS.DBMS_SQLTUNE_UTIL0.CDB_IS_PDB(L_CON_NAME, L_CON_ID)) THEN  \r\n---\r\n&gt;     IF (SYS.DBMS_SQLTUNE_UTIL0.CDB_IS_PDB(L_CON_NAME, L_CON_ID) AND\r\n&gt;         DBMS_SQLTUNE_UTIL2.CHOOSEAWRFORPDB(P_START_TIME) = \r\n&gt;           DBMS_SQLTUNE_UTIL1.AWR_VIEW_PDB) THEN  \r\n<\/pre>\n<div id=\"SYS.WRI$_REPT_ASH_OMX.TYPE BODY.19.0.0.0_RU\">SYS.WRI$_REPT_ASH_OMX &#8211; TYPE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">25a26\r\n&gt;     L_RESOLUTION        VARCHAR2(2000)  := 'medium';\r\n86a88,91\r\n&gt;       L_RESOLUTION := SYS.DBMS_REPORT.GET_PARAM(L_PARAMS,'resolution',\r\n&gt;                                                 NULLABLE=&gt;TRUE);\r\n&gt; \r\n&gt;       \r\n99a105\r\n&gt;                         RESOLUTION      =&gt; L_RESOLUTION,\r\n155a162,165\r\n&gt;       \r\n&gt;       L_RESOLUTION := SYS.DBMS_REPORT.GET_PARAM(L_PARAMS,'resolution',\r\n&gt;                                                 NULLABLE=&gt;TRUE);\r\n&gt; \r\n168a179\r\n&gt;                         RESOLUTION      =&gt; L_RESOLUTION,\r\n<\/pre>\n<div id=\"SYS.WRI$_REPT_AWRV.TYPE BODY.19.0.0.0_RU\">SYS.WRI$_REPT_AWRV &#8211; TYPE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">63a64\r\n&gt;     L_SERVICE_TYPE     VARCHAR2(32);\r\n534d534\r\n&lt; \r\n550,551c550\r\n&lt;       P_INST_ID := TO_NUMBER(\r\n&lt;                      DBMS_REPORT.GET_PARAM(PARAMS,'inst_id',NULLABLE=&gt;TRUE));\r\n---\r\n&gt;       P_DBID := TO_NUMBER(DBMS_REPORT.GET_PARAM(PARAMS,'dbid',NULLABLE=&gt;TRUE));\r\n554c553,554\r\n&lt;       P_DBID := TO_NUMBER(DBMS_REPORT.GET_PARAM(PARAMS,'dbid',NULLABLE=&gt;TRUE));\r\n---\r\n&gt;       P_INST_ID := TO_NUMBER(\r\n&gt;                        DBMS_REPORT.GET_PARAM(PARAMS,'inst_id',NULLABLE=&gt;TRUE));\r\n562,566d561\r\n&lt;       P_INCLUDE_SQLS := TO_NUMBER(\r\n&lt;                           DBMS_REPORT.GET_PARAM(PARAMS,'include_sqls', \r\n&lt;                                                 NULLABLE=&gt;TRUE));\r\n&lt; \r\n&lt;       \r\n569a565,566\r\n&gt;       L_SERVICE_TYPE := DBMS_SQLTUNE_UTIL2.GET_CLOUD_SERVICE_TYPE();\r\n&gt; \r\n572,588c569,588\r\n&lt;       IF (DBMS_SQLTUNE_UTIL2.IS_ADW() AND SYS_CONTEXT('USERENV', 'CON_ID') &gt; 2) \r\n&lt;       THEN\r\n&lt;         IF (P_IS_REALTIME = 0) THEN\r\n&lt;           REPORT_XML := PRVT_AWR_VIEWER.REPORT_ADW_WORKLOAD_HISTORICAL(\r\n&lt;                           START_TIME        =&gt; P_START_TIME,\r\n&lt;                           END_TIME          =&gt; P_END_TIME,\r\n&lt;                           DBID              =&gt; P_DBID,\r\n&lt;                           INST_ID           =&gt; P_INST_ID,\r\n&lt;                           SHOW_SQL          =&gt; P_SHOW_SQL);\r\n&lt;         ELSE\r\n&lt;           REPORT_XML := PRVT_AWR_VIEWER.REPORT_ADW_WORKLOAD_REALTIME(\r\n&lt;                           START_TIME        =&gt; P_START_TIME,\r\n&lt;                           END_TIME          =&gt; P_END_TIME,\r\n&lt;                           INST_ID_LOW       =&gt; P_INST_ID,\r\n&lt;                           INST_ID_HIGH      =&gt; P_INST_ID,\r\n&lt;                           SHOW_SQL          =&gt; P_SHOW_SQL);\r\n&lt;         END IF;\r\n---\r\n&gt;       IF (PRVT_EMX.IS_OMX() OR\r\n&gt;           (L_SERVICE_TYPE IN \r\n&gt;             (DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_S,\r\n&gt;              DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ADW_D,\r\n&gt;              DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_S,\r\n&gt;              DBMS_SQLTUNE_UTIL2.CLOUD_SERVICE_TYPE_ATP_D)\r\n&gt;            AND SYS_CONTEXT('USERENV', 'CON_ID') &gt; 2)) THEN\r\n&gt; \r\n&gt;         \r\n&gt;         P_REPORT_LEVEL := DBMS_REPORT.GET_PARAM(PARAMS,'report_level',\r\n&gt;                                                 NULLABLE=&gt;TRUE);\r\n&gt; \r\n&gt;         REPORT_XML := PRVT_AWR_VIEWER.REPORT_WORKLOAD(\r\n&gt;                         SERVICE_TYPE =&gt; L_SERVICE_TYPE,\r\n&gt;                         IS_REALTIME  =&gt; P_IS_REALTIME,\r\n&gt;                         START_TIME   =&gt; P_START_TIME,\r\n&gt;                         END_TIME     =&gt; P_END_TIME,\r\n&gt;                         DBID         =&gt; P_DBID,\r\n&gt;                         REPORT_LEVEL =&gt; P_REPORT_LEVEL,\r\n&gt;                         SHOW_SQL     =&gt; P_SHOW_SQL);\r\n591a592\r\n&gt; \r\n593,594c594,596\r\n&lt;         \r\n&lt;         \r\n---\r\n&gt;         P_INCLUDE_SQLS := TO_NUMBER(\r\n&gt;                             DBMS_REPORT.GET_PARAM(PARAMS,'include_sqls', \r\n&gt;                                                   NULLABLE=&gt;TRUE));\r\n<\/pre>\n<div id=\"SYS.WRI$_REPT_PERF.TYPE BODY.19.0.0.0_RU\">SYS.WRI$_REPT_PERF &#8211; TYPE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">39a40\r\n&gt;     P_IS_OMX               NUMBER;\r\n125a127,129\r\n&gt;     P_IS_OMX := CASE WHEN SYS.PRVT_EMX.IS_OMX() THEN 1 ELSE 0 END;\r\n&gt; \r\n&gt;     \r\n140a145\r\n&gt;                       IS_OMX              =&gt; P_IS_OMX,\r\n<\/pre>\n<div id=\"SYS.WRI$_REPT_SESSION.TYPE BODY.19.0.0.0_RU\">SYS.WRI$_REPT_SESSION &#8211; TYPE BODY (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">148c148\r\n&lt; \t\t\t\t\t\t   P_INST_ID=&gt;V_INST_ID,\r\n---\r\n&gt;                                                    P_INST_ID=&gt;V_INST_ID,\r\n<\/pre>\n<div id=\"SYS.DBA_WORKLOAD_CAPTURES.VIEW.19.0.0.0_RU\">SYS.DBA_WORKLOAD_CAPTURES &#8211; VIEW (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">33c33\r\n&lt;  , encryption_verifier\r\n---\r\n&gt;  , r.encryption_verifier\r\n<\/pre>\n<div id=\"SYS.INT$DBA_JSON_DATAGUIDES.VIEW.19.0.0.0_RU\">SYS.INT$DBA_JSON_DATAGUIDES &#8211; VIEW (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1,5c1,43\r\n&lt; SELECT OBJECT_ID, OBJECT_TYPE#, OWNER, TABLE_NAME, COLUMN_NAME,\r\n&lt;        sys.dg$getDgQuoteName(OWNER, TABLE_NAME, COLUMN_NAME,\r\n&lt;                          dbms_json.format_flat, dbms_json.pretty)\r\n&lt; FROM INT$DBA_JSON_COLUMNS\r\n&lt; WHERE sys.dg$hasDGIndex(OWNER, TABLE_NAME, COLUMN_NAME) &gt; 0\r\n---\r\n&gt; SELECT obj.obj#  \"OBJECT_ID\",\r\n&gt;        obj.type# \"OBJECT_TYPE#\",\r\n&gt;        usr.name  \"OWNER\",\r\n&gt;        obj.name  \"TABLE_NAME\",\r\n&gt;        col.name  \"COLUMN_NAME\",\r\n&gt;        sys.dg$getDgQuoteName(usr.name, obj.name, col.name,\r\n&gt;            dbms_json.format_flat, dbms_json.pretty) \"DATAGUIDE\"\r\n&gt; FROM sys.cdef$ CDEF,\r\n&gt;      sys.\"_CURRENT_EDITION_OBJ\" OBJ,\r\n&gt;      sys.col$ COL,\r\n&gt;      sys.ccol$ CCOL,\r\n&gt;      sys.user$ USR\r\n&gt; WHERE cdef.type# = 1\r\n&gt;   AND bitand(cdef.defer, 126976) &gt; 0\r\n&gt;   AND cdef.obj# = obj.obj#\r\n&gt;   AND cdef.con# = ccol.con#\r\n&gt;   AND ccol.obj# = obj.obj#\r\n&gt;   AND col.col#  = ccol.col#\r\n&gt;   AND col.obj#  = obj.obj#\r\n&gt;   AND usr.user# = obj.owner#\r\n&gt;   AND col.type# IN (1,9,23,112,113,114) \/* show only supported column types *\/\r\n&gt;   AND bitand(col.property, 32) = 0      \/* not hidden column *\/\r\n&gt;   AND bitand(obj.flags, 128) = 0        \/* not in recycle bin *\/\r\n&gt;   AND obj.type# = 2                     \/* only tables *\/\r\n&gt;   AND sys.dg$hasDGIndex(obj.owner#, obj.obj#, col.name) &gt; 0\r\n&gt; UNION ALL\r\n&gt; SELECT obj.obj#  \"OBJECT_ID\",\r\n&gt;        obj.type# \"OBJECT_TYPE#\",\r\n&gt;        usr.name  \"OWNER\",\r\n&gt;        obj.name  \"TABLE_NAME\",\r\n&gt;        col.name  \"COLUMN_NAME\",\r\n&gt;        sys.dg$getDgQuoteName(usr.name, obj.name, col.name,\r\n&gt;            dbms_json.format_flat, dbms_json.pretty)  \"DATAGUIDE\"\r\n&gt; FROM sys.\"_CURRENT_EDITION_OBJ\" OBJ,\r\n&gt;      sys.col$ COL,\r\n&gt;      sys.user$ USR\r\n&gt; WHERE col.obj#  = obj.obj#\r\n&gt;   AND usr.user# = obj.owner#\r\n&gt;   AND col.type# = 119                   \/* show only JSON type columns *\/\r\n&gt;   AND bitand(col.property, 32) = 0      \/* not hidden column *\/\r\n&gt;   AND bitand(obj.flags, 128) = 0        \/* not in recycle bin *\/\r\n&gt;   AND obj.type# = 2                     \/* only tables *\/\r\n&gt;   AND sys.dg$hasDGIndex(obj.owner#, obj.obj#, col.name) &gt; 0\r\n<\/pre>\n<div id=\"SYS.INT$DBA_JSON_DG_COLS.VIEW.19.0.0.0_RU\">SYS.INT$DBA_JSON_DG_COLS &#8211; VIEW (RU):<\/div>\n<pre class=\"EnlighterJSRAW enlighter-collapse\" data-enlighter-language=\"diff\" data-enlighter-linenumbers=\"false\">1,5c1,4\r\n&lt; SELECT OBJECT_ID, OBJECT_TYPE#, OWNER, TABLE_NAME, COLUMN_NAME,\r\n&lt;        JT.JPATH AS PATH, JT.JTYPE AS TYPE, JT.TLENGTH AS LENGTH\r\n&lt; FROM INT$DBA_JSON_COLUMNS,\r\n&lt;      TABLE(SYS.dg$getFlatDg(OWNER, TABLE_NAME, COLUMN_NAME)) JT\r\n&lt; WHERE SYS.dg$hasDGIndex(OWNER, TABLE_NAME, COLUMN_NAME) &gt; 0\r\n---\r\n&gt; SELECT dg.OBJECT_ID, dg.OBJECT_TYPE#, dg.OWNER, dg.TABLE_NAME, dg.COLUMN_NAME,\r\n&gt;        jt.JPATH AS PATH, jt.JTYPE AS TYPE, jt.TLENGTH AS LENGTH\r\n&gt; FROM INT$DBA_JSON_DATAGUIDES dg,\r\n&gt;      TABLE(SYS.dg$getFlatDg(dg.dataguide)) JT\r\n<\/pre>\n<hr \/>\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style2 like-4731 jlk' href='javascript:void(0)' data-task='like' data-post_id='4731' data-nonce='de4404f630' rel='nofollow'><img class='wti-pixel' src='https:\/\/www.dbarj.com.br\/wp-content\/plugins\/wti-like-post\/images\/pixel.gif' title='Like' \/><span class='lc-4731 lc'>0<\/span><\/a><\/div><\/div> <div class='status-4731 status align-left'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>Oracle July 2020 Critical Patch Advisory changed objects performed by each database patch. For more details and the catalog, check the main post: Dissecting 200714 BP, PSU, RU and RUR What exactly changed for each? (click to see detailed line changes) 11.2.0.4 SYS.DBMS_RCVMAN &#8211; PACKAGE BODY 11g (BP) SYS.DBMS_RCVMAN &#8211; PACKAGE BODY 11g (PSU) 12.1.0.2 &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/www.dbarj.com.br\/pt-br\/2020\/08\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\/\">Continue lendo<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-4731","post","type-post","status-publish","format-standard","hentry","category-database","item-wrap"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Oracle July 2020 Critical Patch Advisory - PL\/SQL detailed changes - DBA - Rodrigo Jorge - Oracle Tips and Guides<\/title>\n<meta name=\"description\" content=\"Oracle July 2020 Critical Patch Advisory changed objects performed by each database patch.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbarj.com.br\/pt-br\/2020\/08\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\/\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"DBA RJ\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"626 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2020\\\/08\\\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2020\\\/08\\\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\\\/\"},\"author\":{\"name\":\"DBA RJ\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"headline\":\"Oracle July 2020 Critical Patch Advisory &#8211; PL\\\/SQL detailed changes\",\"datePublished\":\"2020-08-27T13:22:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2020\\\/08\\\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\\\/\"},\"wordCount\":2143,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"articleSection\":[\"Oracle Database General\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2020\\\/08\\\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2020\\\/08\\\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\\\/\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2020\\\/08\\\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\\\/\",\"name\":\"Oracle July 2020 Critical Patch Advisory - PL\\\/SQL detailed changes - DBA - Rodrigo Jorge - Oracle Tips and Guides\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/#website\"},\"datePublished\":\"2020-08-27T13:22:00+00:00\",\"description\":\"Oracle July 2020 Critical Patch Advisory changed objects performed by each database patch.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2020\\\/08\\\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2020\\\/08\\\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2020\\\/08\\\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Oracle July 2020 Critical Patch Advisory - PL\\\/SQL detailed changes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/#website\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/\",\"name\":\"DBA - Rodrigo Jorge - Oracle Tips and Guides\",\"description\":\"Blog about Databases, Security and High Availability\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\",\"name\":\"DBA RJ\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\",\"contentUrl\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\",\"width\":712,\"height\":712,\"caption\":\"DBA RJ\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Oracle July 2020 Critical Patch Advisory - PL\/SQL detailed changes - DBA - Rodrigo Jorge - Oracle Tips and Guides","description":"Oracle July 2020 Critical Patch Advisory changed objects performed by each database patch.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbarj.com.br\/pt-br\/2020\/08\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\/","twitter_misc":{"Escrito por":"DBA RJ","Est. tempo de leitura":"626 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbarj.com.br\/pt-br\/2020\/08\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\/#article","isPartOf":{"@id":"https:\/\/www.dbarj.com.br\/pt-br\/2020\/08\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\/"},"author":{"name":"DBA RJ","@id":"https:\/\/www.dbarj.com.br\/pt-br\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"headline":"Oracle July 2020 Critical Patch Advisory &#8211; PL\/SQL detailed changes","datePublished":"2020-08-27T13:22:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbarj.com.br\/pt-br\/2020\/08\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\/"},"wordCount":2143,"commentCount":0,"publisher":{"@id":"https:\/\/www.dbarj.com.br\/pt-br\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"articleSection":["Oracle Database General"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbarj.com.br\/pt-br\/2020\/08\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbarj.com.br\/pt-br\/2020\/08\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\/","url":"https:\/\/www.dbarj.com.br\/pt-br\/2020\/08\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\/","name":"Oracle July 2020 Critical Patch Advisory - PL\/SQL detailed changes - DBA - Rodrigo Jorge - Oracle Tips and Guides","isPartOf":{"@id":"https:\/\/www.dbarj.com.br\/pt-br\/#website"},"datePublished":"2020-08-27T13:22:00+00:00","description":"Oracle July 2020 Critical Patch Advisory changed objects performed by each database patch.","breadcrumb":{"@id":"https:\/\/www.dbarj.com.br\/pt-br\/2020\/08\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbarj.com.br\/pt-br\/2020\/08\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbarj.com.br\/pt-br\/2020\/08\/oracle-july-2020-critical-patch-advisory-pl-sql-detailed-changes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.dbarj.com.br\/pt-br\/"},{"@type":"ListItem","position":2,"name":"Oracle July 2020 Critical Patch Advisory - PL\/SQL detailed changes"}]},{"@type":"WebSite","@id":"https:\/\/www.dbarj.com.br\/pt-br\/#website","url":"https:\/\/www.dbarj.com.br\/pt-br\/","name":"DBA - Rodrigo Jorge - Oracle Tips and Guides","description":"Blog about Databases, Security and High Availability","publisher":{"@id":"https:\/\/www.dbarj.com.br\/pt-br\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbarj.com.br\/pt-br\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":["Person","Organization"],"@id":"https:\/\/www.dbarj.com.br\/pt-br\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9","name":"DBA RJ","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png","url":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png","contentUrl":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png","width":712,"height":712,"caption":"DBA RJ"},"logo":{"@id":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png"}}]}},"_links":{"self":[{"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/posts\/4731","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/comments?post=4731"}],"version-history":[{"count":0,"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/posts\/4731\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/media?parent=4731"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/categories?post=4731"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/tags?post=4731"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}