sql >> Databasteknik >  >> RDS >> Oracle

Finns det något sätt att få information om aktuell session från gv$session i Oracle?

Prova detta:

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

Eftersom du är intresserad av aktuell session måste den aktuella sessionen vara på den lokala instansen (per definition), så använd V$SESSION istället för GV$SESSION . Allt du behöver är också AUDSID för att unikt identifiera din session.

Om du har någon anledning verkligen måste använda GV$SESSION (kan inte föreställa mig varför det skulle vara det), du kan göra så här istället:

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

Också ett alternativt sätt att få SID för den aktuella sessionen är:

select sid from v$mystat where rownum=1;

Hoppas det hjälper.



  1. SELECT * FROM TABLE (pipelined funktion):kan jag vara säker på ordningen på raderna i resultatet?

  2. PDB Koppla bort ORA-17528 Fel

  3. MySQL-parameteriserad fråga med Like

  4. Hur laddar man upp lång blob (bild) till mysql-databasen med java och hämtar i php?