PL/SQL中获取操作系统环境变量:
variable var1 varchar2(10);
exec dbms_system.get_env('OS_ENV',:var1);
PL/SQL procedure successfully completed
var1
---------
E:\BQ-JServer_7.1.3\j2sdk1.4.2
请教大家:
在我将系统的该环境变量值修改或者删除该环境变量。
dbms_system.get_env方法无法获得更新的环境变量值,依就打出上次的变量值。
有的时候重启数据库也不行。感觉需要重启WINDOW机器才能生效。
variable var1 varchar2(10);
exec dbms_system.get_env('OS_ENV',:var1);
PL/SQL procedure successfully completed
var1
---------
E:\BQ-JServer_7.1.3\j2sdk1.4.2
请教大家:
在我将系统的该环境变量值修改或者删除该环境变量。
dbms_system.get_env方法无法获得更新的环境变量值,依就打出上次的变量值。
有的时候重启数据库也不行。感觉需要重启WINDOW机器才能生效。
而该变量VAR1希望能从外部文件获得的。
我也没想到其他好方法,就通过批处理将VAR1变量写到WINDOW系统环境变量中。
这样可以随时修改该VAR1的值,而PLSQL中通过dbms_system.get_env获得VAR1最新的值。wmic ENVIRONMENT create name="GPTDEX_ORA_SID",username="<system>",VariableValue="%GPTDEX_ORA_SID%"
但ufl_file读取文件的路径,需要动态的。
如果获得一个外部文件输入的路径?
1. 以管理员身份登录,设置可操作目录create or replace directory BLOBDIR as 'D:\MyFolder';
grant read,write on directory BLOBDIR to sharedb;
GRANT EXECUTE ON utl_file TO sharedb;
select * from ALL_DIRECTORIES;
2. 建立存储过程你的代码