1.动态 SQL
动态 SQL 是指在PL/SQL程序执行时生成的 SQL 语句 编译程序对动态 SQL
不做处理,而是在程序运行时动态构造语句、对语句进行语法分析并执行 DDL 语句命令和会话控制语句不能在 PL/SQL中直接使用,但是可以通过动态 SQL 来执行
执行动态 SQL 的语法:
EXECUTE IMMEDIATE 字符串类型的命令
[INTO 变量]
[USING 参数];
execute immediate 字符串参数 [into] 变量 using 参数
immediate后面跟的参数:它是一个字符串类型的sql语句,或者字符串类型的plsql代码
into 变量:是把sql语句的执行结果保存到变量中
using 参数:传给sql语句的参数
如:
--按照员工编号查询员工的信息
declare
--声名一个变量保存员工信息
v_emp emp%rowtype;
--声名一个字符串类型变量
v_sql varchar2(255);
begin
execute immediate 'select * from emp where empno=7369' into v_emp;
dbms_output.put_line(v_emp.ename||','||v_emp.job);
v_sql:='select * from emp where empno=7369';
execute immediate v_sql into v_emp;
dbms_output.put_line(v_emp.ename||','||v_emp.job);
v_sql:='select * from emp where empno=:a and deptno=:b';
execute immediate v_sql into v_emp using 7369,20;
按照顺序将两个数输入进去一一对应。
dbms_output.put_line(</