Сайн байцгаана уу.
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 хийсэн./
- Windows дээр upload хийх. " loadjava -user user_name/password -verbose filePath "
- Linux дээр upload хийх.
Load хийгдсэн java маань дараах байдалтай харагдана.
Алхам 3: Create Oracle Function
- GET
create or replace FUNCTION getUrl(pUrl VARCHAR2) RETURN VARCHAR2 AS
LANGUAGE JAVA NAME ‘CallHttpFunction.getAction(java.lang.String) return java.lang.String’; - 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’;
Үр дүн: