• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    oracle如何使用java source调用外部程序

    需求

    Oracle调用第三方外部程序。Oracle使用sqluldr2快速导出大批量数据,然后用winrar压缩后发送邮件。

    源码

    java source

    create or replace and compile java source named jv_run_extpro as 
    
    import java.io.*; 
    import java.lang.*; 
    import java.util.*; 
    import java.sql.*; 
    import oracle.sql.*; 
    publicclass jv_run_extpro 
    { 
    publicstaticvoid run(String cmd) throws IOException 
    { 
    Process p=Runtime.getRuntime().exec(cmd); 
    StreamGobbler errorGobbler = new StreamGobbler(p.getErrorStream(), "Error"); 
    StreamGobbler outputGobbler = new StreamGobbler(p.getInputStream(), "Output"); 
    errorGobbler.start(); 
    outputGobbler.start(); 
    try
    
    { 
    p.waitFor(); 
    } 
    catch(InterruptedException ie) 
    { 
    System.out.println(ie); 
    } 
    } 
    
    publicstaticclass
     StreamGobbler extends Thread { 
     InputStream is; 
    String type; 
    
    
    public StreamGobbler(InputStream is, String type) { 
    this.is = is; 
    this.type = type; 
    
    } 
    
     
    
    publicvoid run() { 
    try { 
    InputStreamReader isr = new InputStreamReader(is); 
    BufferedReader br = new BufferedReader(isr); 
    String line = null; 
    while ((line = br.readLine()) != null) { 
    if (type.equals("Error")) { 
    System.out.println("Error :" + line); 
    } else { 
    System.out.println("Debug:" + line); 
    } 
    } 
    } catch (IOException ioe) { 
    ioe.printStackTrace(); 
    
    } 
    
    } 
    
    } 
    
    } 
    
     
    
    

    存储过程

    create or replace procedure pro_jv_run_extpro(p_cmd varchar2) as

    language java name 'jv_run_extpro.run(java.lang.String)';

    调用

    begin 
    
    pro_jv_run_extpro('sqluldr264.exe scott/hh@pdborcl query="select * from emp" field=, head=yes file=D:\Desktop\tmp\sqluldr2\OUT2.TXT'); 
    pro_jv_run_extpro('"D:\Program Files\WinRAR\Rar.exe" a -ep -df "D:\Desktop\tmp\sqluldr2\20160916.rar" "D:\Desktop\tmp\sqluldr2\OUT2.TXT"');
     
    end; 
    

    总结

    Java source里StreamGobbler这个类不能少,用于异步读取命令的输出。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • Java如何基于ProcessBuilder类调用外部程序
    • Java编程使用Runtime和Process类运行外部程序的方法
    • Java基于Runtime调用外部程序出现阻塞的解决方法
    • Java 进程执行外部程序造成阻塞的一种原因
    • Java魔法堂之调用外部程序的方法
    上一篇:Oracle 监听器密码设置方法(LISTENER)
    下一篇:Oracle例外用法实例详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    oracle如何使用java source调用外部程序 oracle,如何,使用,java,source,