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

Bagaimana cara mendapatkan info pelacakan untuk variabel pengikat yang melewati OracleParameter di ODP.NET?

Sebagai salah satu opsi, Anda dapat mengaktifkan penelusuran sql dengan membuang variabel bind dengan menyetel 10046 event level 12 atau 4 untuk satu sesi, baik secara manual atau otomatis (dalam pemicu logon untuk pengguna misalnya):

alter session set events '10046 trace name context forever, level 12';

Setelah itu file jejak akan dibuat dalam direktori yang ditentukan oleh user_dump_dest parameter.

SQL> show parameter user_dump_dest;

NAME                                 TYPE        VALUE                          
------------------------------------ ----------- ------------------------------ 
user_dump_dest                       string      D:\...\diag\rdbms\cdb\cdb 
                                                 \trace   

Ini contohnya:

SQL> alter session set events '10046 trace name context forever, level 12';
  2 variable var number;
  3 exec :var := 1234567;     -- our bind variable
  4 select 1 from dual where 1234567 = :var ;

Di antara informasi lain yang disajikan dalam file jejak yang baru dibuat, kami dapat menemukan informasi tentang kueri, variabel pengikat, dan nilainya:

Anda juga dapat, mulai dari Oracle 10g dan lebih tinggi, meminta v$sql_bind_capture tampilan kinerja dinamis untuk mendapatkan informasi tentang variabel pengikat dan nilainya:

select t.parsing_user_id
     , t.sql_fulltext         -- text of a query
     , bc.name                -- name of a bind variable
     , bc.value_string        -- value of a bind variable
  from v$sqlarea t
  join v$sql_bind_capture bc
    on (bc.sql_id = t.sql_id)
  join v$session s
    on (s.user# = t.parsing_schema_id)
  where s.username = user
    and bc.name in (':VAR') -- name of a bind variable(s), 
                            -- value(s) of which we want to know

Hasil:

PARSING_USER_ID   SQL_FULLTEXT                      NAME    VALUE_STRING   
 ------------------------------------------------------------------------ 
           103   select 1 from dual where 1 =:var  :VAR     1234567



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menghapus baris dengan dependensi dua arah?

  2. Sql:Mengoptimalkan klausa ANTARA

  3. mengubah yyyy-mm-dd menjadi bb/hh/tttt

  4. ORA-00102:ambil di luar urutan C++

  5. Setara dengan tabel eksternal Oracle di SQL Server