Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Czy jest jakiś sposób na uzyskanie informacji o bieżącej sesji z gv$session w Oracle?

Spróbuj tego:

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

Ponieważ interesuje Cię bieżąca sesja, bieżąca sesja musi znajdować się na lokalnej instancji (z definicji), więc użyj V$SESSION zamiast GV$SESSION . Wszystko czego potrzebujesz to AUDSID aby jednoznacznie zidentyfikować Twoją sesję.

Jeśli masz jakiś powód, naprawdę musisz użyć GV$SESSION (nie potrafię sobie wyobrazić, dlaczego tak by było), możesz to zrobić:

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

Również alternatywny sposób na uzyskanie SID bieżącej sesji to:

select sid from v$mystat where rownum=1;

Mam nadzieję, że to pomoże.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak sprawdzić format daty RRRR-MM-dd GG-MM-ss?

  2. Pierwsze kroki z Oracle LiveSQL

  3. Oracle APEX:menu podręczne

  4. Oracle — jak uzyskać rzeczywisty rozmiar konkretnego wiersza?

  5. sekwencja nie istnieje ORA-02289