2015-01-27 5 views
12

Abbiamo una classe Java all'interno della nostra Oracle DB e di recente una riga di codice in quella classe java sta gettando un errore:Come verificare la versione JDK in Oracle?

static BASE64Encoder B64 = new BASE64Encoder(); 

Stiamo assistendo errore

java.lang.ExceptionInInitializerError

su questa riga di codice.

Non sono sicuro di cosa è cambiato sul lato DB poiché non abbiamo privilegi SYS o accesso all'host.

desidero controllare la versione del JDK in esecuzione il nostro Oracle DB -

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production.

Grazie.

+1

http://www.oracle.com/technetwork/database/enterprise-edition/faq-jvm -java-stored-procedures-097205.html # _Come si può controllare questo link. – Prashant

+1

select * from all_registry_banners non mi dà la versione JDK –

risposta

9

soluzione 1) sull'host del database

cd $ORACLE_HOME/jdk/bin 
java -version 

soluzione 2) creare una funzione PL/SQL per restituire le proprietà di sistema 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'; 

e la corsa a selezionare per il Versione Java

select get_java_property('java.version') from dual; 

soluzione 3) controllare la risposta da SteveK

+0

Non ho accesso all'host, inoltre non c'è un comando sql incorporato che lo farà? –

+0

Se si dispone della concessione per creare una funzione PL/SQL, utilizzare la seconda soluzione che ho inviato. Altrimenti, se non si ha accesso all'host del database e non si ha la possibilità di creare una funzione PL/SQL, è possibile fare affidamento sull'elenco delle versioni certificate o chiedere a qualcuno che gestisce il server. – SubOptimal

+0

Grazie per la tua risposta, ho accesso per creare una funzione. –

18
SELECT dbms_java.get_ojvm_property(PROPSTRING=>'java.version') FROM dual