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','<>','read ,write, execute, delete');
Dbms_java.grant_permission('ORACLE','SYS:java.io.FilePermission','<>','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');