Joh*_*n O 8 oracle sqlplus environment-variables
我知道数据库引擎本身(经常)在另一台机器上并且SQL*Plus没有直接读取这些环境变量的方法,但是我处于一个棘手的情况,我只需要来自机器的环境变量客户端本身正在运行.
有没有办法在一个将在SQL*Plus中运行的单个脚本中将这些值欺骗到SQL*Plus客户端?该脚本由一个开始/结束PL/SQL块组成,但是如果我需要使用set/define/variable排序的SQL*Plus指令,这也不应该是一个问题.
我不能做的是改变SQL*Plus可执行文件本身的启动方式(我没有权限将值作为参数传递).
有没有办法实现这个目标?
注意:dbms_system.get_env()
似乎从服务器本身检索环境变量,这是我不想要的.
你可以从一些客户相关的东西的USERENV
情况下,但不是任意的环境变量.
如果可以在本地计算机上创建文件,则可以使用该host
命令根据环境变量设置替换变量:
SQL > host echo define homedir=$HOME > /tmp/gethome.sql
SQL > @/tmp/gethome.sql
SQL > host rm -f /tmp/gethome.sql
SQL > select '&homedir.' as home from dual;
HOME
------------
/home/apoole
1 row selected.
Run Code Online (Sandbox Code Playgroud)
不是很漂亮,但是如果你不能将命令行上的变量作为位置参数传递,那么你的选项相当有限.
当然,这是使用Unix-y路径和命令,但您可以在Windows中执行相同的操作.
归档时间: |
|
查看次数: |
9271 次 |
最近记录: |