plsql绑定变量用法小结

plsql绑定变量用法小结

ID:8973074

大小:285.00 KB

页数:19页

时间:2018-04-13

plsql绑定变量用法小结_第1页
plsql绑定变量用法小结_第2页
plsql绑定变量用法小结_第3页
plsql绑定变量用法小结_第4页
plsql绑定变量用法小结_第5页
资源描述:

《plsql绑定变量用法小结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、之前对ORACLE中的变量一直没个太清楚的认识,比如说使用:、&、&&、DEIFINE、VARIABLE……等等。今天正好闲下来,上网搜了搜相关的文章,汇总了一下,贴在这里,方便学习。 ==================================================================================  在oracle中,对于一个提交的sql语句,存在两种可选的解析过程,一种叫做硬解析,一种叫做软解析.一个硬解析需要经解析,制定执行路径,优化访问计划等许多的步骤.硬解释不仅仅耗费大量的cpu,更重要的是会占据重要的们闩(latch)资源

2、,严重的影响系统的规模的扩大(即限制了系统的并发行),而且引起的问题不能通过增加内存条和cpu的数量来解决。之所以这样是因为门闩是为了顺序访问以及修改一些内存区域而设置的,这些内存区域是不能被同时修改。当一个sql语句提交后,oracle会首先检查一下共享缓冲池(sharedpool)里有没有与之完全相同的语句,如果有的话只须执行软分析即可,否则就得进行硬分析。 而唯一使得oracle能够重复利用执行计划的方法就是采用绑定变量。绑定变量的实质就是用于替代sql语句中的常量的替代变量。绑定变量能够使得每次提交的sql语句都完全一样。 1.sqlplus中如何使用绑定变量,可以通过var

3、iable来定义[c-sharp]viewplaincopyprint?1.SQL> select * from tt where id=1;  2.  3.ID NAME  4.---------- ----------------------------------------  5.1 test  6.  7.SQL> select * from tt where id=2;  8.  9.ID NAME  10.---------- ----------------------------------------  11.2 test  12.  13.SQL> variab

4、le i number;  14.SQL> exec :i :=1;  15.  16.PL/SQL 过程已成功完成。  17.  18.SQL> select *from tt where id=:i;  19.  20.ID NAME  21.---------- ----------------------------------------  22.1 test  1.  2.SQL> exec :i :=2;  3.  4.PL/SQL 过程已成功完成。  5.  6.SQL> select *from tt where id=:i;  7.  8.ID NAME  9.-

5、--------- ----------------------------------------  10.2 test  11.  12.SQL> print i;  13.  14.I  15.----------  16.2  17.  18.SQL> select sql_text,parse_calls from v$sql where sql_text like 'select * from t  19.t where id=%';  20.  21.SQL_TEXT PARSE_CALLS  22.-----------------------------------

6、------------------------- -----------  23.select * from tt where id=2 1  24.select * from tt where id=1 1  25.select * from tt where id=:i 2  26.SQL>  从上面试验发现绑定变量i的使用使查询id=1和id=2的sqlselect*fromttwhereid=:i得以重复使用,从而避免了hardparse,这里的PARSE_CALLS=2包括了一次softparse2.前两天看到有人在pub上问在sqlplus中通过define和varia

7、ble定义的变量的区别。其实define定义的我理解不是变量而是字符常量,通过define定义之后,在通过&或者&&引用的时候不需要输入了,仅此而已。oracle在执行的时候自动用值进行了替换;而variable定义的是绑定变量,上面已经提到。[c-sharp]viewplaincopyprint?1.C:>sqlplus xys/manager  2.SQL*Plus: Release 11.1.0.6.0 - Production on 星期二 4月 

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。