详解Oracle数据库如何获取当前会话/进程的session id
概述
很多时候我们在对Oracle数据库一些审计、统计分析时,经常会用到session id,但是怎么快速获得当前会话/进程的session id呢?今天主要介绍常见的获取oracle session id的方法,顺便做个备忘!
01
从v$mystat视图获取oracle当前会话的session id(sid):
相关sql:
select sid from v$mystat where rownum = 1;
02
用userenv函数获取oracle当前会话的session id(sid):
select sid from v$session where audsid=userenv('sessionid');
特别说明:userenv(‘sessionid’)对以sys登录的用户是有限制,我们可以看到所有在主机以sys登录的用户的audsid都是0。
SQL> show user USER is "SYS" SQL> select t.SID,t.AUDSID, t.USERNAME from v$session t where t.USERNAME = 'SYS' or t.USERNAME is null; SQL> select userenv('sessionid') from dual;
03
oracle 10g 用userenv(‘sid’)获取session id(sid):
--oracle 10g以后可以使用
select userenv('sid') from dual;
04
使用dbms_session.unique_session_id获取oracle当前会话的session id(sid)
dbms_session.unique_session_id总共返回20位,其中前4位为session id,5~8位为serial#
select to_number(substrb(dbms_session.unique_session_id,1,4),'xxxx') sid, to_number(substrb(dbms_session.unique_session_id,5,4),'xxxx') audsid from dual;
后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~
相关推荐
oraclemch 2020-11-06
solarspot 2020-07-28
Omega 2020-08-16
娜娜 2020-07-28
goodriver 2020-06-17
lklong 2020-11-22
shilukun 2020-10-10
周嘉笙 2020-11-09
zhuzhufxz 2020-09-16
bfcady 2020-08-16
Hody 2020-08-16
FightFourEggs 2020-08-16
数据库设计 2020-08-16
yanghuatong 2020-08-16
dbasunny 2020-08-16
罗罗 2020-08-16
ihuaqiang 2020-08-16
choice0 2020-07-30
娜娜 2020-07-28
踩风火轮的乌龟 2020-07-26
娜娜 2020-07-20
xwb 2020-07-19
娜娜 2020-07-18
流云追风 2020-07-04
dataminer 2020-06-25
娜娜 2020-06-22