mysql函数动态语句_⾃定义函数动态执⾏SQL语句Oracle 动态SQL有两种写法:⽤ DBMS_SQL 或 execute immediate,建议使⽤后者。
DDL 和 DML
Sql代码 收藏代码
/*** 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;
返回单条结果
Sql代码 收藏代码
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 ;
返回结果集
Sql代码 收藏代码
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;
/
使⽤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查询语句.⽐如,⼀个⽐较通⽤的分页存储过程,可能需要传⼊表名,字段,过滤条件, ...
sp_executesql动态执⾏sql语句并将结果赋值给⼀变量
需求场景: 需动态拼接sql语句进⾏执⾏,并将执⾏的结果赋值给⼀指定变量. 样例代码如下: SELECT @tableName = TAB_NAME FROM dbo.NMR_BLYWBDY WHER ...
ORACLE 查询不⾛索引的原因分析,解决办法通过强制索引或动态执⾏SQL语句提⾼查询速度
(⼀)索引失效的原因分析: <>或者单独的>,
动态执⾏SQL语句
在实际制作过程中,需要动态的拼接SQL语句然后执⾏.具体代码如下: declare @columnName varchar(20),@tempName varchar(20) select @temp ...
mysql 存储过程动态执⾏sql语句
之前经常在程序中拼接sql语句,其实我们也可以在存储过程中拼接sql 语句,动态的执⾏~~ 代码如下: DROP PROCEDURE IF EXISTS SearchByDoctor;CREATE P ...
&lbrack;转]ORACLE 动态执⾏SQL语句
本⽂转⾃:zhaisx.iteye/blog/856472 Oracle 动态SQLOracle 动态SQL有两种写法:⽤ DBMS_SQL 或 execute immediat ...
ORACLE 动态执⾏SQL语句
本⽂转⾃ zhaisx.iteye/blog/856472 Oracle 动态SQL Oracle 动态SQL有两种写法:⽤ DBMS_SQL 或 execute immedia ...
随机推荐
SQL联合查询:⼦表任⼀记录与主表联合查询
今天有⽹友⾥提了这样⼀个关于SQL联合查询的需求: ⼀.有热⼼⽹友的⽅案: ⼆.我的⽅案: select * from ( select a.*,(select top 1 Id from B as ...
Nginx 相关
删除 access.log 之后,要让 Nginx 重新加载⼀下,命令 killall -s USR1 nginx ⽆需新建 access.log ,这个命令会⾃动创建该⽂件 Nginx 的⽇志⽂件轮 ...
win7安装mysql教程视频win7下安装和使⽤Windows XP Mode
如果想在电脑中安装多个操作系统有⼏种⽅法: 1.安装虚拟机,继⽽在虚拟机中安装操作系统.虚拟机个数就相当于电脑个数,常⽤的虚拟机软件有VMVare,VMVare功能齐全,但是安装⽂件较⼤. 2.如果你 ...
通过图⽚对⽐带给你不⼀样的KMP算法体验
KMP 算法,俗称“看⽑⽚”算法,是字符串匹配中的很强⼤的⼀个算法,不过,对于初学者来说,要弄懂它确实不易. 笔者认为,KMP 算法之所以难懂,很⼤⼀部分原因是很多实现的⽅法在⼀些细节的差异.体现在⼏ ...
通过DOM节点操作来获取表单信息
这是之前突发奇想地⽤dom节点的关系来操作表单的故事.. 事情的经过是这样的,⼤概就是⼀个平台注册后有留⾔功能,管理员登录之后可以对这些留⾔进⾏回复.这个页⾯呢,就是通过foreach获取到数据库⾥的 ...
Mine Number&lpar;搜索,暴⼒) ACM省赛第三届 G
Mine Number Time Limit: 1000ms Memory limit: 65536K 有疑问?点这⾥^_^ 题⽬描述 Every one once played the gam ...
C,C++,JAVA char&comma;各占字节数
char在C和C+中占⼀个字节 Java中⽆论是汉字还是英⽂字母都是⽤Unicode编码来表⽰的,⼀个Unicode码是16位,每字节是8位,所以⼀个Unicode码占两字节 /** * The nu ...
golang实现权重轮询调度算法
package main import ( "fmt" "time" ) var slaveDns = map[int]map[string]interface ...
什么是java字节码?
什么是java字节码? java字码是java源程序代码的⼀种较为低级的表⽰.Java编译器将源代码编译成字码后,就可以Java解释器执⾏
Spring MVC中⾃定义的简单⽰例
1. 引⾔ (Interceptor)实现对每⼀个请求处理前后进⾏相关的业务处理,类似于Servlet的Filter. 我们可以让普通的Bean实现HandlerIntercpetor接⼝或继承 ...
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论