איך מוצאים באיזה 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!

השאר תגובה

אתר זה עושה שימוש באקיזמט למניעת הודעות זבל. לחצו כאן כדי ללמוד איך נתוני התגובה שלכם מעובדים.