2019独角兽企业重金招聘Python工程师标准>>>

我们在处理sql语句性能问题时,很多时候,提取到的sql语句带了绑定变量的,不能直接拿来运行,如下的sql语句,直接执行,会报变量没有赋值之类的错误.

SELECT A.RECIPE_ID

FROM CIS_OPD_CLINIC A, TABLE(xxx.STR2LIST(:B1 )) B

WHERE A.RECIPE_ID = B.COLUMN_VALUE

OR A.PARENTID = B.COLUMN_VALUE

ORA-01008: 并非所有变量都绑定.

那么这个B1 具体是什么值呢?

马上查询v$sqlarea中的sql_id

SQL> SELECT sql_id, child_number , sql_text FROM v$sql WHERE upper(sql_text) Like '%SELECT A.RECIPE_ID FROM CIS_OPD_CLINIC A, TABLE(xxx.STR2LIST(:B1 )) B WHERE A.RECIPE_ID = B.COLUMN_VALUE OR A.PARENTID = B.COLUMN_VALUE%'

2 ;

SQL_ID CHILD_NUMBER SQL_TEXT

------------- ------------ --------------------------------------------------------------------------------

cn2c9mf5f9xda 0 SELECT sql_id, child_number , sql_text FROM v$sql WHERE upper(sql_text) Like '%

07zdmp13w1zw6 0 SELECT A.RECIPE_ID FROM CIS_OPD_CLINIC A, TABLE(ZLBASE.STR2LIST(:B1 )) B WHERE A

07zdmp13w1zw6 1 SELECT A.RECIPE_ID FROM CIS_OPD_CLINIC A, TABLE(ZLBASE.STR2LIST(:B1 )) B WHERE A

07zdmp13w1zw6 2 SELECT A.RECIPE_ID FROM CIS_OPD_CLINIC A, TABLE(ZLBASE.STR2LIST(:B1 )) B WHERE A

07zdmp13w1zw6 3 SELECT A.RECIPE_ID FROM CIS_OPD_CLINIC A, TABLE(ZLBASE.STR2LIST(:B1 )) B WHERE A

3akum7jd5b8j5 0 SELECT sql_id, child_number , sql_text FROM v$sql WHERE upper(sql_text) Like

bjvppgp4jrfh8 0 SELECT sql_id, child_number , sql_text FROM v$sql WHERE upper(sql_text) Like '

2na7kxsh0msa6 0 select sql_id, address, hash_value, executions, loads, parse_calls, invalidation

8 rows selected

通过以下sql语句察看

SELECT name ,position,datatype_string,was_captured,value_string

FROM v$sql_bind_capture

WHERE sql_id = '&SQLID';

SQL> SELECT name ,position,datatype_string,was_captured,value_string

2 FROM v$sql_bind_capture

3 WHERE sql_id = '&SQLID';

输入: 07zdmp13w1zw6

SQL>

NAME POSITION DATATYPE_STRING WAS_CAPTURED VALUE_STRING

------------------------------------------------------------ ---------- ------------------------------ ------------ --------------------------------------------------------------------------------

:B1 1 VARCHAR2(2000) NO

:B1 1 VARCHAR2(2000) NO

:B1 1 VARCHAR2(128) NO

:B1 1 VARCHAR2(128) NO

这样,我们就已经找到:B1的值,代入原sql中,就可以正常执行了.

重庆思庄18年4月OCP认证培训周末班正在授课,欢迎联系试听!新的OCP周末班将于6月2日开课,火热报名中,名额有限,请提前预定!更多详情访问思庄网站咨询在线客服。

转载于:https://my.oschina.net/u/3761438/blog/1796327

如何提取sql语句中绑定变量的值?相关推荐

  1. Java Sql语句中查询变量

    Sql语句中,查询变量:'"+users+"',users是变量名: package com.snack.pay; import java.sql.Connection; impo ...

  2. Java SQL语句中插入变量

    问题描述 我们在sql语句中直接把id用一个变量来表示会报错 解决方案: 提示:在变量两侧加上' "+ +" '将源代码改为 String sql="select * f ...

  3. oracle 打印值,oracle – 在SQL Developer中打印变量的值

    我想打印一个特定变量的值在一个匿名块内.我使用Oracle SQL Developer.我尝试使用dbms_output.put_line.但它不工作.我使用的代码如下所示. SET SERVEROU ...

  4. java正则获取sql表名_如何提取SQL语句中的表名

    如果不带别名的话,可以就正则实现. 不过java的正则有些限制,所以对于from中多于10张表的就有问题了,不多可以自己在添加,考虑不是很完善 Stringstr="INSERTINTOA\ ...

  5. mysql数据库sql语句中使用变量_mysql数据库sql语句中使用变量

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  6. 【C# .NET】Oracle数据库连接的坑之传入parameters参数名SQL语句中的参数变量名不匹配(顺序不一致)的问题

    问题描述 有一个user表,需要修改id为10086的用户的姓名和年龄,在C#的后台这样写: using (IDbConnection db = DapperFactory.GetConnection ...

  7. oracle java 绑定变量的值_Oracle SQL调优之绑定变量用法简介

    最近在看<基于Oracle的SQL优化一书>,并做了笔记,作者的个人博客:http://www.dbsnake.net/ @ 一.SQL执行过程简介 继上一篇博客Oracle的cursor ...

  8. SQL允许你用EXECUTE执行一个变量中定义的SQL语句,并且允许你在被执行的SQL语句中,再次嵌套入一个变量定义的语句,并且再次在其中用EXECUTE执行它...

    declare @sqlstr varchar(3000) set @sqlstr='declare @subsqlstr varchar(1000);' set @sqlstr=@sqlstr+'s ...

  9. mysql jdbc 绑定变量_jdbc测试mysql数据库sql预解析(绑定变量)

    jdbc测试mysql数据库sql预解析(绑定变量) 用习惯了oracle,学习mysql,想测试一下mysql绑定变量的效果.以前看网上介绍大部份都说mysql没有sql共享池的概念,所以也不存在s ...

最新文章

  1. OpenCV(一)图像读取与新建、图像显示、操作图像像素(2种涂色并比较算法优劣、输出RGB)
  2. Linux之traceroute命令使用详解—网络故障定位(三)
  3. 直面Java第45期
  4. MyBatis 为什么需要通用 Mapper ? 1
  5. CLR: 那些你不知道你不知道的事情 程序集(Assembly)和模块(Managed Module)
  6. 仅需10道题轻松掌握Python字符串方法 | Python技能树征题
  7. 水土不服的SNS,落地生根的网游
  8. mysql bit_or() bit_count()函数
  9. hdu1527取石子游戏---(威佐夫博弈)
  10. 人工智能--状态空间问题求解方法
  11. javascript 自定义对象的两种方法
  12. 开源美颜滤镜SDK代码解析
  13. Python通用编程 - 第二章:流程控制
  14. Scale和Resolution的相互转换算法
  15. 【网站】八大极品桌面壁纸网站,惊艳
  16. RuoYi-flowable工作流管理
  17. iOS编辑预览视频小结
  18. 如何检查您附近(或任何地方)的空气质量
  19. 地图坐标系之间的转换(百度地图、GCJ、WGS84)
  20. 【论文】针对图片过大问题,在不降低图片dpi的情况下缩小图片大小

热门文章

  1. php ajax国家时间,php ajax 实时显示时间
  2. centos7切换root为mysql,CentOS 7中使用rpm方式安装MySQL 5.7后无法使用root登录解决
  3. 站怎么点都是一样_搞笑段子:都说女人是水做的,你怎么不太一样
  4. php写cms,浅谈thinkPHP,国内写CMS利用率最高的框架
  5. 和could的区别用法_have to 与 must 用法及区别
  6. 2047.句子中的有效单词数
  7. linux根目录数量限制,windows,linux文件夹下文件上限最大个数
  8. 前端 new实例后销毁实例_后浇带怎么做不漏浆?看个实例
  9. UART协议概述与实现
  10. 20210424:力扣第237周周赛(下)