General Information
Library Note
Morgan's Library Page Header
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;
/