[Dica] USERENV e SYS_CONTEXT

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Essas funções retornam basicamente o informações sobre o sistema, como o tipo de linguagem sendo usado, o IP da máquina conectada, o número da sessão, etc... Vou colocar aqui um resumo:

Selecionar tudo

Parametro       Explicação
CLIENT_INFO     Retorna o usuário da sessão gravada usando o pacote DBMS_APPLICATION_INFO
ENTRYID         
INSTANCE        Número identificador da instância corrente
ISDBA           Boolean - indica se o usuário tem privilégios de DBA.
LANG            Abreviação ISO da linguagem
LANGUAGE        Linguagem, território e caracter_set da sessão.
                (Formato: linguagem_territorio.character_set )
SESSIONID       Sessão corrente
TERMINAL        Nome do usuário do SO
Exemplo:

Selecionar tudo

SQL> select userenv ('LANGUAGE') from dual;

USERENV('LANGUAGE')
--------------------------------------------
AMERICAN_AMERICA.WE8ISO8859P1

SQL> 

IMPORTANTE: O Userenv está presente apenas para fins de compatibilidade! Foi substituído pelo SYS_CONTEXT!

O Sys_context pode ter as seguintes opções:

Selecionar tudo

AUDITED_CURSORID 
AUTHENTICATION_DATA 
AUTHENTICATION_TYPE 
BG_JOB_ID 
CLIENT_IDENTIFIER 
CLIENT_INFO 
CURRENT_SCHEMA 
CURRENT_SCHEMAID 
CURRENT_SQL 
CURRENT_USER 
CURRENT_USERID 
DB_DOMAIN 
DB_NAME 
ENTRYID 
EXTERNAL_NAME 
FG_JOB_ID 
GLOBAL_CONTEXT_MEMORY 
HOST 
INSTANCE 
IP_ADDRESS 
ISDBA 
LANG 
LANGUAGE 
NETWORK_PROTOCOL 
NLS_CALENDAR 
NLS_CURRENCY 
NLS_DATE_FORMAT 
NLS_DATE_LANGUAGE 
NLS_SORT 
NLS_TERRITORY 
OS_USER 
PROXY_USER 
PROXY_USERID 
SESSION_USER 
SESSION_USERID 
SESSIONID 
TERMINAL 
Um exemplo de sua utilização:

Selecionar tudo

SQL> select sys_context ('USERENV', 'NLS_DATE_FORMAT')
  2  from dual;

SYS_CONTEXT('USERENV','NLS_DATE_FORMAT')
--------------------------------------------------------
dd/mon/yyyy

SQL> 
Mais informação:
http://www.psoug.org/reference/sys_context.html
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes