Oracle PRVT_COMPRESS
Version 26ai

General Information
Library Note Morgan's Library Page Header
The best Oracle News for FY2026

Oracle Database 26ai will be available on generic Linux platforms in January and soon on AIX and Windows
Purpose Undocumented support for likely for Advanced and/or Hybrid Columnar Compression
AUTHID DEFINER
Dependencies
DBMS_COMPRESSION TAB$ TS$
DBMS_INMEMORY_LIB TABPART$ V$IM_SEGMENTS_DETAIL
PRVT_COMPRESSION TABSUBPART$ V$PARAMETER
SEG$    
Documented No
First Available Not known
Security Model Owned by SYS with no privileges granted
Source {ORACLE_HOME}/rdbms/admin/prvtcmpr.plb
Subprograms
 
COMP_POPULATE (new 23ai)
Undocumented prvt_compress.comp_populate(
schema_name    IN VARCHAR2,
table_name     IN VARCHAR2,
partition_name IN VARCHAR2)
RETURN NUMBER;
TBD
 
GET_ARCH_COMP
Undocumented prvt_compress.get_arch_comp(
dobjno  IN NUMBER,
dictobj IN NUMBER,
objtype IN NUMBER)
RETURN BOOLEAN;
conn / as sysdba

CREATE TABLE comp_all_oper
COMPRESS FOR ALL OPERATIONS AS
SELECT * FROM tab$;

SELECT o.obj#, o.dataobj#, o.type#
FROM obj$ o
WHERE o.name = 'COMP_ALL_OPER';

      OBJ#   DATAOBJ#      TYPE#
---------- ---------- ----------
     78810      78810          2


BEGIN
  IF prvt_compress.get_arch_comp(78810,78810,2) THEN
    dbms_output.put_line('T');
  ELSE
    dbms_output.put_line('F');
  END IF;
END;
/
*
ORA-01403: no data found


-- it appears that the TYPE# returned in the above query is the what this function
-- wants as replacing the "2" with a "1" eliminates the exception


BEGIN
  IF prvt_compress.get_arch_comp(78810, 78810, 1) THEN
    dbms_output.put_line('T');
  ELSE
    dbms_output.put_line('F');
  END IF;
END;
/
F
 
GET_COMPATIBLE
Undocumented prvt_compress.get_arch_comp(p_first4 OUT NUMBER);
DECLARE
 outVal NUMBER;
BEGIN
  prvt_compress.get_compatible(outVal);
  dbms_output.put_line(TO_CHAR(outVal));
END;
/
23
 
GET_TSNO (new 23ai)
Undocumented prvt_compress.get_tsno(tsname IN VARCHAR2) RETURN NUMBER;
SELECT prvt_compress.get_tsno('SYSAUX')

PRVT_COMPRESS.GET_TSNO('SYSAUX')
--------------------------------
                               1


SELECT prvt_compress.get_tsno('SYSAUX')

PRVT_COMPRESS.GET_TSNO('TEMP')
------------------------------
                             3
 
GET_TS_NUM
Undocumented prvt_compress.get_ts_num(
dobjno  IN NUMBER,
dictobj IN VARCHAR2,
objtype IN VARCHAR2)
RETURN NUMBER;
SELECT DISTINCT obj#, dataobj#, ts#
FROM tabpart$
WHERE rownum < 6;

      OBJ#   DATAOBJ#        TS#
---------- ---------- ----------
      6445       6445          1
      6451       6451          1
      6461       6461          1
      7584       7584          0
      7585       7585          0


DECLARE
 retVal NUMBER;
BEGIN
  retVal := prvt_compress.get_ts_num(6445, 6445, 'PARTITION');
  dbms_output.put_line(TO_CHAR(retVal));
END;
/
*
ORA-01403: no data found
 
POST_LOAD_TAB_INMEMORY (new 23ai)
Undocumented prvt_compress.post_load_tab_inmemory;
exec prvt_compress.post_load_tab_inmemory;

PL/SQL procedure successfully completed.
 
POST_LOAD_TAB_INMEMORY_CHECK (new 23ai)
Undocumented prvt_compress.post_load_tab_inmemory_check(
objd      IN  NUMBER,
imc_bytes OUT NUMBER)
RETURN BOOLEAN;
TBD
 
PRE_LOAD_TAB_INMEMORY (new 23ai)
Undocumented prvt_compress.pre_load_tab_inmemory(imemsize OUT NUMBER) RETURN BOOLEAN;
TBD

Related Topics
Advanced Compression
Built-in Functions
Built-in Packages
DBMS_COMPRESSION
LOB Compression
PRVT_COMPRESSION
UTL_COMPRESS
What's New In 21c
What's New In 26ai

Morgan's Library Page Footer
This site is maintained by Daniel Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2026 Daniel A. Morgan All Rights Reserved