如何从PL / SQL中确定ORACLE_HOME?

时间:2009-06-19 13:22:54

标签: oracle plsql path oracle-home

是否可以使用纯PL / SQL确定Oracle的安装位置?

用例: 为了调用外部C库,我需要知道它的确切路径(对于create library调用)。我的DLL将驻留在Oracle的BIN目录中,但我不能在我的脚本中硬编码数据库安装的路径......

3 个答案:

答案 0 :(得分:3)

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

注意:默认情况下,您可能无法获得此软件包的许可。

答案 1 :(得分:1)

在Windows和Oracle 10g上,这可行:

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

答案 2 :(得分:1)

从Oracle 12c开始,您可以使用SYS_CONTEXT函数:Oracle docs

SET SERVEROUTPUT ON
BEGIN
   DBMS_OUTPUT.PUT_LINE(SYS_CONTEXT('USERENV','ORACLE_HOME'));
END;
/

/u01/app/oracle/product/12.1.0.2/dbhome_1