Oracle之绑定变量 2
发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,绑定变量(bind variable)我们经常在写plsql中用到,那我们承接上一节的来看看在plsql中静态sql和动态sql在绑定变量的区别declare v_value_a varchar
千家信息网最后更新 2025年11月16日Oracle之绑定变量 2
绑定变量(bind variable)我们经常在写plsql中用到,那我们承接上一节的来看看在plsql中静态sql和动态sql在绑定变量的区别
declare v_value_a varchar2(100); v_value_b varchar2(100); v_name varchar2(50);begin v_value_a := 'SMITH'; select e.ename/*+test*/into v_name from scott.emp e where e.ename = v_value_a; v_value_b := 'ALLEN'; select e.ename/*+test*/into v_name from scott.emp e where e.ename = v_value_b;end;/
查询v$sql
select * from v$sql d where d.SQL_TEXT like '%/*+test*/%';

这里看到只产生了一条sql_id,oracle会自动把变量v_value_a,v_value_b换成绑定变量:B1.
再来看看动态sql
PLSQL_1:declare v_value_a varchar2(100); v_value_b varchar2(100); v_name varchar2(50);begin v_value_a := 'SMITH'; v_value_b := 'ALLEN'; execute immediate 'select e.ename/*+sql*/ from scott.emp e where e.ename = :xxx' using v_value_a; execute immediate 'select e.ename/*+sql*/ from scott.emp e where e.ename = :yyy' using v_value_b;end;/
查询v$sql
select * from v$sql d where d.SQL_TEXT like '%/*+sql*/%';
这里可以看到动态sql就是以执行sql为文本进行解析的,如果两个sql有不同就是不同的sql语句。
2.获取绑定变量的值
那我们可以得到绑定的变量的值吗?通过v$sql_bind_capture就可以查询到
SQL_1:select d.NAME, d.POSITION, d.SQL_ID, value_string from v$sql_bind_capture d where d.SQL_ID in (select sql_id from v$sql v where v.SQL_TEXT like '%/*+sql*/%')
这时我们看到绑定变量的值是上文看到的v_value_a和v_value_b的值。
接着往下走,改变v_value_a的值:
v_value_a := 'CLARK';
执行PLSQL_1,SQL_1
绑定变量的值并没有发生变化,这时为什么呢?
v$sql_bind_capture这个视图是一个快照视图,并不会保存所有执行过的SQL的绑定变量,只会记录最近一次捕获到的绑定值,而已每次捕获都是有间隔时间的。ORACLE为我们提供了一个隐含参数_cursor_bind_capture_interval(默认900s),这个就是控制绑定变量抓取频率的参数。
如果绑定变量是DATE类型则无法直接查看到的。
变量
动态
查询
不同
参数
就是
视图
上文
两个
中用
快照
文本
时间
类型
语句
静态
频率
上一
变化
控制
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
陕西戴尔服务器虚拟化迁移云主机
网络安全宁波
数据库开发工程师的发展前景
前瞻数据库可以查行业均值吗
平凉市天气预报软件开发
通讯技术软件开发
国际网络安全大赛什么时候开始
浪潮软件开发 招聘信息
vps服务器架设
数据库中关系的特征是什么
天津专业服务器机柜云空间云主机
绘画软件开发团队
网络安全管理台帐
政采服务器
上海智慧养老软件开发专业制作
处理数据库的技术
ncre三级网络技术 提纲
中泰证券网络安全服务中标公告
软件开发v字模型
阿里云数据库rds 备份
江苏润广宣传网络技术有限公司
macbook 微信数据库损坏
黑客是做网络安全的吗
数据库查询null的字段
神通数据库double
计算机3级数据库技术
注册页面不连接数据库
百度免费云数据库
杭州万户网络技术有限公司
sql数据库文件附加