当前位置:Gxlcms > 数据库问题 > 动态sql

动态sql

时间:2021-07-01 10:21:17 帮助过:19人阅读

--动态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

标签:type   open   编写   amp   arc   data   绑定   declare   sel   

人气教程排行