quarta-feira, 17 de janeiro de 2018

Capturar variáveis de SO com dbms_system.get_env

Através do pacote DBMS_SYSTEM do Oracle RDBMS podemos fazer várias coisas, como:



SQL> var VAR varchar2(255)
SQL> exec dbms_system.get_env('ORACLE_HOME',:VAR);

PL/SQL procedure successfully completed.

SQL> print :VAR

VAR
--------------------------------------------------------------------------------
/orabin/app/oracle/product/12.2.0.1/dbhome_1

Exportando uma variável de teste:

Banco=cdb1-> export TESTE="variavel de teste"
Banco=cdb1-> sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Mon Apr 3 03:47:54 2017

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> var VAR varchar2(255)
SQL> exec dbms_system.get_env('TESTE',:VAR);

PL/SQL procedure successfully completed.

SQL> print :VAR

VAR
--------------------------------------------------------------------------------
variavel de teste

Exemplo criando uma function para retorno da variável:

SQL> create or replace function getvar (envvar varchar2) return varchar2 as
output varchar2(4000);
begin
dbms_system.get_env(envvar, output);
return output;
end;
/

Function created.

SQL> select getvar('ORACLE_HOME') from dual;

GETVAR('ORACLE_HOME')
--------------------------------------------------------------------------------
/orabin/app/oracle/product/12.2.0.1/dbhome_1

Exemplo criando uma procedure para retorno da variável:

SQL> create or replace procedure getvar2 (envvar varchar2) as
output varchar2(4000);
begin
dbms_system.get_env(envvar, output);
dbms_output.put_line(output);
end;
/

Procedure created.

SQL> set serveroutpu on
SQL> exec getvar2('TESTE');
variavel de teste

PL/SQL procedure successfully completed.

SQL> exec getvar2('ORACLE_HOME');
/orabin/app/oracle/product/12.2.0.1/dbhome_1

PL/SQL procedure successfully completed.
Postagem mais recente Postagem mais antiga Página inicial

0 comentários:

Postar um comentário

Translate

# ACE Program

#Oracle

#Oracle
Disclaimer: The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.

#Blog reconhecido

#ARTICULISTA

Marcadores

Postagens populares