Oracle 10g引入了 DBMS_SYSTEM包中的一个过程GET_ENV。这个过程获得一个环境变量名称并返回环境变量的值。但是它不会返回环境变量PATH的值:
set serveroutput on;
create or replace PROCEDURE dump_osenvs as
buffer varchar2(300);
begin
sys.dbms_system.get_env(‘ORACLE_HOME’, buffer);
dbms_output.put_line(‘ORACLE_HOME: ‘|| buffer);
sys.dbms_system.get_env(‘ORACLE_SID’,buffer);
dbms_output.put_line(‘ORACLE_SID: ‘|| buffer);
sys.dbms_system.get_env(‘COMPUTERNAME’,buffer);
dbms_output.put_line(‘COMPUTERNAME: ‘|| buffer);
sys.dbms_system.get_env(‘OS’,buffer);
dbms_output.put_line(‘OS: ‘|| buffer);
sys.dbms_system.get_env(‘TEMP’,buffer);
dbms_output.put_line(‘TEMP: ‘|| buffer);
sys.dbms_system.get_env(‘WINDIR’,buffer);
dbms_output.put_line(‘WINDIR: ‘|| buffer);
sys.dbms_system.get_env(‘SYSTEMROOT’,buffer);
dbms_output.put_line(‘SYSTEMROOT: ‘|| buffer);
sys.dbms_system.get_env(‘PROGRAMFILES’,buffer);
dbms_output.put_line(‘PROGRAMFILES: ‘|| buffer);
sys.dbms_system.get_env(‘COMSPEC’,buffer);
dbms_output.put_line(‘COMSPEC: ‘|| buffer);
sys.dbms_system.get_env(‘PROCESSOR_ARCHITECTURE’,buffer);
dbms_output.put_line(‘PROCESSOR_ARCHITECTURE: ‘|| buffer);
sys.dbms_system.get_env(‘PROCESSOR_IDENTIFIER’,buffer);
dbms_output.put_line(‘PROCESSOR_IDENTIFIER: ‘|| buffer);
end ;
/
过程已创建。
下面给出这个过程的输出结果:
SQL> exec dump_osenvs;
ORACLE_HOME: E:\oracle\product\10.2.0\db_1
ORACLE_SID: orclv
COMPUTERNAME: WIN_DESK1
OS: Windows_NT
TEMP: C:\WINDOWS\TEMP
WINDIR: C:\WINDOWS
SYSTEMROOT: C:\WINDOWS
PROGRAMFILES: C:\Program Files
COMSPEC: C:\WINDOWS\system32\cmd.exe
PROCESSOR_ARCHITECTURE: x86
PROCESSOR_IDENTIFIER: x86 Family 6 Model 15 Stepping 13, GenuineIntel
PL/SQL 过程已成功完成。
转载请注明源地址: www.askmac.cn
How to check the OS environment variables used when the database instance is started (i.e ORACLE_HOME, ORACLE_SID, ……)?
The dbms_system.get_env procedure can be used for that purpose:
I.e
To check the ORACLE_HOME used when the instance is started:
variable var1 varchar2(100);
execute dbms_system.get_env(‘ORACLE_HOME’,:var1)
PRINT var1
Sample Run:
SQL> variable var1 varchar2(100);
SQL> execute dbms_system.get_env(‘ORACLE_HOME’,:var1)
PL/SQL procedure successfully completed.
SQL> print var1
VAR1
——————————————————————————–
/u01/app/oracle/product/10.2.0.4/db_1
请教您:
在我将系统的该环境变量值修改或者删除该环境变量。
dbms_system.get_env方法无法获得更新的环境变量值,依就打出上次的变量值。
有的时候重启数据库也不行。感觉需要重启WINDOW机器才能生效。