1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Oracle DB(12.1)でJavaを呼び出してみる

Last updated at Posted at 2018-04-22

前提

Java呼び出しには、JVMコンポーネントがインストールされている必要がある。
下記SQLで確認。インストールされていなければ追加必要

SQL> select comp_name from dba_registry order by 1;

COMP_NAME
--------------------------------------------------------------------------------
JServer JAVA Virtual Machine     #JVM
Oracle Database Catalog Views     #必須
Oracle Database Java Packages     #JVM
Oracle Database Packages and Types  #必須
Oracle Workspace Manager        #必須
Oracle XDK                            #JVM
Oracle XML Database            #12cより必須

マニュアルの手順に従い稼働確認 javaのVersionを表示する

ソース作成

$ cat Version.java
public class Version
{
        public static String getver()
        {
                return System.getProperty("java.version");
        }
}

コンパイル

$ /u01/app/oracle/product/12.1.0/dbhome_1/jdk/bin/javac Version.java

登録

$ loadjava -user SYS Version.java
Password:
*********

javaの呼び出し

$ sqlplus / as sysdba
SQL> create function getver return varchar2
  2  as language java
  3  name 'Version.getver() return java.lang.String';
  4  /

ファンクションが作成されました。

SQL> var str varchar2(50);
SQL> call getver() into :str;

コールが完了しました。

SQL> print str;

STR
--------------------------------------------------------------------------------
1.6.0_71

DBHOMEのjavaとバージョンが少し異なる

$ u01/app/oracle/product/12.1.0/dbhome_1/jdk/bin/java -version
java version "1.6.0_75"
Java(TM) SE Runtime Environment (build 1.6.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 20.75-b01, mixed mode)

参考

Javaストアド・プロシージャの手順

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?