1.静态SQLSQL与动态SQL
Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型;另外一种是后期联编(late binding),即SQL语句只有在运行阶段才能建立,例如当查询条件为用户输入时,那么Oracle的SQL引擎就无法在编译期对该程序语句进行确定,只能在用户输入一定的查询条件后才能提交给SQL引擎进行处理。通常,静态SQL采用前一种编译方式,而动态SQL采用后一种编译方式。
本文主要就动态SQL的开发进行讨论,并在最后给出一些实际开发的技巧。
2动态SQL程序开发
理解了动态SQL编译的原理,也就掌握了其基本的开发思想。动态SQL既然是一种”不确定”的SQL,那其执行就有其相应的特点。Oracle中提供了Execute immediate语句来执行动态SQL,语法如下:
http://www.cnblogs.com/gaolonglong/archive/2011/05/31/2064790.html Excute immediate 动态SQL语句 using 绑定参数列表 returning into 输出参数列表;
对这一语句作如下说明:
1)动态SQL是指DDL和不确定的DML(即带参数的DML)
2)绑定参数列表为输入参数列表,即其类型为in类型,在运行时刻与动态SQL语句中的参数(实际上占位符,可以理解为函数里面的形式参数)进行绑定。
3)输出参数列表为动态SQL语句执行后返回的参数列表。
4)由于动态SQL是在运行时刻进行确定的,所以相对于静态而言,其更多的会损失一些系统性能来换取其灵活性。
更多文章:
Oracle 动态SQL execute immediate写法 zt-http://space.itpub.net/14740/viewspace-663092
Oracle动态SQL的拼装要领-http://mikixiyou.iteye.com/blog/1720563
Oracle动态SQL-http://blog.csdn.net/hncsy403/article/details/7902908

转载于:https://www.cnblogs.com/svennee/p/4084426.html

Oracle中动态SQL详解相关推荐

  1. [转载]Oracle中动态SQL详解

    1.静态SQLSQL与动态SQL Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型:另外一 ...

  2. oracle中的用户详解 【转】

    oracle中的用户详解 [转] - feiyun8616 - 博客园 (cnblogs.com)https://www.cnblogs.com/feiyun8616/p/6497690.htmlor ...

  3. oracle表名使用变量名,oracle 中动态sql语句,表名为变量,怎么解?

    如果你用的是 Oracle 8i 及以上的版本,那简单,在过程中用 execute immediate sql_str 就行, sql_str 是一个拼凑的 SQL 语句,但这个动态语句中带参数,或 ...

  4. oracle中imp命令详解,ORACLE EXPDP IMPDP数据导入导出命令详解及同EXP IMP命令详细对照...

    ORACLE EXPDP IMPDP数据导入导出命令详解及同EXP IMP 命令详细对比 一.EXPDP IMPDP EXP IMP 可以实现 1.可以实现逻辑备份和逻辑恢复 2.可以在数据库用户之间 ...

  5. oracle中调试存储过程,详解Oracle调试存储过程

    详解Oracle调试存储过程 一 调试关键步骤 1.在要调试的存储过程右键,选择编辑以进行调试,截图如下: 2.点击小瓢虫,弹出调试窗口,截图如下: 3.输入7839员工编号,点击确认,进行调试,截图 ...

  6. MyBatis的动态SQL详解

    MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. MyBatis中用于实现动态SQL的元素主要有:   if choose(when,otherwis ...

  7. mybatis注解动态sql_超全MyBatis动态SQL详解

    MyBatis 令人喜欢的一大特性就是动态 SQL.在使用 JDBC 的过程中, 根据条件进行 SQL 的拼接是很麻烦且很容易出错的.MyBatis 动态 SQL 的出现, 解决了这个麻烦. MyBa ...

  8. mybitys 动态sql 注释_mybatis注解动态sql详解

    关于mybatis已经给大家讲过很多次了,下面要接着给大家介绍mybatis注解动态sql的内容,一起来了解一下mybatis注解开发之三种动态sql吧. 1.脚本sql 对于XML配置方式的动态SQ ...

  9. oracle中to_date函数详解

    to_date()与24小时制表示法及mm分钟的显示: 一.在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用"yyyy-MM-dd HH:mm:ss& ...

最新文章

  1. linux生日_代码简介:让我们用25个Linux事实来庆祝Linux的25岁生日。
  2. 2016BAT+华为+滴滴+搜狗Android开发岗面试问题整理
  3. python写一个表白程序-用Python写一个表白神器让你脱单
  4. 自研DevOps实践
  5. 深度学习数学基础(三): 激活函数、正则化函数、损失函数、评价指标
  6. 如果爱情不会让人受伤
  7. newcode Islands 思维
  8. 剑指offer:8-11记录
  9. 立冬节气,设计师需要的PNG素材已为你备好
  10. 全局loading如何控制
  11. 《Running.Lean.2nd.Edition.Feb.2012》 读书笔记
  12. STEP 7 MicroWin SP9 帮助文档修复
  13. \x3c\x73\x63\x72\x69\x70\x74\x3ealert('xss');\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e
  14. 除了加速上币,OKEx在DeFi热潮中还能做什么?
  15. 电脑出问题解决办法(WinXP)
  16. GNU链接脚本(06) - SECTIONS指令
  17. 当面试官问 promise 的时候,他们希望听到什么(二)
  18. 深入浅出的分析 TreeMap
  19. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之四Git搭建下载实例!
  20. Vue调用本地摄像头权限

热门文章

  1. JSON.toJSONString()空字段不忽略
  2. Android开发笔记(六十九)JNI实战
  3. Spring MVC开启注解
  4. 自动化测试的理想境界:AppCrawler自动遍历工具
  5. Python_异常和模块
  6. jquery源码分析(四)——回调对象 Callbacks
  7. android sp缓存,Android sharedPreference设置缓存时间
  8. wifi管家android,WiFi管家—轻松连上好wifi
  9. rust电器元件需要什么材料_腐蚀Rust电力系统有哪些工具 腐蚀Rust电力系统工具汇总 其他工具-游侠网...
  10. 引物设计软件primer_PCR-引物设计原则