Oracle
 sql >> база данни >  >> RDS >> Oracle

Има ли някакъв начин да получите информация за текущата сесия от gv$session в oracle?

Опитайте това:

SELECT SID, SERIAL#
FROM V$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID');

Тъй като се интересувате от текущата сесия, текущата сесия трябва да е на локалния екземпляр (по дефиниция), така че използвайте V$SESSION вместо GV$SESSION . Освен това всичко, от което се нуждаете, е AUDSID за уникално идентифициране на вашата сесия.

Ако имате някаква причина, наистина трябва да използвате GV$SESSION (не мога да си представя защо би било така), можете да направите това вместо това:

SELECT SID, SERIAL#
    FROM GV$SESSION
    WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID')
      AND INST_ID = USERENV('Instance');

Също така, алтернативен начин за получаване на SID на текущата сесия е:

select sid from v$mystat where rownum=1;

Надявам се, че това помага.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да избягвате символите <,> и &към html обекти в Oracle PL/SQL

  2. Дисплей на Oracle повече от 24 часа

  3. Функция JSON_TABLE() в Oracle

  4. Използване на клаузата IN с низ, разделен със запетая, от изхода на функция replace() в Oracle SQL

  5. Анотацията на Seam @Transactional не работи?