Pegar SID E SERIAL# minha sessão

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
claudio.alexandre
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Sex, 19 Ago 2011 5:27 pm
Localização: Anápolis

Boa Tarde,
estou precisando da ajuda de vocês. Preciso identificar qual e o SID e o SERIAL# da minha sessão no Oracle.

Informações do Ambiente:
* Versão do Oracle: 11g XE e Standart
* Sistema Operacional: Windows e Linux
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Claudio,

Você pode usar para resolver o seu problema a função USERENV, que existe desde a versão Oracle 8i.

A sintaxe desta função seria:

Selecionar tudo

userenv( PARAMETRO )
O PARAMETRO seria o valor retornado pela sessão corrente do ORACLE. Algumas informações que você poderia obter com esta função são:

Selecionar tudo

CLIENT_INFO [ex: USERNEV('CLIENT_INFO')] : Retorna o valor da coluna CLIENT_INFO da V$SESSION;
INSTANCE    [ex: USERNEV('CLIENT_INFO')] : O número de identificação da Instância Oracle;
ISDBA       [ex: USERNEV('ISDBA')      ] : Se o usuário corrente tem privilégios de DBA (TRUE/FALSE);
LANG        [ex: USERNEV('LANG')       ] : O código ISO abreviado do idioma;
LANGUAGE    [ex: USERNEV('LANGUAGE')   ] : Informações sobre idioma/território;
SESSIONID   [ex: USERNEV('SESSIONID')  ] : Corresponde à coluna AUDSID da V$SESSION;
TERMINAL    [ex: USERNEV('TERMINAL')   ] : Nome do terminal/computador que está se conectando no banco;
Combinando esta função com a vista V$SESSION, que apresenta a relação de sessões do banco, você consegue obter o SID e SERIAL# da sessão corrente do usuário com a seguinte querie:

Selecionar tudo

SELECT sid,
            serial#
   FROM v$session
WHERE audsid=USERENV('SESSIONID');
Constatei na documentação da Oracle que a função USERENV está obsoleta e que só é mantida no Oracle para fins de compatibilidade.

Eles recomendam que se use a função SYS_CONTEXT, que oferece uma gama muito maior de informações ao desenvolvedor.

Caso tenha interesse em conhecer a função SYS_CONTEXT, você pode consultar o link: http://www.techonthenet.com/oracle/func ... ontext.php

Abraços,

Sergio Coutinho
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante