Oracle JVMRJBC
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 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