oracle 执行java_oracle执行java代码

>','read ,write, execute, delete');

Dbms_java.grant_permission('PSIID', 'SYS:java.io.FilePermission', '<>','read ,write, execute, delete');

Dbms_Java.Grant_Permission('PSIID', 'java.io.FilePermission', 'd:a.bat','read ,write, execute, delete');

dbms_java.grant_permission('PSIID', 'java.lang.RuntimePermission','*','writeFileDescriptor' );

end;

/

--2、登陆psiid用户创建java程序资源

create or replace and compile

java source named "Util"

as

import java.io.*;

import java.lang.*;

public class Util extends Object

{

public static int RunThis(String args)

{

Runtime rt = Runtime.getRuntime();

int rc = -1;

try

{

Process p = rt.exec(args);

int bufSize = 4096;

BufferedInputStream bis =

new BufferedInputStream(p.getInputStream(), bufSize);

int len;

byte buffer[] = new byte[bufSize];

// Echo back what the program spit out

while ((len = bis.read(buffer, 0, bufSize)) != -1)

System.out.write(buffer, 0, len);

rc = p.waitFor();

}

catch (Exception e)

{

e.printStackTrace();

rc = -1;

}

finally

{

return rc;

}

}

}

/

--3、创建调用Java资源的函数

create or replace function RUN_CMD(p_cmd in varchar2) return number

as

language java name 'Util.RunThis(java.lang.String) return integer';

/

--4、建立一过程调用存储过程

create or replace procedure RUN(p_cmd in varchar2)

as

x number;

begin

x := run_cmd(p_cmd);

end;

/

------------------------------

------- 执行例子

-------------------------------

--d:a.bat 文件

cd d:

rename %1 %2

SQL> exec rc('d:a.bat mytest.sql b.sql') ;

D:oracleora92DATABASE>cd d:

D:>rename mytest.sql b.sql

exec :x := RUN_CMD('ipconfig');

variable x number;

exec dbms_java.set_output(100000);

exec :x := RUN_CMD('ipconfig');

exec :x := RUN_CMD('d:a.bat') ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值