是否可以使用纯PL / SQL确定Oracle的安装位置?
用例:
为了调用外部C库,我需要知道它的确切路径(对于create library
调用)。我的DLL将驻留在Oracle的BIN目录中,但我不能在我的脚本中硬编码数据库安装的路径......
答案 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