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','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' );

猜你喜欢

转载自dengyll.iteye.com/blog/1489016