存储过程调用bat文件

喜你入骨 提交于 2019-12-27 03:06:48

创建java source

CREATE OR REPLACE and COMPILE JAVA SOURCE NAMED exesyscommand as 
import java.io.*;
public class ExeSysCommand {
    public static String ExeCmd(String cmd){
        Process proc =null;
        int exitVlue;
        try{
            System.out.println(cmd);
            proc = Runtime.getRuntime().exec(cmd);
            exitVlue = proc.waitFor();
            if (exitVlue == 0){
                return "PASS";
            } else {
                return  "FAIL";
            }
        } catch (Exception e){
                return  e.getMessage();
            }
        }

    public static void main(String[] args) {
        System.out.println("--------------------------");
        System.out.println(ExeCmd(args[0]));
        System.out.println("--------------------------");
    }
}

创建function调用javasource

CREATE OR REPLACE FUNCTION ExeCmd
           (cmd string) 
          RETURN varchar2
          IS
          LANGUAGE JAVA NAME 'ExeSysCommand.ExeCmd(java.lang.String) return java.lang.String';

授权用户执行java的权限

exec dbms_java.grant_permission( 'JYCRMX', 'SYS:java.io.FilePermission', 'D:\01_import.bat', 'execute');

exec dbms_java.grant_permission( 'JYCRMX', 'SYS:java.io.FilePermission', '<>', 'execute');

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!