sql语句使用绑定变量方法

sql语句使用绑定变量方法

ID:6735728

大小:40.00 KB

页数:2页

时间:2018-01-24

sql语句使用绑定变量方法_第1页
sql语句使用绑定变量方法_第2页
资源描述:

《sql语句使用绑定变量方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Oracle对SQL的处理过程1、语法检查(syntaxcheck),检查此SQL的拼写是否符合语法。2、语义检查(semanticcheck),诸如检查SQL语句中的访问对象是否存在及该用户是否具备相应的权限。3、对SQL语句进行解析(prase),利用内部算法对SQL进行解析,生成解析树(parsetree)及执行计划(executionplan)。4、执行SQL,返回结果(executeandreturn)。1415926535zr软、硬解析Oracle利用内部的hash算法来取得该sql的hash值,然后在librarycache里查找是否存在该has

2、h值;假设存在,则将此sql与cache中的进行比较;假设“相同”,就将利用已有的解析树与执行计划,而省略了优化器的相关工作。这也就是软解析的过程。诚然,如果上面的2个假设中任有一个不成立,那么优化器都将进行创建解析树、生成执行计划的动作。这个过程就叫硬解析。创建解析树、生成执行计划对于SQL的执行来说是开销昂贵的动作,所以,应当极力避免硬解析,尽量使用软解析。SQL执行计划一个SQL语句表示你所想要得到的但是并没有告诉Server如何去做。例如,利用一个SQL语句,你可能要Server取出所有住在Prague的客户。当Server收到的这条SQL的时候,第一

3、件事情并不是解析它。如果这条SQL没有语法错误,Server才会继续工作。Server会决定最好的计算方式。Server会选择,是读整个客户表好呢,还是利用索引会比较快些。Server会比较所有可能方法所耗费的资源。最终SQL语句被物理性执行的方法被称做执行计划或者是查询计划。一个执行计划有若干基本操作组成。例如,遍历整张表,利用索引,执行一个嵌套循环或Hash连接等等。负责处理或计算最优的执行计划的DBServer组件叫优化器。优化器是建立在其所在的DB资源的基础上而进行工作的。绑定变量查询通常只是因为改变where子句中的内容而产生不同的结果。为了在这种情

4、况下避免硬解析,需要使用绑定变量(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'

5、";Stringparam2="phone="+phoneNo+",custid="+custID;%>"outnum="3">"/>"/>逗号分隔变量,number型的要to_char服务中SQL语句使用绑定变量:

6、1直接执行的SQL语句中的绑定变量:EXECSQLSELECTProduct_Code,Trim(Product_Name),Srv_CodeINTO:vProduct_Code,:vProduct_Name,:vSrv_CodeFROMsGPRSSrvCodeWHEREProduct_Code=:vCur_ProdCodeANDSUBSTR(Srv_Code,1,4)=:vSrv_Code;2动态语句中使用绑定变量:sprintf(vSql_Text,"SELECTbegin_timeFROMdSrvMsg%sWHEREid_no=:vId_NoANDpro

7、duct_code=:vProduct_Code",tail_id);EXECSQLEXECUTEBEGINEXECUTEIMMEDIATE:vSql_TextINTO:vBeginTimeusing:vId_No,:vProduct_Code;END;3游标中使用绑定变量:sprintf(vSql_Text,"SELECTservice_codeFROMssrvinfoWHEREproduct_code=:vProduct_Code");EXECSQLPREPAREpre_getsrv2from:vSql_Text;EXECSQLDECLAREcur_g

8、etsrv2CURSORforpre_

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

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

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