Oracle Feature Usage Procedures
Version 19.3

General Information
Library Note Morgan's Library Page Header
Which has the higher priority in your organization: Deploying a new database or securing the ones you already have? Looking for a website, and resources, dedicated solely to securing Oracle databases? Check out DBSecWorx.
These procedures support Oracle's Feature Usage Reporting: See link at page bottom.
AUTHID DEFINER
First Available 11.2
Security Model Owned by SYS with no privileges granted
Source Code {ORACLE_HOME}/rdbms/admin/catfusrg.sql
 
DBMS_FEATURE_ACFS
Data Dictionary Objects
DUAL GV$ASM_FILESYSTEM SYS_STUB_FOR_PURITY_ANALYSIS
Detects ACFS usage dbms_feature_acfs(
is_used      OUT NUMBER,
aux_count    OUT NUMBER,
feature_info OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_acfs(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2:
3: :num_filesystems:0
 
DBMS_FEATURE_ACFS_ENCR
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS V$ASM_ACFS_ENCRYPTION_INFO  
Detects ACFS Encryption usage dbms_feature_acfs_encr(
is_used      OUT NUMBER,
aux_count    OUT NUMBER,
feature_info OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_acfs_encr(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2:
3:
 
DBMS_FEATURE_ACFS_SNAPSHOT
Data Dictionary Objects
V$ASM_ACFSSNAPSHOTS SYS_STUB_FOR_PURITY_ANALYSIS  
Detects ACFS Snapshots usage dbms_feature_acfs_snapshot(
is_used      OUT NUMBER,
aux_count    OUT NUMBER,
feature_info OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_acfs_snapshot(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2:
3: :num_snapshots:0
 
DBMS_FEATURE_ACTIVE_DATA_GUARD
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects Active Data Guard usage dbms_feature_active_data_guard(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_active_data_guard(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Active Data Guard usage not detected
 
DBMS_FEATURE_ADAPTIVE_PLANS
Data Dictionary Objects
DBMS_LOB V$SQL X$KSPPCV
SYS_STUB_FOR_PURITY_ANALYSIS V$SQLCOMMAND X$KSPPI
Tracks Adaptive Execution Plan usage dbms_feature_adaptive_plans(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_adaptive_plans(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 1
2:
3: Total number of queries: 501
Number of queries with an adaptive plan: 35
Percentage of queries with an adaptive plan:
6.98602794411177644710578842315369261477
Are the queries running in reporting mode ? : No
 
DBMS_FEATURE_ADV_IDXCMP
Data Dictionary Objects
PRVT_COMPRESSION SYS_STUB_FOR_PURITY_ANALYSIS  
Detect Advanced Index Compression usage dbms_feature_adv_idxcmp(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_adv_idxcmp(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: ADVANCED Index Compression not detected
 
DBMS_FEATURE_ADV_TABCMP
Data Dictionary Objects
PRVT_COMPRESSION SYS_STUB_FOR_PURITY_ANALYSIS  
Detect Advanced Table Compression usage dbms_feature_adv_tabcmp(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_adv_tabcmp(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: ADVANCED Table Compression Not Detected
 
DBMS_FEATURE_AFD
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS V$ASM_DISK  
Detects ASM Filter Driver usage dbms_feature_afd(
is_used      OUT NUMBER,
aux_count    OUT NUMBER,
feature_info OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_afd(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2:
3:
 
DBMS_FEATURE_APEX
Data Dictionary Objects
DBA_REGISTRY DBMS_STANDARD SYS_STUB_FOR_PURITY_ANALYSIS
DBMS_ASSERT    
Detects APEX usage dbms_feature_apex(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_apex(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: APEX usage not detected
 
DBMS_FEATURE_ASM
Data Dictionary Objects
DUAL V$ASM_CLIENT V$ASM_DISKGROUP
SYS_STUB_FOR_PURITY_ANALYSIS V$ASM_DISK  
Detects ASM usage dbms_feature_asm(
is_used              OUT NUMBER,
total_diskgroup_size OUT NUMBER,
summary              OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_asm(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2:
3:
 
DBMS_FEATURE_AUDIT_OPTIONS
Data Dictionary Objects
AUDIT$ SYS_STUB_FOR_PURITY_ANALYSIS V$PARAMETER
DBA_OBJ_AUDIT_OPTS V$OPTION  
Detects audit trail type and the number of system and object audit options available dbms_feature_audit_options(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_audit_options(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 1
2: 0
3: AUDIT_TRAIL=DB; Number of system audit options=234; Number of object audit options=254
 
DBMS_FEATURE_AUM
Data Dictionary Objects
DBA_DATA_FILES DBA_TABLESPACES V$SYSTEM_PARAMETER
DBA_FEATURE_USAGE_STATISTICS SYS_STUB_FOR_PURITY_ANALYSIS V$UNDOSTAT
Detects Automatic Undo Management usage dbms_feature_aum(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_aum(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 1
2: 1
3: (Retention: NOGUARANTEE, TS Count: 1, Size MB: 735) (Undo Blocks: 9470, Max Concurrency: 7) (Snapshot Old Info - Begin Time: 2012-10-29 22:11:08, End Time: 2012-11-01 16:54:59, SSOLD Error Count: 0)
 
DBMS_FEATURE_AUTOSTA
Data Dictionary Objects
DBA_ADVISOR_EXECUTIONS DBA_ADVISOR_RECOMMENDATIONS DBMS_LOB
DBA_ADVISOR_EXEC_PARAMETERS DBA_FEATURE_USAGE_STATISTICS DBMS_STANDARD
DBA_ADVISOR_FINDINGS DBA_SQL_PROFILES SYS_STUB_FOR_PURITY_ANALYSIS
DBA_ADVISOR_OBJECTS    
Detects auto-implemented SQL profiles usage dbms_feature_autosta(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_autosta(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 1
2: 1
3: Execution count so far: 8, Executions with auto-implement: 0, SQL profiles recommended so far: 1, Projected DB Time Saved Automatically (s): 0
 
DBMS_FEATURE_AUTO_MEM
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS V$MEMORY_TARGET_ADVICE V$SYSTEM_EVENT
V$MEMORY_DYNAMIC_COMPONENTS V$PGASTAT  
Detects Automatic Memory Management usage dbms_feature_auto_mem(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_auto_mem(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 1
2: 0
3:
:memory_target:1291845632:sga_max_size:780140544:memory_max_target:1291845632:co
mp:shared pool:cur:369098752:min:369098752:max:369098752:usr:0:comp:large
pool:cur:8388608:min:8388608:max:8388608:usr:0:comp:java
pool:cur:25165824:min:8388608:max:25165824:usr:0:comp:streams
pool:cur:8388608:min:8388608:max:8388608:usr:0:comp:SGA
Target:cur:780140544:min:780140544:max:780140544:usr:0:comp:DEFAULT buffer
cache:cur:360710144:min:360710144:max:377487360:usr:0:comp:PGA
Target:cur:511705088:min:511705088:max:511705088:usr:0:mem tgt
adv::msz:616:sf:.5:time:941:tf:1.0053:msz:924:sf:.75:time:936:tf:1.0004:msz:1232
:sf:1:time:936:tf:1:msz:1540:sf:1.25:time:936:tf:1:msz:1848:sf:1.5:time:936:tf:1
:msz:2156:sf:1.75:time:936:tf:1:msz:2464:sf:2:time:936:tf:1:event:SGA:
allocation:waits:2:time:3
 
DBMS_FEATURE_AUTO_REOPT
Data Dictionary Objects
DBMS_LOB V$SQL X$KSPPCV
SYS_STUB_FOR_PURITY_ANALYSIS V$SQLCOMMAND X$KSPPI
Track Adaptive Reoptimization usage dbms_feature_auto_reopt(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_auto_reopt(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 1
2:
3: Total number of queries: 563
Number of reoptimizable queries: 3
Percentage of reoptimizable queries:
.5328596802841918294849023090586145648313
 
DBMS_FEATURE_AUTO_SGA
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS V$MEMORY_DYNAMIC_COMPONENTS V$SYSTEM_EVENT
Detects Automatic SGA Management usage dbms_feature_auto_sga(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_auto_sga(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Automatic SGA Tuning usage not detected
 
DBMS_FEATURE_AUTO_SSM
Data Dictionary Objects
DBA_DATA_FILES DBA_TABLESPACES SYS_STUB_FOR_PURITY_ANALYSIS
Detects Automatic Segment Space Managed tablespaces usage dbms_feature_auto_ssm(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_auto_ssm(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 1
2: 4
3: (Segment Space Management: AUTO, TS Count: 4, Size MB: 1320.625) (Segment Space Management: MANUAL, TS Count: 2, Size MB: 800)
 
DBMS_FEATURE_AWR
Data Dictionary Objects
DBA_HIST_SNAPSHOT WRH$_STAT_NAME WRI$_DBU_USAGE_SAMPLE
SYS_STUB_FOR_PURITY_ANALYSIS WRH$_SYS_TIME_MODEL WRM$_SNAPSHOT
V$DATABASE    
Counts snapshots since last sample also counts DB time and DB cpu over last 7 days dbms_feature_awr(
feature_boolean_out OUT NUMBER,
aux_count_out       OUT NUMBER,
feature_info_out    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_awr(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2:
3: DBtime:1703.45,DBcpu:794.72
 
DBMS_FEATURE_BACKUP_ENCRYPTION
Data Dictionary Objects
DBMS_BACKUP_RESTORE SYS_STUB_FOR_PURITY_ANALYSIS  
Counts RMAN Backup Encryption usage dbms_feature_backup_encryption(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_backup_encryption(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_BA_OWNER
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects usage of the Oracle Database Logging Recovery Appliance (DBLRA - see link at page bottom) dbms_feature_ba_owner(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
info            OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_ba_owner(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
DECLARE
*
ERROR at line 1:
ORA-06550: line 1, column 14:
PL/SQL: ORA-00904: "DBMS_BA_OWNER": invalid identifier
-- this looks to be an Oracle bug
ORA-06550: line 1, column 7:
PL/SQL: SQL Statement ignored
ORA-06512: at "SYS.DBMS_FEATURE_BA_OWNER", line 10
ORA-06512: at line 6
 
DBMS_FEATURE_CLOUD_EHCC
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects EHCC in Cloud Database usage dbms_feature_cloud_ehcc(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_cloud_ehcc(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: EHCC in Cloud Database: 0
 
DBMS_FEATURE_CONCURRENT_STATS
Data Dictionary Objects
DBA_OPTSTAT_OPERATIONS DBMS_STATS SYS_STUB_FOR_PURITY_ANALYSIS
DBMS_LOB DUAL XMLTYPE
Track concurrent stats gathering usage dbms_feature_concurrent_stats(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_concurrent_stats(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Time interval covred by dba_optstat_operatoins: 07/03/2103 - 07/03/2013
Total Number of All Stats Operations: 136
Total Number of Gather Stats Operations: 134
Total Number of concurrent Operations: 0.
Type of concurrnet operations with their frequencies:
Current value of CONCURRENT preference: OFF
 
DBMS_FEATURE_DATABASE_ODM
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS V$OPTION  
Detects Oracle Data Mining usage dbms_feature_database_odm(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_database_odm(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_DATABASE_VAULT
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS USER$ V$OPTION
Detects Database Vault usage dbms_feature_database_vault(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_database_vault(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_DATA_GUARD
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects Data Guard usage dbms_feature_data_guard(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_data_guard(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Data Guard usage not detected
 
DBMS_FEATURE_DATA_REDACTION
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects Data Redaction usage dbms_feature_data_redaction(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_data_redaction(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Data Redaction usage not detected
 
DBMS_FEATURE_DBFS_CONTENT
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects usage of DBFS_CONTENT to display the path items from all available content stores dbms_feature_dbfs_content(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_dbfs_content(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: DBFS Content feature not in use.
 
DBMS_FEATURE_DBFS_HS
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects usage of DBFS_HS (hierarchical) content stores dbms_feature_dbfs_hs(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_dbfs_hs(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: DBFS HS feature not in use.
 
DBMS_FEATURE_DBFS_SFS
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects usage of DBFS content storage administration sample implementation dbms_feature_dbfs_sfs(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_dbfs_sfs(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: DBFS SFS feature is not in use.
 
DBMS_FEATURE_DEFERRED_SEG_CRT
Data Dictionary Objects
IND$ LOBFRAG$ TABPART$
INDPART$ SEG$ TABSUBPART$
INDSUBPART$ SYS_STUB_FOR_PURITY_ANALYSIS V$SYSTEM_PARAMETER
LOB$ TAB$  
Detects usage of Deferred Segment Creation dbms_feature_deferred_seg_crt(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_deferred_seg_crt(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 2
2: 1701
3: Deferred Segment Creation Parameter:1 Total Deferred Segments:1701 Total Created Segments:5965 Table Segments:434 Index Segments:1138 Lob Segments:129 Table Partition Segments:0 Index Partition Segments:0 Lob Partition Segments:0 Table SubPartition Segments:0 Index SubPartition Segments:0 Lob SubPartition Segments:0
 
DBMS_FEATURE_DMU
Data Dictionary Objects
PROPS$ SYS_STUB_FOR_PURITY_ANALYSIS WRI$_DBU_USAGE_SAMPLE
Reports usage of Oracle Database Migration Assistant for Unicode dbms_feature_dmu(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_dmu(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: DMU usage not detected
 
DBMS_FEATURE_DYN_SGA
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS V$MEMORY_DYNAMIC_COMPONENTS V$SYSTEM_EVENT
Detects usage of Dynamic SGA dbms_feature_dyn_sga(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_dyn_sga(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Dynamic SGA usage not detected
 
DBMS_FEATURE_EMX
Data Dictionary Objects
DBA_FEATURE_USAGE_STATISTICS SYS_STUB_FOR_PURITY_ANALYSIS XMLTYPE
DUAL X$KEXSVFU  
Detects usage of EM Express dbms_feature_emx(
feature_boolean OUT NUMBER,
num_cells       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_emx(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: <emx_usage time_unit="us"></emx_usage>
 
DBMS_FEATURE_EXADATA
Data Dictionary Objects
DBMS_REGISTRY SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of Exadata storage dbms_feature_extadata(
feature_boolean OUT NUMBER,
num_cells       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_exadata(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: EXADATA usage not detected
 
DBMS_FEATURE_EXTENSIBILITY
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects usage of Extensibility Features dbms_feature_extensibility(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_extensibility(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: EXTENSIBILITY usage not detected
 
DBMS_FEATURE_FGA_AUDIT
Data Dictionary Objects
DBA_AUDIT_POLICIES SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of Fine Grained Auditing dbms_feature_fga_audit(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_fga_audit(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Number of FGA policies=0; Number of Enabled FGA policies=0; Number of FGA policies with audit_condition=0; Number of FGA policies with column-level audit=0; Number of FGA policies with handler=0; Number of FGA policies with DB audit_trail=0; Number of FGA policies with XML audit_trail=0
 
DBMS_FEATURE_FLEX_ASM
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects usage of Flex ASM dbms_feature_flex_asm(
is_used      OUT NUMBER,
aux_count    OUT NUMBER,
feature_info OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_flex_asm(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2:
3:
 
DBMS_FEATURE_GATEWAYS
Data Dictionary Objects
PLITBLM SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of Oracle database gateways dbms_feature_gateways(
feature_boolean OUT NUMBER,
num_cells       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_gateways(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: This feature is not used.
 
DBMS_FEATURE_GOLDENGATE
Data Dictionary Objects
DBA_APPLY GV$GOLDENGATE_CAPABILITIES SYS_STUB_FOR_PURITY_ANALYSIS
DBA_CAPTURE    
Detects usage of Golden Gate Replication dbms_feature_goldengate(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_goldengate(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: tcap:0 dscap:0 app:0 dblogread:0 tdup:0 suptrig:0 dtrigopt:0
 
DBMS_FEATURE_HCC
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects usage of Hybrid Columnar Compression dbms_feature_hcc(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_hcc(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Hybrid Columnar Compression not detected
 
DBMS_FEATURE_HCCCONV
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects usage of Hybrid Columnar Compression Conventional Load dbms_feature_hccconv(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_hccconv(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Hybrid Columnar Compressed Conventional: 0
 
DBMS_FEATURE_HCCRLL
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detect usage of Hybrid Columnar Compression Row Level Locking dbms_feature_hccrll(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_hccrll(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Hybrid Columnar Compression Row Level Locking not detected
 
DBMS_FEATURE_HEATMAP
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Tracks heatmap feature usage dbms_feature_heatmap(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_heatmap(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 1
2: 0
3: Number of Tablespaces Traced: 1, Number of Segments Tracked: 1, Number of Blocks Tracked in Memory: 0
 
DBMS_FEATURE_IDH
Data Dictionary Objects
DBA_ROLE_PRIVS SYS_STUB_FOR_PURITY_ANALYSIS  
Detect In-Database Hadoop usage dbms_feature_idh(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_idh(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: In-Database Hadoop usage not detected
 
DBMS_FEATURE_ILM
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects Information Lifecycle Management usage dbms_feature_ilm(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_ilm(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Information Lifecycle Management not detected
 
DBMS_FEATURE_IMA
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects In-Memory Aggregation usage dbms_feature_ima(
feature_boolean OUT NUMBER,
num_cells       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_ima(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: In-Memory Aggregation Not Detected
 
DBMS_FEATURE_IMC
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects In-Memory Column Store usage dbms_feature_imc(
feature_boolean OUT NUMBER,
num_cells       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_imc(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: In-Memory Column Store Not Detected
 
DBMS_FEATURE_IMFS
Data Dictionary Objects
SYSDBIMFS$ SYS_STUB_FOR_PURITY_ANALYSIS V$TABLESPACE
SYSDBIMFS_METADATA$    
Detects usage of In-Memory Fast Start dbms_feature_imfs(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_imfs(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: In-Memory FastStart enabled on USERS: Current Number of Savepoints in FastStart Area: 0, Current Space Usage: , Total Number of Savepoints in FastStart Area:
 
DBMS_FEATURE_IM_ADO
Data Dictionary Objects
ILMOBJ$ ILMPOLICY$ SYS_STUB_FOR_PURITY_ANALYSIS
Detects usage of In-Memory Automatic Data Optimization policies dbms_feature_im_ado(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_im_ado(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_IM_EXPRESSIONS
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects usage of In-Memory Expressions and Virtual Column usage dbms_feature_im_expressions(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_im_expressions(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_IM_FORSERVICE
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects usage of In-Memory For Service usage dbms_feature_im_forservice(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_im_forservice(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_IM_JOINGROUPS
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects usage of In-Memory Join Group usage dbms_feature_im_joingroups(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_im_joingroups(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_IOT
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects Index Organized Table usage dbms_feature_iot(
feature_boolean OUT NUMBER,
num_cells       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_iot(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Index Organized Tables Not Detected
 
DBMS_FEATURE_JOB_SCHEDULER
Data Dictionary Objects
ALL_SCHEDULER_DB_DESTS DBA_SCHEDULER_CHAIN_STEPS DBA_SCHEDULER_JOB_CLASSES
ALL_SCHEDULER_EXTERNAL_DESTS DBA_SCHEDULER_CREDENTIALS DBA_SCHEDULER_NOTIFICATIONS
ALL_SCHEDULER_GROUPS DBA_SCHEDULER_DB_DESTS DBA_SCHEDULER_PROGRAMS
ALL_SCHEDULER_JOBS DBA_SCHEDULER_DESTS DBA_SCHEDULER_PROGRAM_ARGS
ALL_SCHEDULER_PROGRAMS DBA_SCHEDULER_FILE_WATCHERS DBA_SCHEDULER_SCHEDULES
DBA_JOBS DBA_SCHEDULER_GROUPS DBA_SCHEDULER_WINDOWS
DBA_SCHEDULER_CHAINS DBA_SCHEDULER_JOBS SYS_STUB_FOR_PURITY_ANALYSIS
Detects usage of Job Scheduler dbms_feature_job_scheduler(
is_used    OUT NUMBER,
nr_of_jobs OUT NUMBER,
summary    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_job_scheduler(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 4
2: 4
3:
JNRA:26,JNRU:4,DJOBS:0,JTDPLS:12,JTDPRO:5,JTDSTO:9,JTIPLS:13,JTISTO:13,JDSCAL:17
,JDSNAM:5,JDSONC:1,JDSWGR:3,JISCAL:22,JISONC:1,JISWGR:3,JAC:1,JAA:4,JAM:4,JAX:4,
JSTREG:26,JRS:26,JMRD:0,JSL:0,JII:0,JAR:0,JFLW:0,JRE:0,JDIS:5,JPI:0,PRTPLS:2,PRT
STO:8,PAC:2,PAA:11,PAM:11,PAX:12,SSTCAL:4,PAN:8,PA_:14,PMJNA:1,PMJOW:1,JCNT:14,J
CSV:0,JCCG:9,LLFAI:2,LLFUL:9,LLOFF:1,LLRUN:2,WIPLO:9,WINR:2,SWTCA:9,CCNT:0,CEVI:
,CURS:,CNRR:,CNRS:,CAVS:,CMDS:,CMXS:,CSRD:0,CRNR:0,CRDB:,CSWD:,DSDN:0,FWNR:0,FWS
S:,FWDS:,FWMF,GWINN:4,GWINA:7,GWINX:7,GWINM:7,SCHNRA:4,SCHNNR:4,CAFD:6,CAFH:8,CA
FM:1,CAFMI:5,CAFW:1,CAOF:0,CASC:0,CABS:0,CAIC:0,CAEX:0,CAIS:0,SNNR:0
 
DBMS_FEATURE_JSON
Data Dictionary Objects
DBA_IND_EXPRESSIONS DBMS_LOB SYS_STUB_FOR_PURITY_ANALYSIS
DBMS_ASSERT DBMS_STANDARD  
Detects usage of JSON dbms_feature_json(
feature_boolean OUT NUMBER,
num_cells       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_json(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: { "version":1, "jsonColumns": {"total":0 , "varchar2":0 , "clob":0 , "blob":0 , "raw":0 }, "rowCount": {"maxCount":0 , "minCount":0,
"avgCount":0 }, "views": {"total":0 , "jsonValue":0 , "jsonExists":0 , "jsonQuery":0 , "jsonTable":0 }, "funcIdx": {"jsonValue":0 ,
"jsonExists":0 , "jsonQuery":0 }, "ctxIdx": {"jsonCtxIdx":0 , "bsonCtxIdx":0 } }
 
DBMS_FEATURE_LABEL_SECURITY
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects Label Security usage dbms_feature_label_security(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_label_security(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: No. of policies=0
 
DBMS_FEATURE_LMT
Data Dictionary Objects
DBA_DATA_FILES DBA_TABLESPACES SYS_STUB_FOR_PURITY_ANALYSIS
Detects usage of Locally Managed Tablespaces dbms_feature_lmt(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_lmt(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 1
2: 4
3: (Extent Management: LOCAL, TS Count: 4, Size MB: 2400)
 
DBMS_FEATURE_MOVE_DATAFILE
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detect Online Move Datafile usage dbms_feature_move_datafile(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_move_datafile(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Online Move Datafile usage not detected
 
DBMS_FEATURE_OBJECT
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects the use of Object Types dbms_feature_object(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_object(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: OBJECT usage not detected
 
DBMS_FEATURE_ONLINE_REDEF
Data Dictionary Objects
REDEF$ SYS_STUB_FOR_PURITY_ANALYSIS  
Detects use of the DBMS_REDEFINITION package dbms_feature_online_redef(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_object(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Online Redefinition usage not detected!
 
DBMS_FEATURE_PARTITION_SYSTEM
Data Dictionary Objects
CLST$
INDSUBPART$
SUM$
CLSTJOIN$ OBJ$ SUMAGG$
CLSTKEY$ OPQTYPE$ SUMDETAIL$
COL$ PARTCOL$ SYS_STUB_FOR_PURITY_ANALYSIS
DEFSUBPART$ PARTOBJ$ TABCOMPART$
EXTERNAL_TAB$ SEG$ TABPART$
IND$ SNAP$ TABSUBPART$
INDCOMPART$ SUBPARTCOL$ USER$
INDPART$    
Detects system partitioning usage dbms_feature_partition_system(
is_used    OUT NUMBER,
data_ratio OUT NUMBER,
clob_rest  OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_partition_system(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 1
2: 21.39
3:
1:T:INTERVAL::1048575-9::1::::|1:I:INTERVAL::1048575-9::1::L:NORMAL:NU|1:I:::::4::GNP:NORMAL:U|1:I:I
::LP:NORMAL:NU|2:T:INTERVAL::1048575-9::1::::|2:I:INTERVAL::1048575-9::1::LP:NORMAL:U|2:I:INTERVAL::
|2:I:INTERVAL::1048575-9::1::L:NORMAL:NU|2:I:::::::GNP:NORMAL:U|3:T:INTERVAL::1048575-9::1::::|4:T:H
ANGE::6::2::::|5:I:RANGE::6::2::LP:NORMAL:U|6:T:RANGE::6::2::::|6:I:RANGE::6::2::L:NORMAL:NU|6:I:RAN
|7:T:RANGE::6::2::::|7:I:RANGE::6::2::LP:NORMAL:U|8:T:RANGE::6::2::::|8:I:RANGE::6::2::LP:NORMAL:U|9
I:RANGE::6::2::LP:NORMAL:U|10:T:RANGE::2::2::::|10:I:RANGE::2::2::LP:NORMAL:U|11:T:RANGE::2::2::::|1
ORMAL:U|12:T:RANGE::6::2::::|12:I:RANGE::6::2::LP:NORMAL:U|13:T:RANGE::6::2::::|13:I:RANGE::6::2::LP
:6::2::::|14:I:RANGE::6::2::LP:NORMAL:U|15:T:RANGE::6::2::::|15:I:RANGE::6::2::LP:NORMAL:U|16:T:RANG
E::6::2::LP:NORMAL:U|17:T:RANGE::6::2::::|17:I:RANGE::6::2::LP:NORMAL:U|18:T:RANGE::6::2::::|18:I:RA
U|19:T:RANGE::6::2::::|19:I:RANGE::6::2::LP:NORMAL:U|20:T:RANGE::6::2::::|20:I:RANGE::6::2::LP:NORMA
:::|21:I:RANGE::6::2::LP:NORMAL:U|22:T:RANGE::6::2::::|22:I:RANGE::6::2::LP:NORMAL:U|23:T:RANGE::2::
2::LP:NORMAL:U|24:T:RANGE::2::2::::|24:I:RANGE::2::2::LP:NORMAL:U|25:T:RANGE::6::2::::|25:I:RANGE::6
:RANGE::6::2::::|26:I:RANGE::6::2::LP:NORMAL:U|27:T:RANGE::6::2::::|27:I:RANGE::6::2::LP:NORMAL:U|28
:I:RANGE::6::2::LP:NORMAL:U|29:T:RANGE::2::2::::|29:I:RANGE::2::2::LP:NORMAL:U|30:T:RANGE::1::1::::|
31:I:RANGE::1::1::LP:NORMAL:NU|31:I:RANGE::1::1::LP:NORMAL:NU|31:I:RANGE::1::1::LP:NORMAL:U|32:T:RAN
GE::1::1::LP:NORMAL:U|32:I:RANGE::1::1::LP:NORMAL:NU|33:T:RANGE::1::1::::|33:I:RANGE::1::1::LP:NORMA
::LP:NORMAL:U|34:T:RANGE::1::1::::|34:I:RANGE::1::1::LP:NORMAL:NU|34:I:RANGE::1::1::LP:NORMAL:NU|34:
MAL:U|35:T:RANGE::1::1::::|35:I:RANGE::1::1::LP:NORMAL:U|36:T:RANGE::1::1::::|36:I:RANGE::1::1::LP:N
::1::::|37:I:RANGE::1::1::LP:NORMAL:U|38:T:RANGE::1::1::::|38:I:RANGE::1::1::LP:NORMAL:NU|38:I:RANGE
39:T:RANGE::1::1::::|39:I:RANGE::1::1::LP:NORMAL:NU|40:T:RANGE::1::1::::|40:I:RANGE::1::1::LP:NORMAL
:LP:NORMAL:NU|41:T:RANGE::1::1::::|41:I:RANGE::1::1::LP:NORMAL:NU|41:I:RANGE::1::1::LP:NORMAL:NU|42:
I:RANGE::1::1::LP:NORMAL:NU|42:I:RANGE::1::1::LP:NORMAL:NU|42:I:RANGE::1::1::LP:NORMAL:NU|43:T:RANGE
::1::1::LP:NORMAL:NU|44:T:RANGE::1::1::::|44:I:RANGE::1::1::LP:NORMAL:NU|45:T:RANGE::1::1::::|45:I:R
:NU|45:I:RANGE::1::1::LP:NORMAL:NU|46:T:RANGE::1::1::::|46:I:RANGE::1::1::LP:NORMAL:NU|47:T:RANGE::1
::1::LP:NORMAL:NU|47:I:RANGE::1::1::LP:NORMAL:NU|48:T:RANGE::1::1::::|48:I:RANGE::1::1::LP:NORMAL:NU
:NORMAL:NU|49:T:RANGE::1::1::::|49:I:RANGE::1::1::LP:NORMAL:NU|49:I:RANGE::1::1::LP:NORMAL:NU|50:T:R
ANGE::1::1::LP:NORMAL:NU|51:T:RANGE::1::1::::|51:I:RANGE::1::1::LP:NORMAL:NU|52:T:RANGE::1::1::::|52
RMAL:NU|53:T:RANGE::1::1::::|53:I:RANGE::1::1::LP:NORMAL:NU|54:T:RANGE::1::1::::|54:I:RANGE::1::1::L
E::1::1::::|55:I:RANGE::1::1::LP:NORMAL:NU|56:T:RANGE::1::1::::|56:I:RANGE::1::1::LP:NORMAL:NU|57:T:
RANGE::1::1::LP:NORMAL:NU|58:T:RANGE::1::1::::|58:I:RANGE::1::1::LP:NORMAL:NU|58:I:RANGE::1::1::LP:N
1::1::::|59:I:RANGE::1::1::LP:NORMAL:NU|60:T:RANGE::1::1::::|60:I:RANGE::1::1::LP:NORMAL:NU|61:T:RAN
GE::1::1::LP:NORMAL:NU|62:T:RANGE::1::1::::|62:I:RANGE::1::1::LP:NORMAL:NU|62:I:RANGE::1::1::LP:NORM
1::::|63:I:RANGE::1::1::LP:NORMAL:NU|64:T:RANGE::1::1::::|64:I:RANGE::1::1::LP:NORMAL:NU|65:T:RANGE:
:1::1::LP:NORMAL:NU|66:T:RANGE::1::1::::|66:I:RANGE::1::1::LP:NORMAL:NU|67:T:RANGE::1::1::::|67:I:RA
NU|68:T:RANGE::1::1::::|68:I:RANGE::1::1::LP:NORMAL:NU|69:T:RANGE::1::1::::|69:I:RANGE::1::1::LP:NOR
:1::::|70:I:RANGE::1::1::LP:NORMAL:NU|70:I:RANGE::1::1::LP:NORMAL:U|71:T:LIST::1::1::::|71:I:LIST::1
:LIST:HASH:1:32-32:1:1:::|73:T:INTERVAL::1048575-9::1::::|73:I:INTERVAL::1048575-9::1::L:LOB:U|74:T:
1::::|75:T:RANGE::1::1::::|76:T:LIST::1::1::::|76:I:LIST::1::1::L:NORMAL:U|76:I:LIST::1::1::L:LOB:U|
77:I:RANGE::1::1::LP:NORMAL:NU|77:I:RANGE::1::1::L:NORMAL:NU|77:I:RANGE::1::1::L:NORMAL:NU|77:I:RANG
:XML-RANGE::3::1::::|78:I:RANGE::3::1::L:LOB:U|79:T:RANGE::1::1::::|79:I:RANGE::1::1::LP:NORMAL:NU|7
RMAL:NU|79:I:RANGE::1::1::L:NORMAL:NU|79:I:RANGE::1::1::L:LOB:U|
 
DBMS_FEATURE_PARTITION_USER
Data Dictionary Objects
SEG$ SYS_STUB_FOR_PURITY_ANALYSIS TABPART$
Detects user partitioning usage dbms_feature_partition_user(
is_used    OUT NUMBER,
data_ratio OUT NUMBER,
clob_rest  OUT CLOB);
set serveroutput on

SQL> DECLARE
  2   i NUMBER;
  3   j NUMBER;
  4   k CLOB;
  5  BEGIN
  6   dbms_feature_partition_user(i, j, k);
  7   dbms_output.put_line('1: ' || i);
  8   dbms_output.put_line('2: ' || j);
  9   dbms_output.put_line('3: ' || k);
 10 END;
 11 /
1: 1
2: 21.39
3:
1:T:RANGE::1::1::::|1:I:RANGE::1::1::L:NORMAL:NU|1:I:RANGE::1::1::L:LOB:U|1:I:RANGE::1::1::L:NORMAL:
P:NORMAL:NU|
 
DBMS_FEATURE_PILLAR_EHCC
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS V$SYSSTAT  
Detects Pillar Hybrid Columnar Compression use dbms_feature_pillar_ehcc(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_pillar_ehcc(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: EHCC on Pillar: 0
 
DBMS_FEATURE_PILLAR_STORAGE
Data Dictionary Objects
KDZSTORAGETYPE SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of Pillar Storage and returns the count and tablespace names dbms_feature_pillar_storage(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_pillar_storage(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: TS on Pillar: 0
 
DBMS_FEATURE_PLSQL_NATIVE
Data Dictionary Objects
NCOMP_DLL$ SYS_STUB_FOR_PURITY_ANALYSIS V$SYSAUX_OCCUPANTS
OBJ$ USER$  
Detects PL/SQL native compilation usage dbms_feature_plsql_native(
o_is_used   OUT NUMBER,
o_aux_count OUT NUMBER,
o_report    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
k CLOB;
BEGIN
  dbms_feature_plsql_native(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: <plsqlNativeReport date ="01-nov-2012 18:22">
<owner name="97" interpreted="1009"/>
<owner name="CTXSYS"
interpreted="185"/>
<owner name="DBSNMP" interpreted="15"/>
<owner name="98" interpreted="19"/>
<owner name="1279990"
interpreted="124"/>
<owner name="EXFSYS" interpreted="112"/>
<owner name="93" interpreted="1"/>
<owner name="31"
interpreted="22"/>
<owner name="91" interpreted="93"/>
<owner name="MDSYS" interpreted="555"/>
<owner name="OLAPSYS"
interpreted="2"/>
<owner name="35" interpreted="6"/>
<owner name="ORDPLUGINS" interpreted="10"/>
<owner name="ORDSYS"
interpreted="552"/>
<owner name="13" interpreted="1"/>
<owner name="SYS" interpreted="3407"/>
<owner name="SYSTEM"
interpreted="6"/>
<owner name="WMSYS" interpreted="107"/>
<owner name="XDB" interpreted="206"/>
</plsqlNativeReport>
 
DBMS_FEATURE_PRIV_CAPTURE
Data Dictionary Objects
CAPTURE_RUN_LOG$ PRIV_CAPTURE$ SYS_STUB_FOR_PURITY_ANALYSIS
Detects Privilege Capture usage dbms_feature_priv_capture(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_priv_capture(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 1
2: 1
3:
 
DBMS_FEATURE_QOSM
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS X$KYWMPCTAB  
Detects Oracle Quality of Service Manager usage dbms_feature_qosm(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_qosm(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2:
3:
 
DBMS_FEATURE_RAC
Data Dictionary Objects
GV$INSTANCE SYS_STUB_FOR_PURITY_ANALYSIS V$SYSTEM_PARAMETER
GV$LICENSE    
Detects whether the database is part of a RAC cluster dbms_feature_rac(
is_used   OUT NUMBER,
nodes     OUT NUMBER,
clob_rest OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_rac(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2:
3:
 
DBMS_FEATURE_RAS
Data Dictionary Objects
DBA_ROLE_PRIVS SYS_STUB_FOR_PURITY_ANALYSIS XS$OBJ
DBA_XS_APPLIED_POLICIES XS$ACE XS$PRIN
DBA_XS_ROLE_GRANTS XS$ACL XS$PRIV
RXS$SESSIONS XS$DSEC XS$SECCLS
Detects Real Application Security User dbms_feature_ras(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_ras(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 1
2: 0
3: Real Application Security usage not detected
 
DBMS_FEATURE_REGISTER_ALLFEAT
Data Dictionary Objects
DBA_ADVISOR_DEFINITIONS DBMS_FEATURE_USAGE SYS_STUB_FOR_PURITY_ANALYSIS
Run during installation and registers all features dbms_feature_register_allfeat;
exec dbms_feature_register_allfeat;
 
DBMS_FEATURE_REGISTER_ALLHWM
Data Dictionary Objects
DBMS_FEATURE_USAGE SYS_STUB_FOR_PURITY_ANALYSIS  
Run during installation and registers all feature high water marks dbms_feature_register_allhwm;
exec dbms_feature_register_allhwm;
 
DBMS_FEATURE_RESOURCE_MANAGER
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects Resource Manager usage dbms_feature_resource_manager(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_resource_manager(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Resource Manager usage not detected
 
DBMS_FEATURE_RMAN_BACKUP
Data Dictionary Objects
DBMS_BACKUP_RESTORE SYS_STUB_FOR_PURITY_ANALYSIS  
Detects RMAN for backup usage dbms_feature_rman_backup(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_rman_backup(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_RMAN_BASIC
Data Dictionary Objects
DBMS_BACKUP_RESTORE SYS_STUB_FOR_PURITY_ANALYSIS  
Detects RMAN BASIC Compression usage dbms_feature_rman_basic(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_rman_basic(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_RMAN_BZIP2
Data Dictionary Objects
DBMS_BACKUP_RESTORE SYS_STUB_FOR_PURITY_ANALYSIS  
Detects BZIP2 for Backup Compression usage dbms_feature_rman_bzip2(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_rman_bzip2(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_RMAN_DISK_BACKUP
Data Dictionary Objects
DBMS_BACKUP_RESTORE SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of RMAN for disk backup dbms_feature_rman_disk_backup(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_rman_disk_backup(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_RMAN_HIGH
Data Dictionary Objects
DBMS_BACKUP_RESTORE SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of RMAN HIGH compression dbms_feature_rman_high(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_rman_high(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_RMAN_LOW
Data Dictionary Objects
DBMS_BACKUP_RESTORE SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of RMAN LOW compression dbms_feature_rman_low(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_rman_low(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_RMAN_MEDIUM
Data Dictionary Objects
DBMS_BACKUP_RESTORE SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of RMAN MEDIUM compression dbms_feature_rman_medium(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_rman_medium(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_RMAN_TAPE_BACKUP
Data Dictionary Objects
DBMS_BACKUP_RESTORE SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of RMAN for tape backup dbms_feature_rman_tape_backup(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_rman_tape_backup(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_RMAN_ZLIB
Data Dictionary Objects
DBMS_BACKUP_RESTORE SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of ZLIB Compression dbms_feature_rman_zlib(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_rman_zlib(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_ROND
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS X$KJIDT  
Detect RAC One Node usage dbms_feature_rond(
is_used      OUT NUMBER,
aux_count    OUT NUMBER,
feature_info OUT CLOB;
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_rond(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Database is of type SINGLE
 
DBMS_FEATURE_RULESMANAGER
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects usage of Rules Manager and Expression Filters dbms_feature_rulesmanager(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_rulesmanager(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Rules Manager/Expression Filter usage not detected
 
DBMS_FEATURE_SECUREFILES_SYS
Data Dictionary Objects
LOB$ OBJ$ TAB$
LOBCOMPPART$ PARTLOB$ USER$
LOBFRAG$ SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of Oracle SecureFiles by SYS, SYSTEM, and XDB dbms_feature_securefiles_sys(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_securefiles_sys(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 402
2: 402
3:
 
DBMS_FEATURE_SECUREFILES_USR
Data Dictionary Objects
LOB$ OBJ$ TAB$
LOBCOMPPART$ PARTLOB$ USER$
LOBFRAG$ SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of Oracle SecureFiles by users other than SYS, SYSTEM, or XDB dbms_feature_securefiles_usr(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_securefiles_usr(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 327
2: 327
3:
 
DBMS_FEATURE_SEGADV_USER
Data Dictionary Objects
DBA_ADVISOR_EXECUTIONS DBMS_LOB WRI$_ADV_MESSAGE_GROUPS
DBA_ADVISOR_TASKS SYS_STUB_FOR_PURITY_ANALYSIS WRI$_ADV_RECOMMENDATIONS
DBA_FEATURE_USAGE_STATISTICS WRI$_ADV_FINDINGS  
Detects usage of Segment Advisor by tasks not named like 'SYS_AUTO_SPCADV%' dbms_feature_segadv_user(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_segadv_user(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Executions since last sample: 0, Total Executions: 0, Total Recommendations:
0, Projected Space saving (byte): 0
 
DBMS_FEATURE_SEG_MAIN_ONL_COMP
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS TABPART$ TABSUBPART$
Tracks the segments compressed as a result of an online partition maintenance operation like MOVE dbms_feature_seg_main_onl_comp(
isAnyFragCompressed OUT NUMBER,
numFragsCompressed  OUT NUMBER,
fragObjNumList      OUT CLOB)
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_seg_main_onl_comp(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
 
DBMS_FEATURE_SERVICES
Data Dictionary Objects
DBA_SERVICES SYS_STUB_FOR_PURITY_ANALYSIS V$PARAMETER
GV$ACTIVE_SERVICES    
Detects usage of Services dbms_feature_services(
is_used      OUT NUMBER,
hwm          OUT NUMBER,
feature_info OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_services(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Services usage not detected
 
DBMS_FEATURE_SFCOMPRESS_SYS
Data Dictionary Objects
LOB$ OBJ$ TAB$
LOBCOMPPART$ PARTLOB$ USER$
LOBFRAG$ SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of SecureFile Compression by SYS, SYSTEM, and XDB dbms_feature_sfcompress_sys(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_sfcompress_sys(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_SFCOMPRESS_USR
Data Dictionary Objects
LOB$ OBJ$ TAB$
LOBCOMPPART$ PARTLOB$ USER$
LOBFRAG$ SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of SecureFile Compression by a user other than SYS, SYSTEM, and XDB dbms_feature_sfcompress_usr(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_sfcompress_usr(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_SFDEDUP_SYS
Data Dictionary Objects
LOB$ OBJ$ TAB$
LOBCOMPPART$ PARTLOB$ USER$
LOBFRAG$ SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of SecureFile Deduplication by SYS, SYSTEM, and XDB dbms_feature_sfdedup_sys(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_sfdedup_sys(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_SFDEDUP_USR
Data Dictionary Objects
LOB$ OBJ$ TAB$
LOBCOMPPART$ PARTLOB$ USER$
LOBFRAG$ SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of SecureFile Deduplication by users other than SYS, SYSTEM, and XDB dbms_feature_sfdedup_usr(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_sfdedup_usr(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_SFENCRYPT_SYS
Data Dictionary Objects
LOB$ OBJ$ TAB$
LOBCOMPPART$ PARTLOB$ USER$
LOBFRAG$ SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of SecureFile Encryption by SYS, SYSTEM, and XDB dbms_feature_sfencrypt_sys(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_sfencrypt_sys(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_SFENCRYPT_USR
Data Dictionary Objects
LOB$ OBJ$ TAB$
LOBCOMPPART$ PARTLOB$ USER$
LOBFRAG$ SYS_STUB_FOR_PURITY_ANALYSIS  
Detects use of SecureFile Encryption by other than SYS, SYSTEM, and XDB dbms_feature_sfencrypt_usr(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_sfencrypt_usr(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_SHARD
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects use of database is a database shard dbms_feature_shard(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

SQL> DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_shard(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
DECLARE
*
ERROR at line 1:
ORA-01403: no data found
ORA-06512: at "SYS.DBMS_FEATURE_SHARD", line 22
ORA-06512: at line 6
 
DBMS_FEATURE_SPD
Data Dictionary Objects
DBA_SQL_PLAN_DIRECTIVES DBMS_SPD X$KSPPCV
DBA_SQL_PLAN_DIR_OBJECTS DUAL X$KSPPI
DBMS_LOB SYS_STUB_FOR_PURITY_ANALYSIS  
Detect statistics incremental maintenance usage dbms_feature_spd(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_spd(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 3
2: 87
3: Number of directives with type, DYNAMIC_SAMPLING: 87
Number of Directives with reason, SINGLE TABLE CARDINALITY MISESTIMATE: 45
Number of Directives with reason, JOIN CARDINALITY MISESTIMATE: 36
Number of Directives with reason, GROUP BY CARDINALITY MISESTIMATE: 6
Number of Directives with state, PERMANENT: 16
Number of Directives with state, MISSING_STATS: 5
Number of Directives with state, HAS_STATS: 28
Number of Directives with state, NEW: 38
Number of Directive objects: 237, subobjects: 93
spd_retention_weeks: 53
_sql_plan_directive_mgmt_control: 3
_optimizer_dsdir_usage_control: 126
 
DBMS_FEATURE_STATS_INCREMENTAL
Data Dictionary Objects
ALL_TAB_STAT_PREFS DBMS_STATS SYS_STUB_FOR_PURITY_ANALYSIS
DBMS_LOB DUAL WRI$_OPTSTAT_SYNOPSIS_HEAD$
Use of incremental statistics collection dbms_feature_stats_incremental(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_stats_incremental(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Incremental global preference on : FALSE, Number of tables with table level
incremental maintenance preference turned on: 0, Number of tables with table
level incremental maintenance preference turned off: 0, Number of tables that
have had statistics gathered in incremental mode: 0
 
DBMS_FEATURE_STREAMS
Data Dictionary Objects
DBA_APPLY DBA_PROPAGATION SYS_STUB_FOR_PURITY_ANALYSIS
DBA_CAPTURE    
Detects Streams use dbms_feature_streams(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_streams(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: tcap:0 dscap:0 app:0 prop:0
 
DBMS_FEATURE_TEST_PROC_1
Undocumented: Return values are hard coded

I hope someone was paid well for this amazing piece of engineering.
dbms_feature_test_proc_1(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_test_proc_1(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 12
3:
 
DBMS_FEATURE_TEST_PROC_2
Undocumented: Return values are hard coded

I hope someone was paid well for this amazing piece of engineering.
dbms_feature_test_proc_2(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_test_proc_2(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 1
2: 33
3: Extra Feature Information for TEST_PROC_2
 
DBMS_FEATURE_TEST_PROC_3
Does nothing but return the value 101. Contains the following comment: "/* doesn't matter what I do here as long as the values get * returned correctly. */"

I hope someone was paid well for this amazing piece of engineering.
dbms_feature_test_proc_3(current_value OUT NUMBER);
set serveroutput on

DECLARE
 i NUMBER;
BEGIN
  dbms_feature_test_proc_3(i);
  dbms_output.put_line('1: ' || i);
END;
/
1: 101
 
DBMS_FEATURE_TEST_PROC_4
Data Dictionary Objects
DBMS_STANDARD    
Intentionally raises an exception. Contains the following comment: "/* raise an application error to make sure the error is being * handled correctly */ raise_application_error(-20020, 'Error for Test Proc 4 ');" dbms_feature_test_proc_4(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_test_proc_4(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
DECLARE
*
ERROR at line 1:
ORA-20020: Error for Test Proc 4
ORA-06512: at "SYS.DBMS_FEATURE_TEST_PROC_4", line 11
ORA-06512: at line 6
 
DBMS_FEATURE_TEST_PROC_5
Does nothing but contains the following comment: "/* What happens if values are not set? */"

Next time perhaps they will just "Ask Tom."
dbms_feature_test_proc_5(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_test_proc_5(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1:
2:
3: TEST PROC 5
 
DBMS_FEATURE_THP
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS V$ASM_ATTRIBUTE  
Detects use of ASM Thin Provisioning dbms_feature_thp(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_thp(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2:
3:
 
DBMS_FEATURE_TSDP
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects Transparent Sensitive Data Protection Policy usage dbms_feature_tsdp(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_tsdp(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Transparent Sensitive Data Protection feature not used
 
DBMS_FEATURE_UNIFIED_AUDIT
Data Dictionary Objects
AUDIT_NG$ AUD_CONTEXT$ SYS_STUB_FOR_PURITY_ANALYSIS
AUDIT_UNIFIED_POLICIES AUD_POLICY$ V$OPTION
Detects usage of Unified Audit dbms_feature_unified_audit(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_unified_audit(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 1
2: 0
3: Number of Unified Audit policies=7; Number of Enabled Unified Audit
policies=1; Number of Unified Audit policies with condition=0; Number of Unified
Audit policies on DV=0; Number of Unified Audit policies on OLS=0; Number of
Unified Audit policies on XS=4; Number of Unified Audit policies on DATAPUMP=0;
Number of Enabled Unified Audit Contexts=0
 
DBMS_FEATURE_USER_MVS
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects usage of Materialized Views dbms_feature_user_mvs(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_user_mvs(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: User MVs do not exist.
 
DBMS_FEATURE_UTILITIES1
Data Dictionary Objects
DBA_FEATURE_USAGE_STATISTICS KU_UTLUSE SYS_STUB_FOR_PURITY_ANALYSIS
Detects usage of DataPump Export and associated compression and encryption dbms_feature_utilities1(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_utilities1(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Oracle Utility Datapump (Export) invoked: 0 times, compression used: 0 times
(BASIC algorithm used: 0 times, LOW algorithm used: 0 times, MEDIUM algorithm
used: 0 times, HIGH algorithm used: 0 times), encryption used: 0 times (AES128
algorithm used: 0 times, AES192 algorithm used: 0 times, AES256 algorithm used:
0 times, PASSWORD mode used: 0 times, DUAL mode used: 0 times, TRANSPARENT mode
used: 0 times), parallel used: 0 times
 
DBMS_FEATURE_UTILITIES2
Data Dictionary Objects
DBA_FEATURE_USAGE_STATISTICS KU_UTLUSE SYS_STUB_FOR_PURITY_ANALYSIS
Detects usage of DataPump Import and associated compression and encryption dbms_feature_utilities2(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_utilities2(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Oracle Utility Datapump (Import) invoked: 0 times, parallel used: 0 times
 
DBMS_FEATURE_UTILITIES3
Data Dictionary Objects
DBA_FEATURE_USAGE_STATISTICS KU_UTLUSE SYS_STUB_FOR_PURITY_ANALYSIS
Detects usage of Metadata API and associated compression and encryption dbms_feature_utilities3(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_utilities3(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 6
2: 6
3:
 
DBMS_FEATURE_UTILITIES4
Data Dictionary Objects
DBA_FEATURE_USAGE_STATISTICS KU_UTLUSE SYS_STUB_FOR_PURITY_ANALYSIS
Detects usage of External Tables and associated compression and encryption dbms_feature_utilities4(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_utilities4(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Oracle Utility External Table invoked: 0 times, compression used: 0 times
(BASIC algorithm used: 0 times, LOW algorithm used: 0 times, MEDIUM algorithm
used: 0 times, HIGH algorithm used: 0 times), encryption used: 0 times
 
DBMS_FEATURE_UTILITIES5
Data Dictionary Objects
DBA_FEATURE_USAGE_STATISTICS KU_UTLUSE SYS_STUB_FOR_PURITY_ANALYSIS
Detects external tables (ORACLE_LOADER) use dbms_feature_utilities5(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_utilities5(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 41
2: 41
3: Oracle Utility External Table (ORACLE_LOADER) invoked 41 times
 
DBMS_FEATURE_UTILITIES6
Data Dictionary Objects
DBA_FEATURE_USAGE_STATISTICS KU_UTLUSE SYS_STUB_FOR_PURITY_ANALYSIS
Detects external tables (ORACLE_BIGSQL) use dbms_feature_utilities6(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_utilities6(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Oracle Utility External Table (ORACLE_BIGSQL) invoked 0 times
 
DBMS_FEATURE_VPD
Data Dictionary Objects
DBA_POLICIES DBA_SEC_RELEVANT_COLS DBMS_UTILITY
DBA_POLICY_ATTRIBUTES DBA_USERS SYS_STUB_FOR_PURITY_ANALYSIS
Counts Virtual Private Database (Row Level Security) usage dbms_feature_vpd(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_vpd(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: Number of policies=0, Number of enabled policies=0, Number of objects that have VPD policies=0, Number of policies on
SELECT statement=0, Number of policies on INSERT statement=0, Number of policies on UPDATE statement=0, Number of
policies on DELETE statement=0, Number of policies on INDEX statement=0, Number of DYNAMIC policies=0, Number of STATIC
policies=0, Number of SHARED_STATIC policies=0, Number of CONTEXT_SENSITIVE policies=0, Number of
SHARED_CONTEXT_SENSITIVE policies=0, Number of attribute associated CONTEXT_SENSITIVE policies=0, Number of policies with
long predicate=0, Number of COLUMN LEVEL policies=0, Number of COMMON policies=0, Number of INHERITED policies=0
 
DBMS_FEATURE_WCR_CAPTURE
Data Dictionary Objects
DBA_FEATURE_USAGE_STATISTICS DUAL V$DATABASE
DBA_WORKLOAD_CAPTURES SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage for Workload Capture dbms_feature_wcr_capture(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_wcr_capture(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_WCR_REPLAY
Data Dictionary Objects
DBA_FEATURE_USAGE_STATISTICS DUAL V$DATABASE
DBA_WORKLOAD_REPLAYS SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage for Workload Replay dbms_feature_wcr_replay(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_wcr_replay(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3:
 
DBMS_FEATURE_XDB
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects usage for XDB dbms_feature_xdb(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_xdb(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: <xdb_feature_usage>SYSTEM</xdb_feature_usage>
 
DBMS_FEATURE_XSTREAM_IN
Data Dictionary Objects
DBA_APPLY SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of XStreams Input dbms_feature_xstream_in(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_xstream_in(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: app:0
 
DBMS_FEATURE_XSTREAM_OUT
Data Dictionary Objects
DBA_APPLY DBA_CAPTURE SYS_STUB_FOR_PURITY_ANALYSIS
Detects usage of XStreams Output dbms_feature_xstream_out(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_xstream_out(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: tcap:0 dscap:0 app:0
 
DBMS_FEATURE_XSTREAM_STREAMS
Data Dictionary Objects
DBA_APPLY DBA_PROPAGATION SYS_STUB_FOR_PURITY_ANALYSIS
DBA_CAPTURE    
Detects XStreams use for services dbms_feature_xstream_streams(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_xstream_streams(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: tcap:0 dscap:0 app:0 prop:0
 
DBMS_FEATURE_ZFS_EHCC
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS    
Detects usage of ZFS Hybrid Columnar Compression dbms_feature_zfs_ehcc(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_zfs_ehcc(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: EHCC on ZFS: 0
 
DBMS_FEATURE_ZFS_STORAGE
Data Dictionary Objects
KDZSTORAGETYPE SYS_STUB_FOR_PURITY_ANALYSIS  
Detects usage of ZFS Storage dbms_feature_zfs_storage(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_zfs_storage(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: TS on ZFS: 0
 
DBMS_FEATURE_ZMAP
Data Dictionary Objects
CLST$ SEG$ SYS_STUB_FOR_PURITY_ANALYSIS
CLSTDIMENSION$ SUM$ TAB$
CLSTKEY$ SUMDETAIL$  
Detect usage of Zone maps dbms_feature_zmap(
feature_boolean OUT NUMBER,
num_cells       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_feature_zmap(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 0
3: { "data": ] }
 
DBMS_HWM_PRIM_SHARDS
Data Dictionary Objects
GSMADMIN_INTERNAL.CLOUD GSMADMIN_INTERNAL.DATABASE SYS_STUB_FOR_PURITY_ANALYSIS
Detects the number of deployed primary shards in the catalog dbms_hwm_prim_shards(current_value OUT NUMBER);
set serveroutput on

DECLARE
 retVal NUMBER;
BEGIN
  dbms_hwm_prim_wshards(retVal);
  dbms_output.put_line(TO_CHAR(retVal));
END;
/
0
 
DBMS_HWM_SHARDS
Data Dictionary Objects
GSMADMIN_INTERNAL.CLOUD GSMADMIN_INTERNAL.DATABASE SYS_STUB_FOR_PURITY_ANALYSIS
Detects the number of deployed shards in the catalog dbms_hwm_shards(current_value OUT NUMBER);
set serveroutput on

DECLARE
 retVal NUMBER;
BEGIN
  dbms_hwm_shards(retVal);
  dbms_output.put_line(TO_CHAR(retVal));
END;
/
0
 
DBMS_PDB_NUM
Data Dictionary Objects
SYS_STUB_FOR_PURITY_ANALYSIS V$DATABASE V$PDBS
Returns the number of PDBs detected dbms_feature_acfs(
feature_boolean OUT NUMBER,
aux_count       OUT NUMBER,
feature_info    OUT CLOB);
set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k CLOB;
BEGIN
  dbms_pdb_num(i, j, k);
  dbms_output.put_line('1: ' || i);
  dbms_output.put_line('2: ' || j);
  dbms_output.put_line('3: ' || k);
END;
/
1: 0
2: 6
3:

Related Topics
Active Data Guard
Auditing
AWR
Built-in Functions
Built-in Packages
CARTRIDGE
Compression
DBLRA
DBMS_DATAPUMP
DBMS_DATA_REDACTION
DBMS_FEATURE_USAGE
DBMS_FEATURE_USAGE_REPORT
DBMS_RESOURCE_MANAGER
DBMS_STREAMS_ADMIN
DBMS_WORKLOAD_CAPTURE
DBMS_WORKLOAD_REPLAY
Exadata
In-Memory Database
SecureFiles
What's New In 18c
What's New In 19c
ZFS