日期:2014-05-16  浏览次数:20431 次

oracle Java源定时执行exe程序

create or replace and compile java source named rundx as
import?? java.io.*;????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
public?? class?? RunDx{???????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??? public?? static?? String?? Run(String JOBID){???????????????????????????????????????????????????????????????????????????
????????? try{???????????????????????????????????
System.out.println( "success ");
Runtime.getRuntime().exec("D:\\DxptTimeSystem\\DxptTimeSystem.exe");
System.out.println("ok");
??????????????? return( "0 ");?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????????? }?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????????? catch?? (Exception?? e){???????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????? System.out.println( "Error?? running?? command: "?? +?? e.getMessage());?????????
??????????????? return(e.getMessage());?????
????????? }?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??? }???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
}

?

?

存储过程:

create or replace procedure RunDx(P_JOB in varchar2) as language java name?? 'RunDx.Run(java.lang.String)';

?

JOB:

begin
sys.dbms_job.submit(job => :job,
????????????????????? what => 'RUNDX;',
????????????????????? next_date => to_date('01-01-4000', 'dd-mm-yyyy'),
????????????????????? interval => 'sysdate+1');
sys.dbms_job.broken(job => :job,
????????????????????? broken => true,
????????????????????? next_date => to_date('01-01-4000', 'dd-mm-yyyy'));
commit;
end;
/

?

对目录、文件进行操作时,以SYS用户登录执行

execute dbms_java.grant_permission('TXGS','SYS:java.io.FilePermission','C:\TempImageFiles\*','delete');

Dbms_Java.Grant_Permission('ORACLE',