1 / 2
文档名称:

SQL语句使用绑定变量方法.doc

格式:doc   大小:69KB   页数:2页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

SQL语句使用绑定变量方法.doc

上传人:435638 2019/2/27 文件大小:69 KB

下载得到文件列表

SQL语句使用绑定变量方法.doc

文档介绍

文档介绍:Oracle对SQL的处理过程1、语法检查(syntaxcheck),检查此SQL的拼写是否符合语法。2、语义检查(heck),诸如检查SQL语句中的访问对象是否存在及该用户是否具备相应的权限。3、对SQL语句进行解析(prase),利用内部算法对SQL进行解析,生成解析树(parsetree)及执行计划(executionplan)。4、执行SQL,返回结果(executeandreturn)。1415926535zr软、硬解析Oracle利用内部的hash算法来取得该sql的hash值,然后在librarycache里查找是否存在该hash值;假设存在,则将此sql与cache中的进行比较;假设“相同”,就将利用已有的解析树与执行计划,而省略了优化器的相关工作。这也就是软解析的过程。诚然,如果上面的2个假设中任有一个不成立,那么优化器都将进行创建解析树、生成执行计划的动作。这个过程就叫硬解析。创建解析树、生成执行计划对于SQL的执行来说是开销昂贵的动作,所以,应当极力避免硬解析,尽量使用软解析。SQL执行计划一个SQL语句表示你所想要得到的但是并没有告诉Server如何去做。例如,利用一个SQL语句,你可能要Server取出所有住在Prague的客户。当Server收到的这条SQL的时候,第一件事情并不是解析它。如果这条SQL没有语法错误,Server才会继续工作。Server会决定最好的计算方式。Server会选择,是读整个客户表好呢,还是利用索引会比较快些。Server会比较所有可能方法所耗费的资源。最终SQL语句被物理性执行的方法被称做执行计划或者是查询计划。一个执行计划有若干基本操作组成。例如,遍历整张表,利用索引,执行一个嵌套循环或Hash连接等等。负责处理或计算最优的执行计划的DBServer组件叫优化器。优化器是建立在其所在的DB资源的基础上而进行工作的。绑定变量查询通常只是因为改变where子句中的内容而产生不同的结果。为了在这种情况下避免硬解析,需要使用绑定变量(bindvariable)。它是用户放入查询中的占位符,它会告诉Oracle随后为这个变量提供一个值,现在需要生成一个方案,但我实际执行语句的时候,我会提供应该使用的实际值。WEB页面执行SQL语句使用绑定变量:<%StringsqlStr="selectto_char(CONTRACT_NO)CONTRACTNO,to_char(id_no)idNo,user_passwdfromdcustmsgwherephone_no=:phoneandcust_id=:custidandsubstr(run_code,2,1)<'a'";Stringparam2="phone="+phoneNo+",custid="+custID;%><wtc:servicename="TlsPubSelCrm"routerKey="phone"routerValue="<%=phoneNo%>"outnum="3"><wtc:paramvalue="<%=sqlStr%>"/><wtc:paramvalue="<%=param2%>"/></wtc:service><wtc:arrayid="rows"scope="end"/>逗号分隔变量,number型的要to_char服务中SQL语句使