最近工作中有用到存储过程,关于存储过程其中EXECUTE IMMEDIATE在实际开发中用到的还是比较多的 于是乎就把自己在用到时存在的用法及问题在这里总结一下:

如果在存储过程中 有需要创建表格 更改表结构等操作的时候 并且在接下去的操作需要用到新的表或者结构等问题的时候 必须要使用EXECUTE IMMEDIATE 去执行SQL语句,否则由于oracle的机制则会提示报错,表或者表结构未创建或为修改,这里只举两个例子,实际运用得根据情况去判断!

最近的开发过程中也经常使用到执行一个字符串的SQL语句 需要将其插入到一个变量中来,EXECUTE IMMEDIATE 'SELECT T.ID FROM STUDENT T WHERE  A.NAME=''小明''' INTO V_ID(已在存储过程定义的变量名)

这里只是举例,假如小明只有一个 那个会顺利的将值插入到变量中,但如果是该变量存在两个或以上的值则需要用到

BULK COLLECT INTO 变量名;如果要将插入到多个变量中则在后面累加即可。

这里需要注意的是这个变量名必须是个数组类型,否则编译无法通过,如果对其循环可以执行相应的操作。

如果语句中需要用到变量则有两种方法:

方法1:可以拼接字符串类型的SQL语句,如(V_SQL:='SELECT T.ID FROM STUDENT T WHERE  A.NAME='|| V_NAME;)。

方法2:使用USING 关键字 例如: EXECUTE IMMEDIATE 'SELECT T.ID FROM STUDENT T WHERE  A.NAME=:V_NAME' USING '小明' INTO V_ID; 也可以把变量传过来 这里只举例

在一些特殊情况也可以通过这些操作来拼接SQL语句,例如限制条件的区分,这样会使一个SQL语句在不同的场景中有不同的效果,而不只是简单的用变量来取代的作用,

由于我使用oracle也只有几个月时间,所以对这个的心得也大概如此了,希望对大家以后的使用会有所帮助。

oracle execute immediate create,ORACLE EXECUTE IMMEDIATE 用法详解相关推荐

  1. Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解

    Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解 关于expdp和impdp     使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户 ...

  2. oracle中的exists 和 not exists 用法详解

    from:http://blog.sina.com.cn/s/blog_601d1ce30100cyrb.html oracle中的exists 和 not exists 用法详解 (2009-05- ...

  3. oracle中的exists 和not exists 用法详解

    有两个简单例子,以说明 "exists"和"in"的效率问题 1) select * from T1 where exists(select 1 from T2 ...

  4. pssh Oracle,Linux批量远程管理主机命令_pssh用法详解

    (六) pslurp用法-把文件或者目录并行地从多个远程主机复制到中心主机上 它从每台远程计算机收集指定的文件,但是并不覆盖文件的本地版本.pslurp 为每台远程计算机创建一个子目录并把指定的文件复 ...

  5. Oracle之DBMS_SQL包用法详解

    Oracle之DBMS_SQL包用法详解 原文  http://zhangzhongjie.iteye.com/blog/1948093 通常运用 DBMS_SQL 包一般分为 如下 几步: 1. o ...

  6. Oracle Merge Into 的用法详解实例

    Oracle merge into 的用法详解实例 作用:merge into 解决用B表跟新A表数据,如果A表中没有,则把B表的数据插入A表: 语法: MERGE INTO [your table- ...

  7. oracle中取反_oracle正则表达式regexp_like的用法详解

    oracle正则表达式regexp_like的用法详解 更新时间:2013年06月13日 17:42:05   作者: 本篇文章是对oracle正则表达式regexp_like的用法进行了详细的分析介 ...

  8. Oracle中游标Cursor基本用法详解

    这篇文章主要介绍了Oracle中游标Cursor基本用法详解,还是比较全面的,具有一定参考价值,需要的朋友可以了解下. 查询 SELECT语句用于从数据库中查询数据,当在PL/SQL中使用SELECT ...

  9. oracle中minus作的应用,Oracle minus用法详解及应用实例

    Oracle minus用法详解及应用实例 Oracle minus用法 "minus"直接翻译为中文是"减"的意思,在Oracle中也是用来做减法操作的,只不 ...

  10. Oracle之外键(Foreign Key)用法详解(一)

    Oracle外键(Foreign Key)用法详解(一) 1.目标 演示如何在Oracle数据库中使用外键 2.什么是外键? 1)在Oracle数据库中,外键是用来实现参照完整性的方法之一.打个形象的 ...

最新文章

  1. Express.js 中的 Sessions 如何工作?(译)
  2. java简单工厂模式_Java 简单工厂模式
  3. 260. 只出现一次的数字 III 【位运算】
  4. VTK:图片之ImageContinuousErode3D
  5. Asp.Net 章节验证控件章节测试题
  6. Python中判断字符是否为字母、数字、字母和数字组合,验证回文串(LeetCode125)
  7. 详谈DHCP SNOOP等多方面的安全设置(2)
  8. 潍坊学院计算机系崔玲玲,人工免疫算法在引水工程中的应用.pdf
  9. 我国博士生延期毕业率高达68.3%,导致博士延期原来是这10个原因
  10. 软件测试需注意的事项
  11. Android游戏开发基本知识
  12. Android下查看共享库依赖项
  13. 拓端tecdat|python对网络图networkx进行社区检测和彩色绘图
  14. 转载 --关于增量编译
  15. 微信小程序口令红包-语音识别
  16. webrtc QOS方法一(NACK实现)
  17. 前端面试,面试官会问些啥...
  18. 深信服设备电源键关机
  19. 百家号不推荐的文章如何解决呢?
  20. Python-opencv实现Trackbar调节亮度对比度

热门文章

  1. adb连接失败 模拟器无法连接
  2. LVGL的使用:运行LVGL的PC模拟器例程
  3. 联想F31笔记本配置分析
  4. android腾讯视频包名,腾讯视频(com.tencent.qqlive) - 8.3.65.21966 - 应用 - 酷安
  5. cocos2dx tolua ++ 使用 常见得错误
  6. oracle 答辩 问题,数据库答辩题库(含答案)
  7. 爬一爬xxx学校的教务网站
  8. 顶不住攻击的压力,Zoom为用户推出了端到端加密
  9. Wifi热点护理:为无线路由器延年益寿
  10. 光敏电阻控制小灯泡的亮暗代码编写