Pegando informações de Sessão no Oracle e equivalente no MSSQL

Tem situações onde precisamos resgatar informações a respeito de nossa sessão no banco de dados, para uso em nossos programas, procedures, triggers, etc.

Por vezes inclusive precisamos migrar alguma rotina de um banco para outro. Como de vez em quando preciso fazer isso, resolvi colocar aqui abaixo as equivalências de comandos entre os bancos para obter informações de sessão.

Pegando Informações de Sessão no Oracle:
SELECT machine                                             AS maquina,
       osuser                                              AS usuario,
       program                                             AS programa,
       To_date (To_char (SYSDATE, 'DDMMYYYY'), 'DDMMYYYY') AS data,
       To_char (SYSDATE, 'HHMISS')                         AS hora
FROM   v$session
WHERE  audsid = Userenv('SESSIONID'); 



Pegando Informações de Sessão no MSSQL:
SELECT hostname                                                   AS maquina,
       nt_username                                                AS usuario,
       program_name                                               AS programa,
       Cast(Getdate() AS DATE)                                    AS data,
       Cast(Replace(Cast(Getdate() AS TIME), ':', '') AS CHAR(6)) AS hora
FROM   sys.sysprocesses
WHERE  spid = @@spid;  



Além destas informações é possível resgatar outras, para isso basta verificarmos as colunas disponíveis ns v$session ou na sys.sysprocesses.

Obs.: O Formato da hora está tratado para se encaixar nos padrões do ERP CIGAM, que armazena a hora em formato texto de 6 dígitos sem máscara e separado do campo de data.

Bom era isso. Apenas uma dica rápida para consulta futura. 
Postar um comentário

Postagens mais visitadas deste blog

[Kettle] - Ajuste de problema com horário de verão

[eXo] - Remover janela de solicitação de Registro