Oracle查詢當前會話的sid
檢視當前會話的session ID 有如下三種方法:
1. v$mystat檢視
SQL> select sid from v$mystat where rownum=1;
SID
----------
1152
2. 使用userenv(‘sid’) 直接獲取
這種方法只能在oracle 10g以後可以使用。
SQL> select userenv('sid') from dual;
USERENV('SID')
--------------
1152
3. 結合 userenv('sessionid') 與 v$session 檢視
userenv('sessionid') 返回的是session audit id.其對應v$session 的audsid欄位。
在session 連線到資料庫的時候,會從SYS.AUDSES$序列中獲取一個audid 分配給session。
SQL> select sid from v$session where audsid=userenv('sessionid');
SID
----------
773
1152
--這裡返回了2個值,我們直接檢視userenv('sessionid') 值:
SQL> select userenv('sessionid') from dual;
USERENV('SESSIONID')
--------------------
4294967295
對於internal使用者(’/as sysoper’ 和 ‘/as sysdba’)和後臺程式,其對應的AUDID 為0.
在Oracle 10g中,如果AUDID的值為0,表明是internal 使用者,如果AUDID 值是4294967295,那麼就表明是用SYS 使用者直接連線的。
我們這裡返回三個結果是把所有SYS 使用者的session都返回了,所以這種方法有時的準確性並不高。
有關SYS.AUDSES$的說明可以參照http://blog.csdn.net/tianlesoftware/article/details/7239890
1. v$mystat檢視
SQL> select sid from v$mystat where rownum=1;
SID
----------
1152
2. 使用userenv(‘sid’) 直接獲取
這種方法只能在oracle 10g以後可以使用。
SQL> select userenv('sid') from dual;
USERENV('SID')
--------------
1152
3. 結合 userenv('sessionid') 與 v$session 檢視
userenv('sessionid') 返回的是session audit id.其對應v$session 的audsid欄位。
在session 連線到資料庫的時候,會從SYS.AUDSES$序列中獲取一個audid 分配給session。
SQL> select sid from v$session where audsid=userenv('sessionid');
SID
----------
773
1152
--這裡返回了2個值,我們直接檢視userenv('sessionid') 值:
SQL> select userenv('sessionid') from dual;
USERENV('SESSIONID')
--------------------
4294967295
對於internal使用者(’/as sysoper’ 和 ‘/as sysdba’)和後臺程式,其對應的AUDID 為0.
在Oracle 10g中,如果AUDID的值為0,表明是internal 使用者,如果AUDID 值是4294967295,那麼就表明是用SYS 使用者直接連線的。
我們這裡返回三個結果是把所有SYS 使用者的session都返回了,所以這種方法有時的準確性並不高。
有關SYS.AUDSES$的說明可以參照http://blog.csdn.net/tianlesoftware/article/details/7239890
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28389881/viewspace-1658090/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 查詢當前會話標識Oracle會話
- oracle獲取當前會話(程式)session id(sid)Oracle會話Session
- 【轉載】檢視當前會話SID的三種方法會話
- 利用dbms_support包查詢當前會話的session_id會話Session
- Oracle如何查詢當前LockOracle
- oracle 10046當前會話Oracle會話
- Oracle阻塞會話查詢Oracle會話
- 修改oracle當前會話的語言環境Oracle會話
- oracle 跟蹤當前使用者會話Oracle會話
- Oracle查詢當前使用者和當前使用者下的所有表Oracle
- 查詢當前SQL Server的版本SQLServer
- 獲取當前會話資訊的方法會話
- Oracle 檢視當前會話 SESSION ID 方法 說明Oracle會話Session
- 如何透過sid查詢造成死鎖的sql語句,並殺死會話SQL會話
- 如何通過sid查詢造成死鎖的sql語句,並殺死會話SQL會話
- 查詢當前ubuntu版本號的命令Ubuntu
- 獲取當前會話資訊的方法(二)會話
- 獲取當前會話的trc檔名會話
- 會話及物件查詢會話物件
- 檢視當前會話session id方法:會話Session
- 查詢oracle歷史最大連線[會話]數Oracle會話
- 查詢當前網段的所有在用IP
- Oracle中查詢阻塞與被阻塞SID的方法Oracle
- 檢視當前pg會話連線數會話
- 使用者查詢當前session IDSession
- SQLSERVER查詢當前資料中的所有表
- 查詢當前正在執行的job的情況
- [oracle] 查詢歷史會話、歷史執行計劃Oracle會話
- 查詢時間從前7天到當前時間
- sys_context獲取當前會話的屬性Context會話
- 茴字的三種寫法-找出當前會話ID會話
- sql 查詢當前使用者所有表的容量SQL
- 取得EBS 當前form介面查詢LOV的源sqlORMSQL
- ORACLE 當月、本週、當年SQL查詢OracleSQL
- ORA-00027: 無法終止當前會話會話
- 分析依賴物件對當前失敗會話的影響物件會話
- 查詢當前執行的sql及相關內容SQL
- 查詢當前正在執行的SQL語句並KILLSQL