獲取當前會話資訊的方法
一直以為有兩種方法可以獲取當前會話資訊,最近才發現其中一種已經不再適用。
從剛接觸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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Yii2 獲取當前請求的路由資訊路由
- JavaScript 獲取當前月份JavaScript
- 獲取當前時間
- 獲取當前修改的行記錄資料
- JVM 如何獲取當前容器的資源限制?JVM
- php 獲取當前域名和當前協議PHP協議
- Oracle database 19c中獲取當前資料庫版本的方法OracleDatabase資料庫
- Spring Security - 獲取當前登入使用者的詳細資訊Spring
- $request 請求方法 獲取 API 的當前使用者API
- Java:如何輕鬆獲取當前執行的方法名Java
- 獲取當前頁面的topViewControllerViewController
- Java獲取當前星期幾Java
- mybatis獲取當前時間MyBatis
- Flutter 小知識,Key的使用(獲取當前點選Widget位置/獲取當前Widget大小)Flutter
- 使用JS獲取當前地理位置方法彙總JS
- 獲取當前Tomcat例項的埠Tomcat
- 獲取當前時間往前的日期
- Spark獲取當前分割槽的partitionIdSpark
- [系列] Go - 基於 GORM 獲取當前請求所執行的 SQL 資訊GoORMSQL
- python 如何獲取當前時間Python
- Android開發:獲取當前系統時間和日期的方法Android
- 用js獲取當前月份的天數JS
- js獲取當前的具體時間JS
- Java如何獲取當前執行緒Java執行緒
- Linux C獲取當前工作目錄Linux
- 微信小程式獲取當前位置微信小程式
- Flutter獲取當前網路型別Flutter型別
- js根據IP地址獲取當前的省市JS
- php一句話獲取獲取檔案目錄的方法PHP
- 如何用js獲取當前時間和ip地址以及當前城市JS
- 當前仍可用的爬取Youtube影片方法
- 各種語言裡獲取當前模組的方法:ABAP,ABSL,C,nodejsNodeJS
- Java Sound正確獲取一段音訊當前播放的時間Java音訊
- 檢視當前pg會話連線數會話
- react獲取當前頁面的url引數React
- C# 獲取當前伺服器域名C#伺服器
- python怎麼獲取當前是幾點?Python
- 如何用Java獲取當前時間戳?Java時間戳
- 直播app原始碼,uniapp獲取當前位置APP原始碼