欢迎来到天天文库
浏览记录
ID:41198989
大小:739.00 KB
页数:23页
时间:2019-08-18
《DynamicSQL动态SQL》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、DynamicSQLWhatWillILearn?RecallthestagesthroughwhichallSQLstatementspassDescribethereasonsforusingdynamicSQLtocreateaSQLstatementListfourPL/SQLstatementssupportingNativeDynamicSQLDescribethebenefitsofEXECUTEIMMEDIATEoverDBMS_SQLforDynamicSQLWhyLearnIt?In
2、thislesson,youlearntoconstructandexecuteSQLstatementsdynamically—inotherwords,atruntimeusingtheNativeDynamicSQLstatementsinPL/SQL.DynamicallyexecutingSQLandPL/SQLcodeextendsthecapabilitiesofPL/SQLbeyondqueryandtransactionaloperations.Thelessonalsocompare
3、sNativeDynamicSQLtotheDBMS_SQLpackage,whichprovidessimilarcapabilities.ExecutionFlowofSQLAllSQLstatementsinthedatabasegothroughvariousstages:Parse:pre-execution“isthispossible?”checksincludingsyntax,objectexistence,privilegesandsoonBind:gettingtheactualv
4、aluesofanyvariablesreferencedinthestatementExecute:thestatementisexecutedFetch:resultsarereturnedtotheuser.Somestagesmaynotberelevantforallstatements—forexample,thefetchphaseisapplicabletoqueriesbutnotDML.ExecutionFlowofSQLinPL/SQLSubprogramsWhenaSQLsta
5、tementisincludedinaPL/SQLsubprogram,theparseandbindphasesarenormallydoneatcompiletime,iewhentheprocedure,functionorpackagebodyisCREATEd.WhatifthetextoftheSQLstatementisnotknownwhentheprocedureiscreated?HowcouldtheOracleserverparseit?Itcouldn’t.Forexample
6、,supposewewanttoDROPatable,buttheuserwillenterthetablenameatexecutiontime:DynamicSQLWeusedynamicSQLtocreateaSQLstatementwhosetextisnotcompletelyknowninadvance.DynamicSQL:•Isconstructedandstoredasacharacterstringwithinasubprogram.•IsaSQLstatementwithvaryi
7、ngcolumndata,ordifferentconditionswithorwithoutplaceholders(bindvariables)•Enablesdata-definition,data-control,orsession-controlstatementstobewrittenandexecutedfromPL/SQL•IsexecutedwithNativeDynamicSQLstatements(EXECUTEIMMEDIATE)ortheDBMS_SQLpackageDynam
8、icSQLstatementsareparsedatexecutiontime,notatcompiletime.NativeDynamicSQLProvidesnativesupportforDynamicSQLdirectlyinthePL/SQLlanguageProvidestheabilitytoexecuteSQLstatementswhosestructureisunknownuntilexecutiontimeUsesthe
此文档下载收益归作者所有