Oracle PRVT_COMPRESS
Version 26ai

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

Oracle Database 26ai is now availble. If you haven't you downloaded already: Why?
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