2009-06-19 7 views
1

Ist es möglich, festzustellen, wo Oracle mit reinem PL/SQL installiert ist?Wie ermittelt man ORACLE_HOME aus PL/SQL?

Anwendungsfall: Um eine externe C-Bibliothek aufzurufen, muss ich ihren genauen Pfad kennen (für den Aufruf create library). Meine DLL wird in Oracle BIN-Verzeichnis befinden, aber ich kann nicht hart Code der Pfad der DB-Installation in meine Skripte ...

Antwort

1

Schauen Sie sich die letzten Buchungen auf dieser Seite:

unter Windows In diesem Werk 10g

SELECT 
substr(file_spec,1,instr(file_spec,'\',1,3)) 
FROM dba_libraries 
WHERE library_name='DBMS_SUMADV_LIB' 

http://www.mydatabasesupport.com/forums/database-discussions/34933-query-oracle_home-3.html

+1

Dank, habe ich den vorgeschlagenen Ansatz den Weg der 'DBMS_SUMADV_LIB' Bibliothek zu holen, die auch auf 10g gut funktioniert. // Könnten Sie Ihre Antwort bearbeiten und die Ansätze auflisten, um anderen Leuten zu helfen, die diese Frage finden? –

+1

Der Link ist unterbrochen :( –

3
DECLARE 
RetVal VARCHAR2(100); 
BEGIN 
    dbms_system.get_env('ORACLE_HOME', RetVal); 
    dbms_output.put_line(RetVal); 
END; 

HINWEIS: Es ist wahrscheinlich, dass Sie nicht über die Berechtigung zu diesem Paket standardmäßig haben wird.

+0

Leider ist 'DBMS_SYSTEM' in meiner Datenbank nicht installiert. –

+0

Haben Sie darüber nachgedacht, ein VERZEICHNIS zu verwenden? Verzeichnis erstellen oder ersetzen APP_ORACLE_HOME AS '/u01/oracle/10.1.2'; –

Verwandte Themen