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

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

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這個類不能少,用于異步讀取命令的輸出。

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 草嫩社区 | 亚洲精品乱码久久久久久蜜桃 | 9久久9久久精品 | 国产hd老头老太婆 | 99久久精品国产免费 | 男人的天堂久久 | 成人在线av视频 | 国产综合社区 | 美女露奶奶 | 高h全肉动漫在线观看免费 高h辣h双处全是肉军婚 | 亚洲欧美影院 | 色倩网站 | 国产亚洲精品一区在线播 | 国产一区日韩二区欧美三 | 蜜汁肉桃全文免费阅读 | 爱操综合| 大乳一级一区二区三区 | 2012手机在线中文字幕 | brazzersvideo欧美最新 | 国产a一级毛片爽爽影院 | 亚洲精品在看在线观看 | 三年片韩国在线观看 | bbbbbbaaaaaa毛片| 狠狠干2017| 欧美一级特黄特色大片 | 亚洲AVAV天堂AV在线网爱情 | 久热在线这里只有精品7 | 亚洲精品久久久久69影院 | 花唇肿胀无法合拢双性 | 久久精品国产免费播放 | 国产日韩一区二区 | 精品综合 | 果冻传媒新在线观看免费 | 男女精品视频 | 国产亚洲精品视频中文字幕 | 忘忧草研究院一二三 | 精品夜夜澡人妻无码AV蜜桃 | 69成人影院 | 免费一级国产大片 | 下雨天小说词枝 | 猫咪社区免费资源在线观看 |