【Oracle】Javaストアド ~ Oracle から Java を呼ぶ ~

■ はじめに

 Oracle から Java をコールする方法を探していたら、
「Javaストアド・プロシージャ」という機能があるらしいので調べてみる。

■ 注意

 Oracle Database 11g Express Editionでは、
Javaがサポートされていないので利用できない

■ 設定例

【1】Javaファイルを作成する

HelloWorld.java
public class HelloWorld {
  public static String sayHello() {
    return "Hello world";
  }
}

【2】Javaファイルをコンパイルする

cd C:\work
javac HelloWorld.java

 => HelloWorld.class ができる

【3】class ファイルを Oracle DB に登録する

CREATE DIRECTORY java_dir AS 'C:\work';
CREATE OR REPLACE JAVA CLASS USING BFILE (java_dir, 'HelloWorld.class')

【4】Java メソッドを呼び出すストアドファンクションを作成する

CREATE OR REPLACE FUNCTION say_hello RETURN VARCHAR2 AS LANGUAGE JAVA NAME 'HelloWorld.sayHello() return java.lang.String';

【5】動作確認

SET SERVEROUTPUT ON
BEGIN
DBMS_OUTPUT.PUT_LINE(say_hello);
END;