[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
  

Mensagemem Qui, 27 Mai 2004 10:19 pm

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:

Código: Selecionar todos
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:
Código: Selecionar todos
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:

Código: Selecionar todos
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:

Código: Selecionar todos
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
dr_gori
Localização: Portland, OR USA

Thomas F. G

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


  • Veja também
    Respostas
    ExibiÇões
    Última mensagem