獲取當前會話資訊的方法
一直以為有兩種方法可以獲取當前會話資訊,最近才發現其中一種已經不再適用。
從剛接觸Oracle的時候,就聽說兩種獲取當前會話的方法,一種是透過關聯V$MYSTAT獲取當前會話的SID;另一種是判斷會話的AUDSID是否等於USERENV中的SESSIONID。
第二種方法雖然可以少關聯一個檢視,但是相對畢竟複雜,而且寫法不很直觀不容易記,因此絕大多數情況下,會選擇第一種方法。不過在Tom的Expert one on one Oracle中,他是利用的第二種方法。
而最近進行一個測試的時候,心血來潮嘗試了一下第二種方法,卻意外的發現這種方法已經不再適用了:
SQL> select spid
2 from v$process p, v$session s
3 where p.addr = s.paddr
4 and s.audsid = sys_context('USERENV', 'SESSIONID');
SPID
------------
28178
28114
28505
29750
29752
29753
6 rows selected.
SQL> select sid
2 from v$session
3 where audsid = sys_context('USERENV', 'SESSIONID');
SID
----------
1078
1079
1081
1085
1089
1093
6 rows selected.
SQL> select sid
2 from v$session
3 where audsid = USERENV('SESSIONID');
SID
----------
1078
1079
1081
1085
1089
1093
6 rows selected.
而第一種方法則沒有任何的問題:
SQL> select sid, spid
2 from v$process p, v$session s
3 where p.addr = s.paddr
4 and s.sid in
5 (select sid
6 from v$mystat
7 where rownum = 1);
SID SPID
---------- ------------
1089 28505
查詢了metalink後發現,第二種方法似乎在9i以後就不保證返回當前的會話了,看來可以徹底忘記這種方法了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-684479/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 獲取當前會話資訊的方法(二)會話
- 獲取當前會話的trc檔名會話
- sys_context獲取當前會話的屬性Context會話
- oracle獲取當前會話(程式)session id(sid)Oracle會話Session
- Android中獲取當前位置資訊Android
- 檢視當前會話session id方法:會話Session
- Javascript獲取當前時間戳的方法JavaScript時間戳
- iOS 獲取當前已連線 WiFi 資訊iOSWiFi
- Yii2 獲取當前請求的路由資訊路由
- C# 獲取當前是星期幾的方法C#
- iOS獲取當前裝置的資訊-網路相關iOS
- JavaScript 獲取當前月份JavaScript
- JavaScript 獲取當前域名JavaScript
- javascript獲取當前urlJavaScript
- php 獲取當前域名和當前協議PHP協議
- Oracle 檢視當前會話 SESSION ID 方法 說明Oracle會話Session
- $request 請求方法 獲取 API 的當前使用者API
- Java:如何輕鬆獲取當前執行的方法名Java
- 怎樣獲取發生錯誤的會話資訊 -- 轉會話
- 怎樣獲取發生錯誤的會話資訊(轉)會話
- 怎樣獲取發生錯誤的會話資訊 zt會話
- 【轉載】檢視當前會話SID的三種方法會話
- mybatis獲取當前時間MyBatis
- Java獲取當前星期幾Java
- JQuery獲取當前元素本身jQuery
- java獲取當前時間Java
- Qt獲取當前時間QT
- js獲取當前時間JS
- Qt 獲取當前時間QT
- 使用JS獲取當前地理位置方法彙總JS
- oracle 10046當前會話Oracle會話
- jQuery如何獲取當前元素的索引jQuery索引
- javascript獲取當前的時間戳JavaScript時間戳
- 用Java獲得當前效能資訊Java
- Oracle查詢當前會話的sidOracle會話
- Spring Security - 獲取當前登入使用者的詳細資訊Spring
- 微信小程式獲取當前位置微信小程式
- Android獲取當前桌面桌布Android