Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm cách nào để lấy thông tin theo dõi cho các biến ràng buộc được chuyển qua OracleParameter trong ODP.NET?

Là một trong các tùy chọn, bạn có thể bật tính năng theo dõi sql với kết xuất các biến liên kết bằng cách đặt sự kiện 10046 cấp 12 hoặc 4 cho một phiên, theo cách thủ công hoặc tự động (ví dụ:trong trình kích hoạt đăng nhập cho người dùng):

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

Sau đó, tệp theo dõi đó sẽ được tạo trong một thư mục được chỉ định bởi user_dump_dest tham số.

SQL> show parameter user_dump_dest;

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

Đây là một ví dụ:

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 ;

Trong số các thông tin khác được trình bày trong tệp theo dõi mới được tạo, chúng tôi có thể tìm thấy thông tin về truy vấn, (các) biến liên kết và / giá trị của nó:

Bạn cũng có thể, bắt đầu từ Oracle 10g trở lên, truy vấn v$sql_bind_capture chế độ xem hiệu suất động để nhận thông tin về (các) biến liên kết và giá trị của chúng:

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

Kết quả:

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. java.lang.ClassCastException:com.mchange.v2.c3p0.impl.NewProxyConnection

  2. Hàm FLOOR () trong Oracle

  3. Oracle (ORA-02270):không có khóa chính hoặc duy nhất phù hợp cho lỗi danh sách cột này

  4. Nhận ORA-02391:giới hạn SESSIONS_PER_USER

  5. Biểu thức chữ hoa chữ thường không hoạt động bình thường trong truy vấn sql