DBA Data[Home] [Help]

PACKAGE BODY: SYS.JVMRJBC

Source


1 package body jvmrjbc as
2 function init return VARCHAR2 as
3   sessid VARCHAR2(100);
4 begin
5   loop
6     begin
7       sessid := dbms_pipe.unique_session_name||dbms_crypto.randombytes(35);
8       insert into java$jvm$rjbc values (sessid, null, empty_blob);
9       commit;
10       return sessid;
11     exception when others then
12       if sqlcode not in (-1) then raise; end if;
13     end;
14   end loop;
15 end;
16 
17 procedure putpath(sessid VARCHAR2, pathname VARCHAR2) as
18 begin
19     update java$jvm$rjbc set path=pathname where id=sessid;
20     commit;
21 end;
22 
23 function getlob(sessid VARCHAR2) return BLOB as
24       lob BLOB;
25 begin
26       select lob into lob from java$jvm$rjbc where id=sessid;
27       return lob;
28 end;
29 
30 function getpath(sessid VARCHAR2) return VARCHAR2 as
31       p VARCHAR2(4000);
32 begin
33       select path into p from java$jvm$rjbc where id=sessid;
34       return p;
35 end;
36 
37 procedure putlob(sessid VARCHAR2, l BLOB) as
38   tl BLOB;
39 begin
40     select lob into tl from java$jvm$rjbc where id=sessid for update;
41     dbms_lob.trim(tl, 0);
42     dbms_lob.append(tl, l);
43     commit;
44 end;
45 
46 procedure done(sessid VARCHAR2) as
47 begin
48     delete from java$jvm$rjbc where id=sessid;
49     commit;
50 end;
51 
52 end jvmrjbc;