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