动态sql

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态sql相关的知识,希望对你有一定的参考价值。

--动态SQL的几种用法
但有的时候,从应用的需要或程序的编写出发,都可能需要用到动态SQl,如:
当 from 后的表 不确定时,或者where 后的条件不确定时,都需要用到动态SQL
1、动态游标
TYPE 游标类型 IS REF CURSOR; --定义一个动态游标
游标名  游标类型;
DECLARE
TYPE emp_cur IS REF CURSOR;
my_emp_cur emp_cur;
my_emp_rec findsdata.test_emp%ROWTYPE;
BEGIN
OPEN my_emp_cur FOR ‘select * from findsdata.test_emp where deptno=:x‘
USING 30;
LOOP
FETCH my_emp_cur
INTO my_emp_rec;
EXIT WHEN my_emp_cur%NOTFOUND;
dbms_output.put_line(my_emp_rec.ename || ‘|‘ || my_emp_rec.sal);
END LOOP;
END;

2.execute immediate 动态绑定
declare
v_out varchar2(10);
v_sql varchar2(1000);
begin
v_sql := ‘select union_source from findsdata.c_init_union_source where init_user=:init_user and init_table=:init_table‘;
execute immediate v_sql
into v_out
using &init_user,&init_table;
dbms_output.put_line(v_out);
end;






























以上是关于动态sql的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis:动态sql语句

动态SQL是什么??什么是静态SQL,动态SQL的动态体现在哪里???

jpa 如何优雅的实现动态sql

Mybatis -- 动态Sql概述动态Sql之<if>(包含<where>)动态Sql之<foreach>sql片段抽取

mybatis 动态SQL .2

mybatis 详解------动态SQL