用java代碼編寫Oracle存儲過程

如下示例用java實現ping,而後用PLSQL存儲過程調用該方法,可用來測試dblink服務器網絡狀態java

1.java調用系統功能實現ping,返回ping後獲取的字符(如下代碼在Linux上經過,windows的話須要修改參數)sql

create or replace and compile java source named "CheckNet" as
import java.net.*;
import java.io.*;
import java.util.*;
public class CheckNet
{
    public static String ping(String host) {
    String pingResult = "";
    String pingCmd = "ping -c 2 " + host;
     BufferedReader in;
    try {
      Runtime r = Runtime.getRuntime();
      Process p = r.exec(pingCmd);

      in = new BufferedReader(new
      InputStreamReader(p.getInputStream()));
      String inputLine;
      while ((inputLine = in.readLine()) != null) {
        pingResult += inputLine;
       }
      in.close();
      return pingResult;

      }
     catch (IOException e) {
        return e.getMessage();
     }

   }

}

2.用PLSQL封裝java方法windows

CREATE OR REPLACE FUNCTION CheckNet_ping(p_host in varchar2) RETURN varchar2 AS
    LANGUAGE JAVA NAME 'CheckNet.ping(java.lang.String) return java.lang.String';

3.測試服務器

select CheckNet_ping('127.0.0.1') from dual
相關文章
相關標籤/搜索