oracle动态sql

来源:互联网 发布:设计程序的算法 编辑:程序博客网 时间:2024/05/22 12:01
create table tb_cust
(
id number(4) not null,
cid varchar2(20) not null,
cname varchar2(20)
);

create table tb_orders
(
id number(4) not null,
orderid varchar2(20) not null,
subscribedate varchar2(20) not null,
paymentdate varchar2(20) not null,
custid number(4) not null
);


declare
v_sql varchar2(100);--动态sql
v_sal number(7,2);
v_empno number(4):=&empno;
v_percent number(2):=&percent;
begin
select sal into v_sal from emp where empno =v_empno;
--构造DML动态SQL语句
v_sql:='update emp set sal=sal*(1+:percent/100) where empno=:empno returning sal into :sal';
--使用using语句动态执行DML语句
execute immediate v_sql using v_percent,v_empno returning into v_sal;
Dbms_Output.put_line('增长率:'||v_percent||'%');
Dbms_Output.put_line('新工资:'||v_sal);
end;
/