Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Apakah ada cara untuk mendapatkan informasi tentang sesi saat ini dari gv$session di Oracle?

Coba ini:

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

Karena Anda tertarik dengan sesi saat ini, sesi saat ini harus pada instance lokal (menurut definisi), jadi gunakan V$SESSION bukannya GV$SESSION . Juga, yang Anda butuhkan hanyalah AUDSID untuk mengidentifikasi sesi Anda secara unik.

Jika Anda punya alasan, Anda benar-benar perlu menggunakan GV$SESSION (tidak dapat membayangkan mengapa demikian), Anda dapat melakukan ini sebagai gantinya:

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

Juga, cara alternatif untuk mendapatkan SID sesi saat ini adalah:

select sid from v$mystat where rownum=1;

Semoga membantu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SELECT WHERE nilai ada atau tidak ada

  2. Cara Membuat Prosedur Tersimpan PL/SQL Dengan Parameter Di Database Oracle

  3. Oracle:Menggabungkan beberapa hasil dalam subquery menjadi satu nilai yang dipisahkan koma

  4. Bisakah kita memiliki banyak WITH AS dalam satu sql - Oracle SQL

  5. Pengecualian Java SQL:Hasil Tertutup:berikutnya meskipun tidak ada koneksi atau hasil yang ditutup