设置可从外部读取的会话属性



在Oracle中,PLSQL可以在会话中设置属性(CLIENT_INFO(。这允许它在会话对象和正在运行的包/存储过程之间建立链接。要执行此操作的程序包是DBMS_APPLICATION_INFO程序包

因此,在客户端会话中执行:

exec DBMS_APPLICATION_INFO.SET_CLIENT_INFO('hello stackoverflow');

允许它在管理会话视图中查看:

select sid, logon_time, client_info 
from v$session 
where client_info like '%stack%' ;
SID LOGON_TIME          CLIENT_INFO
---------- ------------------- ----------------------------------------------------------------
2549 2022-10-13 20:39:42 hello stackoverflow

是否有可通过T-SQL使用的等效SQL Server?

SQL Server中的等效程序是:

declare @ctx varbinary(128) = cast( 'hello stackoverflow' as varbinary(128))
SET CONTEXT_INFO  @ctx 
go
select s.session_id, connect_time, cast(context_info as varchar(128)) context_info
from sys.dm_exec_sessions s
join sys.dm_exec_connections c
on s.session_id = c.session_id 
where cast(context_info as varchar(128)) like '%stack%'

最新更新