eygle Eygle.
SQL.PLSQL 2010-11-23

dbms_sqltune解析SQL的BIND_DATA绑定变量值

最近在用户案例分析中,需要解析一下SQL的绑定变量以分析SQL逻辑,通过wrh$_sqlstat的BIND_DATA可以将Oracle存储的绑定变量分析出来。

使用DBMS_SQLTUNE包可以很容易实现这个目的:
SQL> select dbms_sqltune.extract_bind(bind_data, 1).value_string||'-'|| dbms_sqltune.extract_bind(bind_data, 2).value_string ||'-'|| dbms_sqltune.extract_bind(bind_data, 3)
  2         .value_string ||'-'|| dbms_sqltune.extract_bind(bind_data, 4).value_string ||'-'|| dbms_sqltune.extract_bind(bind_data, 5)
  3         .value_string ||'-'|| dbms_sqltune.extract_bind(bind_data, 6).value_string
  4    from wrh$_sqlstat
  5   where sql_id = '88dz0k2qvg876'
  6  /
 
DBMS_SQLTUNE.EXTRACT_BIND(BIND
--------------------------------------------------------------------------------
1-银-5299%-1-银-5299%
1-%-5399%-1-%-5399%
1-%-3399%-1-%-3399%
1-徐洪-2399%-1-徐洪-2399%
1-李有-1599%-1-李有-1599%
1-李有-1599%-1-李有-1599%
1-金星-1599%-1-金星-1599%
1-金星-1599%-1-金星-1599%
1-金星-1599%-1-金星-1599%
1-%-3699%-1-%-3699%
1-%-3699%-1-%-3699%
1-%-3599%-1-%-3599%
很有用的一个过程,记录一下。

By eygle 2010-11-23 11:53 评论 (4)
eygle
eygle

前Oracle ACE Director,云和恩墨创始人。技术为骨,历史为脉,人文为魂。

返回首页

4 Comments

http://www.ulirvision.com/cn


为什么不用 这张表里 dba_hist_sqlbind VALUE_STRING列
这两个有区别吗?

应当是和dba_hist_sqlbind没有区别的吧
不过只能看到快照当时绑定的值啊