一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Oracle - oracle如何使用java source調用外部程序

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

2019-12-31 15:15mellowsmile Oracle

這篇文章主要為大家介紹了oracle如何使用java source調用外部程序,感興趣的小伙伴們可以參考一下

需求

Oracle調用第三方外部程序。Oracle使用sqluldr2快速導出大批量數據,然后用winrar壓縮后發送郵件。

源碼

java source

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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)';

調用

?
1
2
3
4
5
6
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這個類不能少,用于異步讀取命令的輸出。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 暴露狂婷婷医院暴露tx | nxgx国产| 逼逼日| 热国产热综合 | a级精品九九九大片免费看 a级动漫 | 亚洲欧美综合区自拍另类 | 调教处男| 性绞姿始动作动态图 | 精品手机在线视频 | 日本三级欧美三级人妇英文 | 四虎影院4hu | 欧美日韩在线观看精品 | 精精国产xxxx视频在线播放器 | 特级av毛片免费观看 | 歪歪动漫小说sss | 亚洲AV永久无码精品澳门 | 高清不卡一区二区 | 韩国激情网 | 九九热在线观看视频 | 国产裸露片段精华合集链接 | 四虎影视永久在线 | 99久久精彩视频 | 97操| 午夜性爽视频男人的天堂在线 | 全肉一女n男np高h双龙养成 | 久久综合给合久久狠狠狠… | 全肉一女n男np高h乳 | 国产精品微拍 | 国产真实乱子伦xxxxchina | 欧美日韩国产亚洲人成 | a男人的天堂久久a毛片 | youjizzxxx69日本 | 日本福利视频一区 | 日本一区二区高清免费不卡 | 男人久久天堂 | 日本免费观看的视频在线 | 四虎国产 | 四虎最新永久免费网址 | h玉足嫩脚嗯啊白丝 | 欧美日韩国产超高清免费看片 | 疯狂激吻添下边小说 |