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

posted on 2010-07-02 09:04  松原蔡晓冬  阅读(1552)  评论(0编辑  收藏  举报

导航