有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何从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) 个答案