如何从oracle调用java函数和socket?
我试图在Oracle中使用Java执行socket通信。 如图所示,我从java函数创建了java源代码和oracle函数
CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED ClientTest AS
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
public class ClientTest{
public static String runR(String data){
String receiveData ="";
Socket socket = null;
OutputStream os = null;
OutputStreamWriter osw =null;
BufferedWriter bw = null;
InputStream is =null;
InputStreamReader isr = null;
BufferedReader br = null;
receiveData = "1";
try{
receiveData = "ip : ";
socket = new Socket("192.168.0.46", 4200);receiveData = "2";
os = socket.getOutputStream();receiveData = "3";
osw = new OutputStreamWriter(os);receiveData = "4";
bw = new BufferedWriter(osw); receiveData = "5";
is = socket.getInputStream();
isr = new InputStreamReader(is);
br = new BufferedReader(isr);
receiveData = "6";
bw.write(data);
bw.newLine();
bw.flush();
receiveData = "7";
receiveData = br.readLine();
return receiveData;
}catch(Exception e){
e.printStackTrace();
System.err.println(e);
}finally {
try{
bw.close();
osw.close();
os.close();
br.close();
isr.close();
is.close();
}catch(Exception e){
e.printStackTrace();
}
}
return receiveData;
}
}
/
create or replace FUNCTION get_text(text in varchar2)
return varchar2
as language java
name 'ClientTest.runR(java.lang.String) return java.lang.String';
/
select get_text('test') as test from dual;
结果为
"ip : "...
可以不在oracle的Java中使用socket吗
我不知道是什么问题,但上面显示的结果。 你能明白为什么会这样吗
共 (0) 个答案