zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

JAVAOracle程序 使用 如何 调用 外部 source
2023-06-13 09:20:04 时间

需求

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

p.waitFor(); 

catch(InterruptedException ie) 

System.out.println(ie); 

publicstaticclass

 StreamGobbler extends Thread { 

 InputStream is; 

String type; 


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这个类不能少,用于异步读取命令的输出。

本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!


我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题

本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 oracle如何使用java source调用外部程序