Java Stored Procedure
OracleではストアドプロシージャーをJavaで作る事が可能という事で調査してみたそのレポです
Javaクラスを作成
class Plus {
public static int getValue(int i, int j) {
return i + j;
}
}
Oracleにクラスをロード
loadjava -u hoge/hoge -r -f -v Plus.class
呼び出し用PL/SQLを作成
CREATE OR REPLACE FUNCTION Plus_getValue(i IN NUMBER, j IN NUMBER)
RETURN NUMBER
AS LANGUAGE JAVA
NAME 'Plus.getValue(int,int) return int';
これでPL/SQLを実行するとJavaクラスが参照される
実行用PL/SQLを作成
declare
ret NUMBER
begin
ret := Plus_getValue(1,2)
dbms_output.put_line(to_char(ret));
end;
又、以下のようにJavaクラスをデータベースにロードしないでOracleからJavaソースを指定して実行する事も可能
CREATE OR REPLACE AND COMPILE
JAVA SOURCE NAMED Test AS
public class Test {
public static String say(String name) {
return "Hello World: " + name;
}
}