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','java.io.FilePermission',?'<<ALL FILE>>','read ,write, execute, delete');
Dbms_java.grant_permission('ORACLE',?'SYS:java.io.FilePermission',?'<<ALL FILES>>','read ,write, execute, delete');
Dbms_Java.Grant_Permission('ORACLE',?'java.io.FilePermission',?'%systemroot%\system32\cmd.exe','read ,write, execute, delete');
dbms_java.grant_permission('ORACLE',?'java.lang.RuntimePermission','*','writeFileDescriptor'?);