Oracle function using Java code

Сайн байцгаана уу.

Stored Procedure, Function дээр жава кодыг хэрхэн ашигласан туршлагаасаа хуваалцъя гэж бодлоо. Уг асуудлыг шийдэх гээд хайж байгаа нэгэнд хэрэг болж магад

Алхам 1: Ашиглах жава кодоо бэлдэх. Миний хувьд Procedure-c URL руу GET болон json POST илгээх шаардлага гарсан. /Example: GET and POST бичсэн кодоо .java өргөтгөлтэй file болгон хадгална/

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

    public class CallHttpFunction {
        
        public static String getAction(String _url) {
    	String resultVal = "";
    	try
    	{
                URL obj = new URL(_url);
                HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                con.setRequestMethod("GET");
                BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream()));
                String inputLine;
                StringBuffer response = new StringBuffer();
                while ((inputLine = in.readLine()) != null) {
    		response.append(inputLine);
    		}
                in.close();
                resultVal = response.toString();
    	}
    	catch(Exception ex)
    	{
                resultVal = "ERROR: " + ex.getMessage();
    	}
    	return resultVal;   
        }
        
        public static String postAction(String _url, String _json){
            String resultVal = "";
            try
    		{
    			URL obj = new URL(_url);
    			HttpURLConnection conn = (HttpURLConnection) obj.openConnection();
    			conn.setDoOutput(true);
    			conn.setRequestMethod("POST");
    			conn.setRequestProperty("Content-Type", "application/json");
    			String input = _json;
    			DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
    			wr.writeBytes(input);
    			wr.flush();
    			wr.close();
    			BufferedReader in = new BufferedReader(
    		        new InputStreamReader(conn.getInputStream()));
    			String inputLine;
    			StringBuffer response = new StringBuffer();
    			while ((inputLine = in.readLine()) != null) {
    				response.append(inputLine);
    			}
    			in.close();
    			resultVal = response.toString();
    		}
    		catch(Exception ex)
    		{
    			resultVal = "ERROR: " + ex.getMessage();
    		}
            return resultVal;
        }
    }

Алхам 2: Кодоо бааз руу хуулах. /Би java кодоо dmpdir дотороо хуулж байгаад load хийсэн./

  1. Windows дээр upload хийх. " loadjava -user user_name/password -verbose filePath "
  2. Linux дээр upload хийх.

Load хийгдсэн java маань дараах байдалтай харагдана.

Алхам 3: Create Oracle Function

  1. GET
    create or replace FUNCTION getUrl(pUrl VARCHAR2) RETURN VARCHAR2 AS
    LANGUAGE JAVA NAME ‘CallHttpFunction.getAction(java.lang.String) return java.lang.String’;
  2. POST
    create or replace FUNCTION postUrl(pUrl VARCHAR2, pJson VARCHAR2) RETURN VARCHAR2 AS
    LANGUAGE JAVA NAME ‘CallHttpFunction.postAction(java.lang.String, java.lang.String) return java.lang.String’;

Үр дүн:

3 Likes

Сайхан цэгцтэй мэдээлэл байна… :+1::wave::ok_hand::eyeglasses:

1 Like