[转]ORACLE 动态执行SQL语句
本文转自:http://zhaisx.iteye.com/blog/856472
Oracle 动态SQL
Oracle 动态SQL有两种写法:用 DBMS_SQL 或 execute immediate,建议使用后者。试验步骤如下:
1. DDL 和 DML
- /*** DDL ***/
- begin
- EXECUTE IMMEDIATE 'drop table temp_1';
- EXECUTE IMMEDIATE 'create table temp_1(name varchar2(8))';
- end;
- /*** DML ***/
- declare
- v_1 varchar2(8);
- v_2 varchar2(10);
- str varchar2(50);
- begin
- v_1:='测试人员';
- v_2:='北京';
- str := 'INSERT INTO test (name ,address) VALUES (:1, :2)';
- EXECUTE IMMEDIATE str USING v_1, v_2;
- commit;
- end;
2. 返回单条结果
- declare
- str varchar2(500);
- c_1 varchar2(10);
- r_1 test%rowtype;
- begin
- c_1:='测试人员';
- str:='select * from test where name=:c WHERE ROWNUM=1';
- execute immediate str into r_1 using c_1;
- DBMS_OUTPUT.PUT_LINE(R_1.NAME||R_1.ADDRESS);
- end ;
3. 返回结果集
- CREATE OR REPLACE package pkg_test as
- /* 定义ref cursor类型
- 不加return类型,为弱类型,允许动态sql查询,
- 否则为强类型,无法使用动态sql查询;
- */
- type myrctype is ref cursor;
- --函数申明
- function get(intID number) return myrctype;
- end pkg_test;
- /
- CREATE OR REPLACE package body pkg_test as
- --函数体
- function get(intID number) return myrctype is
- rc myrctype; --定义ref cursor变量
- sqlstr varchar2(500);
- begin
- if intID=0 then
- --静态测试,直接用select语句直接返回结果
- open rc for select id,name,sex,address,postcode,birthday from
- student;
- else
- --动态sql赋值,用:w_id来申明该变量从外部获得
- sqlstr := 'select id,name,sex,address,postcode,birthday from student
- where id=:w_id';
- --动态测试,用sqlstr字符串返回结果,用using关键词传递参数
- open rc for sqlstr using intid;
- end if;
- return rc;
- end get;
- end pkg_test;
- /
[转]ORACLE 动态执行SQL语句的更多相关文章
- ORACLE 动态执行SQL语句
本文转自 http://zhaisx.iteye.com/blog/856472 Oracle 动态SQL Oracle 动态SQL有两种写法:用 DBMS_SQL 或 execute immedia ...
- 使用exec和sp_executesql动态执行SQL语句(转载)
当需要根据外部输入的参数来决定要执行的SQL语句时,常常需要动态来构造SQL查询语句,个人觉得用得比较多的地方就是分页存储过程和执行搜索查询的SQL语句.一个比较通用的分页存储过程,可能需要传入表名, ...
- 第二百八十七节,MySQL数据库-条件语句、循环语句、动态执行SQL语句
MySQL数据库-条件语句.循环语句.动态执行SQL语句 1.if条件语句 delimiter \\ CREATE PROCEDURE proc_if () BEGIN ; THEN ; ELSEIF ...
- 动态执行SQL语句,接收返回值
一.exec和sp_executesql介绍 当需要根据外部输入的参数来决定要执行的SQL语句时,常常需要动态来构造SQL查询语句.比如,一个比较通用的分页存储过程,可能需要传入表名,字段,过滤条件, ...
- ORACLE 查询不走索引的原因分析,解决办法通过强制索引或动态执行SQL语句提高查询速度
(一)索引失效的原因分析: <>或者单独的>,<,(有时会用到,有时不会) 有时间范围查询:oracle 时间条件值范围越大就不走索引 like "%_" ...
- sp_executesql动态执行sql语句并将结果赋值给一变量
需求场景: 需动态拼接sql语句进行执行,并将执行的结果赋值给一指定变量. 样例代码如下: SELECT @tableName = TAB_NAME FROM dbo.NMR_BLYWBDY WHER ...
- 动态执行SQL语句
在实际制作过程中,需要动态的拼接SQL语句然后执行.具体代码如下: declare @columnName varchar(20),@tempName varchar(20) select @temp ...
- 自定义函数动态执行SQL语句
Oracle 动态SQL有两种写法:用 DBMS_SQL 或 execute immediate,建议使用后者. DDL 和 DML Sql代码 收藏代码 /*** DDL ***/ begin EX ...
- Oracle批量执行SQL语句
SQLServer的场合,用";"分割SQL语句即可正常执行. Oracle的场合,会报ORA-00911错误.Oracle中需要加上begin end才正确. Dim Sql A ...
随机推荐
- Sending e-mail
E-mail functionality uses the Apache Commons Email library under the hood. You can use theplay.libs. ...
- Ionic 今天发布了Windows 桌面版的IDE Ionic Lab
Ionic简介: Ionic 是一个强大的 HTML5 应用程序开发框架,号称 Advanced HTML5 Hybrid Mobile AppFramework 是 AngularJS 移动端解决方 ...
- 15款美丽的设备模板,帮助展示你的 APP
有什么更好的方式来显示您的应用程序的外观和感觉呢?你看了这些设计示例之后就会有灵感了.无论是在 iPhone,iPad,Android,还是在桌面应用程序或网站,这些设计都增加了一些视觉上的吸引力,并 ...
- sizzle源码分析 (2)ID 类 tag querySelectorAll 快速匹配
不是所有的选择器都需要去分词,生成相应的匹配函数,这样流程比较复杂,当浏览器具备原生的方法去匹配元素是,没有理由不优先匹配,下面看看进入Sizzle后,它是怎么优先匹配这些元素的: function ...
- Extjs 使用fileupload插件上传文件 带进度条显示
一.首先我们看看官方给出的插件的解释: 一个文件上传表单项具有自定义的样式,并且可以控制按钮的文本和 像文本表单的空文本类似的其他特性. 它使用一个隐藏的文件输入元素,并在用户选择文件后 在form提 ...
- vs2010 未能将脚本调试器附加到计算机上的进程。已附加了一个调试器
图片: 上周不小心升级了IE10,今天,VS2010报:未能将脚本调试器附加到计算机XXX上的进程iexplore.exe . 已附加了一个调试器”.启动调试失败. 到网上查找解决办法,最后用这个解决 ...
- Html技巧 语义化你的代码
首先是关于语义(Semantics)和默认样式的区别,默认样式是浏览器设定的一些常用tag的表现形式,语义化的主要目的就是让大家直观的认识标签(markup)和属性(attribute)的用途和作用. ...
- 从零开始,做一个NodeJS博客(二):实现首页-加载文章列表和详情
标签: NodeJS 0 这个伪系列的第二篇,不过和之前的几篇是同一天写的.三分钟热度貌似还没过. 1 静态资源代理 上一篇,我们是通过判断请求的路径来直接返回结果的.简单粗暴,缺点明显:如果url后 ...
- Flex Viewer
一.Flex Viewer简介 Flex Viewer是ESRI公司推出的可以高效开发基于WEB的地理信息应用系统的一种完全免费的应用程序框架.业务人员使用该框架可以无需任何额外的编程就能够通过简单配 ...
- Office 365 - SharePoint 2013 Online 在应用商店中添加应用
1.在使用应用程序商店的时候,先点击配置应用商店设置,如下图: 2.发现SharePoint要求我们创建应用程序目录,用来分发SharePoint App的一个网站,不过不创建的话,依然可以在应用商店 ...