Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

O SQL*Plus pode ler variáveis ​​de ambiente da máquina em que está sendo executado?


Você pode obter alguns itens relacionados ao cliente em o USERENV contexto , mas não variáveis ​​de ambiente arbitrárias.

Se você puder criar um arquivo em sua máquina local, poderá usar o host comando para definir uma variável de substituição com base em uma variável de ambiente:
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.

Não muito bonito, mas se você não puder passar as variáveis ​​na linha de comando como parâmetros posicionais, suas opções serão bastante limitadas.

Isso está usando caminhos e comandos Unix-y, é claro, mas você pode fazer o mesmo tipo de coisa no Windows.