获取绑定变量语句中传入的值

查看绑定变量的值
 
--还有一种方式
--首先查询出这条SQL 语句的 HASH_VALUE
select A.SQL_ID,A.HASH_VALUE,A.CHILD_NUMBER,A.SQL_TEXT from v$sql a where A.SQL_TEXT like 'SELECT T_LTE_CARD_INFO.PK,%'
 
2621316314    0  SELECT T_LTE_CARD_INFO.PK,%.....
 
--传入HASH_VALUE的值
select * from table(dbms_xplan.display_cursor(2621316314,0,'ADVANCED'));
select * from table(dbms_xplan.display_cursor(2621316314,0,'ADVANCED ALLSTATS LAST PEEKED_BINDS'));
或者
select t.* from v$sql s,table(dbms_xplan.display_cursor(s.sql_id,s.child_number,'ADVANCED ALLSTATS LAST PEEKED_BINDS')) t where s.sql_id = '6g0tcbdcr08b9';

查询结果中有 如下的值就是传入的值及类型
Peeked Binds (identified by position):
--------------------------------------

   1 - (NUMBER): 99
   2 - (NUMBER): 100
 
--使用视图获取
【视图V$SQL_BIND_CAPTURE】
SQL> select name,datatype_string,VALUE_STRING from v$sql_bind_capture where sql_id='xxx';
需要注意三点:
1.这个视图是一个快照视图,并不会保存所有执行过的SQL的绑定变量,能不能看到完全靠运气
2.这个视图只保留同一SQL最后一次捕获到的绑定变量
3.如果绑定变量是DATE类型则无法直接查看到的,后面会讲查看的技巧
 
视图DBA_HIST_SQLBIND】
这个视图是v$sql_bind_capture的历史数据,有同一个SQL不同时间的绑定变量值。不过也是不完整的。
 
--这个sql从awr中读取绑定变量值信息
select instance_number,  sql_id,name, datatype_string, last_captured,value_string from dba_hist_sqlbind where sql_id='fahv8x6ngrb50'order by LAST_CAPTURED,POSITION;
 
 




转载于:https://www.cnblogs.com/cure-t-x-y/p/4241452.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值