如何提取sql语句中绑定变量的值?
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语句中绑定变量的值?相关推荐
- Java Sql语句中查询变量
Sql语句中,查询变量:'"+users+"',users是变量名: package com.snack.pay; import java.sql.Connection; impo ...
- Java SQL语句中插入变量
问题描述 我们在sql语句中直接把id用一个变量来表示会报错 解决方案: 提示:在变量两侧加上' "+ +" '将源代码改为 String sql="select * f ...
- oracle 打印值,oracle – 在SQL Developer中打印变量的值
我想打印一个特定变量的值在一个匿名块内.我使用Oracle SQL Developer.我尝试使用dbms_output.put_line.但它不工作.我使用的代码如下所示. SET SERVEROU ...
- java正则获取sql表名_如何提取SQL语句中的表名
如果不带别名的话,可以就正则实现. 不过java的正则有些限制,所以对于from中多于10张表的就有问题了,不多可以自己在添加,考虑不是很完善 Stringstr="INSERTINTOA\ ...
- mysql数据库sql语句中使用变量_mysql数据库sql语句中使用变量
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- 【C# .NET】Oracle数据库连接的坑之传入parameters参数名SQL语句中的参数变量名不匹配(顺序不一致)的问题
问题描述 有一个user表,需要修改id为10086的用户的姓名和年龄,在C#的后台这样写: using (IDbConnection db = DapperFactory.GetConnection ...
- oracle java 绑定变量的值_Oracle SQL调优之绑定变量用法简介
最近在看<基于Oracle的SQL优化一书>,并做了笔记,作者的个人博客:http://www.dbsnake.net/ @ 一.SQL执行过程简介 继上一篇博客Oracle的cursor ...
- SQL允许你用EXECUTE执行一个变量中定义的SQL语句,并且允许你在被执行的SQL语句中,再次嵌套入一个变量定义的语句,并且再次在其中用EXECUTE执行它...
declare @sqlstr varchar(3000) set @sqlstr='declare @subsqlstr varchar(1000);' set @sqlstr=@sqlstr+'s ...
- mysql jdbc 绑定变量_jdbc测试mysql数据库sql预解析(绑定变量)
jdbc测试mysql数据库sql预解析(绑定变量) 用习惯了oracle,学习mysql,想测试一下mysql绑定变量的效果.以前看网上介绍大部份都说mysql没有sql共享池的概念,所以也不存在s ...
最新文章
- OpenCV(一)图像读取与新建、图像显示、操作图像像素(2种涂色并比较算法优劣、输出RGB)
- Linux之traceroute命令使用详解—网络故障定位(三)
- 直面Java第45期
- MyBatis 为什么需要通用 Mapper ? 1
- CLR: 那些你不知道你不知道的事情 程序集(Assembly)和模块(Managed Module)
- 仅需10道题轻松掌握Python字符串方法 | Python技能树征题
- 水土不服的SNS,落地生根的网游
- mysql bit_or() bit_count()函数
- hdu1527取石子游戏---(威佐夫博弈)
- 人工智能--状态空间问题求解方法
- javascript 自定义对象的两种方法
- 开源美颜滤镜SDK代码解析
- Python通用编程 - 第二章:流程控制
- Scale和Resolution的相互转换算法
- 【网站】八大极品桌面壁纸网站,惊艳
- RuoYi-flowable工作流管理
- iOS编辑预览视频小结
- 如何检查您附近(或任何地方)的空气质量
- 地图坐标系之间的转换(百度地图、GCJ、WGS84)
- 【论文】针对图片过大问题,在不降低图片dpi的情况下缩小图片大小
热门文章
- php ajax国家时间,php ajax 实时显示时间
- centos7切换root为mysql,CentOS 7中使用rpm方式安装MySQL 5.7后无法使用root登录解决
- 站怎么点都是一样_搞笑段子:都说女人是水做的,你怎么不太一样
- php写cms,浅谈thinkPHP,国内写CMS利用率最高的框架
- 和could的区别用法_have to 与 must 用法及区别
- 2047.句子中的有效单词数
- linux根目录数量限制,windows,linux文件夹下文件上限最大个数
- 前端 new实例后销毁实例_后浇带怎么做不漏浆?看个实例
- UART协议概述与实现
- 20210424:力扣第237周周赛(下)