PL/SQL开发中动态sql的使用
在Oracle中执行动态SQL的几种方法 在一般的sql操作中,sql语句基本上都是固定的,如: SELECT t.empno,t.ename FROM scott.emp t WHERE t.deptno = 20; 但有的时候,从应用的需要或程序的编写出发,都可能需要用到动态SQl,如: 当 from 后的表 不确定时,或者where 后的条件不确定时,都需要用到动态SQL。 一、使用动态游标实现 1、声明动态游标 TYPE i_cursor_type IS REF CURSOR; 2、声明游标变量 my_cursor i_cursor_type; 3、使用游标 n_deptno:=20; dyn_select := 'select empno,ename from emp where deptno='||n_deptno; OPEN my_cursor FOR dyn_select; LOOP FETCH my_cursor INTO n_empno,v_ename; EXIT WHEN my_cursor%NOTFOUND; --用n_empno,v_ename做其它处理 --.... END LOOP; CLOSE dl_cursor; 4、小结:动态游标可以胜任大多数动态SQL的需求了,使用简洁方便居家旅行之必备杀人放火之法宝。 二、使用 EXECUTE