Oracle JVMRJBC
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 The source file states: "This package defines the API to java$jvm$rjbc and related routines."

Another source identifies it as: "JVM utility for working with LOBs (initdbj)."

Likely both are correct.
AUTHID DEFINER
Dependencies
BMS_CRYPTO DBMS_PIPE JVMRJBCINV
DBMS_LOB JAVA$JVM$RJBC  
Documented No
First Available Not Known
Security Model Owned by SYS with EXECUTE granted to PUBLIC
Source {ORACLE_HOME}/javavm/install/initdbj.sql
Subprograms
 
DONE
Closes a session identifier jvmrjbc.done(sessid IN VARCHAR2);
DECLARE
 inVal dbms_id :=
'ORA$PIPE$00BA74A4000171CBDF0007BA4C499FED03B1D4B239C9F61B9E92AA2F30692AD1B6AFE0FDC2FFF01945';
BEGIN
  jvmrjbc.done(inVal);
END;
/

PL/SQL procedure successfully completed.
 
GETLOB
Returns the BLOB loaded with PUTLOB jvmrjbc.getLOB(sessid IN VARCHAR2) RETURN BLOB;
DECLARE
 sid    dbms_id :=
'ORA$PIPE$00BA74A400012BD2510A70A92DFD2F8F623A60BFC19C1A83339E785F3386AE385F27D8F08D3FAAEB00';
 retVal BLOB;
BEGIN
  retVal := jvmrjbc.getLOB(sid);
  dbms_output.put_line(TO_CHAR(dbms_lob.getLength(retVal)));
END;
/
0

PL/SQL procedure successfully completed.
 
GETPATH
Returns the path loaded with PUTPATH jvmrjbc.getPath(sessid IN VARCHAR2) RETURN VARCHAR2;
DECLARE
 sid    dbms_id :=
'ORA$PIPE$00BA74A400012BD2510A70A92DFD2F8F623A60BFC19C1A83339E785F3386AE385F27D8F08D3FAAEB00';
 retVal dbms_id;
BEGIN
  retVal := jvmrjbc.getPath(sid);
  dbms_output.put_line(retVal);
END;
/

PL/SQL procedure successfully completed.
 
INIT
Initialize a session identifier jvmrjbc.init RETURN VARCHAR2;
DECLARE
 retVal dbms_id;
BEGIN
  retVal := jvmrjbc.init;
  dbms_output.put_line(retVal);
END;
/
ORA$PIPE$00969B680001572C887EF78338F52BD26CB7487364EEC85603859958A96BD913AB17695919E406D030

PL/SQL procedure successfully completed.
 
PUTLOB
Loads the BLOB returned by GETLOB jvmrjbc.putLOB(
sessid IN VARCHAR2,
l      IN BLOB);
See PUTPATH Demo Below
 
PUTPATH
Sets the path returned by GETPATH jvmrjbc.putPath(
sessid   IN VARCHAR2,
pathname IN VARCHAR2);
-- return a list of tables with BLOB columns
SELECT dtc.table_name, dtc.column_name
FROM dba_tab_cols dtc, dba_tables dt
WHERE dtc.owner = 'SYS'
AND dtc.owner = dt.owner
AND dtc.table_name = dt.table_name
AND dt.num_rows > 0
AND dtc.data_type = 'BLOB'
ORDER BY 1;

-- find one of the tables with a BLOB column that contains a BLOB for use below
SELECT dbms_lob.getLength(awlob)
FROM aw$awcreate
WHERE dbms_lob.getLength(awlob) > 0;

DECLARE
 sessid dbms_id;
 pname  dbms_id;
 iBlob  BLOB;
 oBlob  BLOB;
BEGIN
  sessid := jvmrjbc.init;
  dbms_output.put_line('Session ID: ' || sessid);
  jvmrjbc.putPath(sessid, 'c:\temp\');
  pname := jvmrjbc.getPath(sessid);
  dbms_output.put_line('PathName: ' || pname);

  SELECT awlob INTO iBlob
  FROM aw$awcreate
  WHERE dbms_lob.getLength(awlob) > 0
  AND rownum = 1;

  jvmrjbc.putLob(sessid, iBlob);
  oBlob := jvmrjbc.getLOB(sessid);
  dbms_output.put_line(dbms_lob.getLength(oBlob));

  jvmrjbc.done(sessid);
END;
/

Related Topics
Built-in Functions
Built-in Packages
Database Security
JVMFCB
JVMRJBCINV
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