מדי פעם אני מוצא את עצמי תוהה באיזה Oracle Home עלה ה-Database. הדבר קורה בעיקר בסביבות שיש בהן כמה Home-ים (לפעמים באותם גרסאות) ואני לא מצליח להתחבר מקומית לבסיס הנתונים (לדוגמה כ-sysdba).
לצורך כך ישנן כמה שליפות ופרוצדורות שיכולות לסייע.
הראשונה היא הפרוצדורה dbms_System.get_env:
SQL> var OracleHome varchar2(100);
SQL> EXEC dbms_system.get_env('ORACLE_HOME', :OracleHome);
PL/SQL procedure successfully completed.
SQL> PRINT OracleHome
ORACLEHOME
--------------------------------------------------------------------------------
C:\Oracle\product\11.2.0\dbhome_1
שליפה אחרת שניתן להשתמש בה היא השליפה הבאה.
בסביבת חלונות:
SQL> SELECT SUBSTR(FILE_SPEC, 1, INSTR(FILE_SPEC, '', -1, 2) -1)
2 FROM DBA_LIBRARIES
3 WHERE LIBRARY_NAME = 'DBMS_SUMADV_LIB';
SUBSTR(FILE_SPEC,1,INSTR(FILE_SPEC,'',-1,2)-1)
--------------------------------------------------------------------------------
C:\Oracle\product\11.2.0\dbhome_1
בסביבת unix/linux:
SQL> SELECT SUBSTR(FILE_SPEC, 1, INSTR(FILE_SPEC, '/', -1, 2) -1)
2 FROM DBA_LIBRARIES
3 WHERE LIBRARY_NAME = 'DBMS_SUMADV_LIB'
4 /
SUBSTR(FILE_SPEC,1,INSTR(FILE_SPEC,'/',-1,2)-1)
--------------------------------------------------------------------------------
/app01/oracle/product/11.2.0/dbhome_1