Oracle DB内にJavaクラスがあり、最近そのコードの1行にJavaクラスがエラーをスローしています:
static BASE64Encoder B64 = new BASE64Encoder();
エラーが発生しています
Java.lang.ExceptionInInitializerError
このコード行。
SYS権限またはホストへのアクセス権がないため、DB側で何が変わったのかわかりません。
Oracle DBを実行しているJDKバージョンを確認したい-
Oracle Database 11g Enterprise Editionリリース11.2.0.3.0-64ビット本番。
ありがとうございました。
SELECT dbms_Java.get_ojvm_property(PROPSTRING=>'Java.version') FROM dual
ソリューション1)データベースホスト
cd $Oracle_HOME/jdk/bin
Java -version
ソリューション2)PL/SQL関数を作成して、Javaシステムプロパティを返す
create function get_Java_property(prop in varchar2)
return varchar2 is
language Java name 'Java.lang.System.getProperty(Java.lang.String) return Java.lang.String';
そして、Javaバージョンのselectを実行します
select get_Java_property('Java.version') from dual;
ソリューション3)SteveK からの回答を確認してください
認定バージョンは次のとおりです。
Oracle 12.2/18.1 JVMは 1.8
Oracle12cデータベース組み込み JVMサポートJDK 1.6および1.7
Oracle11g> = 11.2.0.4データベース組み込み JVMサポートJDK 1.6
Oracle11gデータベース組み込み JVMはJRE 1.5 をサポートします。
Oracle10gデータベース組み込みJVMは、JRE 1.4をサポートします。
Oracle9iデータベース組み込みJVMサポートJRE 1.3