Oracle 11g ストアド プロシージャから呼び出されたときに、jar からバージョン情報を取得しようとして問題が発生しました。
jar に含まれるクラスにヘルパー メソッドがあります。
public class Version {
public static String getVersion() {
return Version.class.getPackage().getImplementationVersion();
}
}
これを Java から呼び出すと: Version.getVersion();
jarの正しいバージョンを返します
loadjava コマンドを使用してこの jar をロードし、oracle からこれを呼び出すと、次のようになります。
create function version_test return varchar2
as language java
name 'com.foo.Version.getVersion() return java.lang.String';
select
version_test
from dual;
null を返します。
何が起こっているのか、オラクルにロードされたバージョンをどのように入手できるのか知っている人はいますか?