ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 查询绑定变量的值

查询绑定变量的值

原创 Linux操作系统 作者:eric_zhyd 时间:2013-06-05 23:07:52 0 删除 编辑
有好长一段时间没有发表过任何文章,主要是近期工作都没有做与ORACLE相关的事宜。今天正好有一些时间,记录一个技巧性的SQL语句。

我们通常在想找一个SQL中包含的绑定变量值时,10046是条件反射的一个操作。不过有的时候,我们希望知道一个已经存在的硬解析到底运用了什么绑定变量进行执行计划生成。可能就需要以下的命令进行查询:

ZHONG@ zhongpdb SQL>var p1 number;
ZHONG@ zhongpdb SQL>begin
  2  :p1 := 2300;
  3  end;
  4  /

PL/SQL 过程已成功完成。

ZHONG@ zhongpdb SQL>select count(*) from t1 where object_id > :p1 ;

  COUNT(*)
----------
     68839

ZHONG@ zhongpdb SQL>col sql_text format a80
ZHONG@ zhongpdb SQL>SELECT sql_id, child_number , sql_text FROM v$sql WHERE  LOWER(sql_text) LIKE '&SQLTEXT';
输入 sqltext 的值:  select count(*) from t1%
原值    1: SELECT sql_id, child_number , sql_text FROM v$sql WHERE  LOWER(sql_text) LIKE '&SQLTEXT'
新值    1: SELECT sql_id, child_number , sql_text FROM v$sql WHERE  LOWER(sql_text) LIKE 'select count(*) from t1%'

SQL_ID        CHILD_NUMBER SQL_TEXT
------------- ------------ --------------------------------------------------------------------------------
2zbp0v9dgsrru            0 select count(*) from t1 where object_id > :p1

ZHONG@ zhongpdb SQL>SELECT name
  2    ,      position
  3    ,      datatype_string
  4    ,      was_captured
  5    ,      value_string
  6  FROM   v$sql_bind_capture
  7  WHERE  sql_id = '&SQLID';
输入 sqlid 的值:  2zbp0v9dgsrru
原值    7: WHERE  sql_id = '&SQLID'
新值    7: WHERE  sql_id = '2zbp0v9dgsrru'

NAME                                                           POSITION DATATYPE_STRING                WAS
------------------------------------------------------------ ---------- ------------------------------ ---
VALUE_STRING
-------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------
:P1                                                                   1 NUMBER                         YES
2300


此方法只能对第一次硬解析时有效,软解析无法截获变量信息!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12974804/viewspace-763141/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-03-13

  • 博文量
    21
  • 访问量
    519450