איך מוצאים באיזה Oracle Home עלה ה-Database?

מדי פעם אני מוצא את עצמי תוהה באיזה 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
0 תגובות

השאירו תגובה

Want to join the discussion?
Feel free to contribute!

השאר תגובה

אתר זו עושה שימוש ב-Akismet כדי לסנן תגובות זבל. פרטים נוספים אודות איך המידע מהתגובה שלך יעובד.