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,
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:
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.
Comentários