2、带参数的存储过程
举例:
给指定的员工涨100元工资,并且打印涨前和涨后的薪水。
使用的表和数据:
create table EMP
(
empno VARCHAR2(16) not null,
ename VARCHAR2(16) not null,
sal NUMBER,
comm NUMBER,
job VARCHAR2(16),
deptno NUMBER
);
insert into EMP (empno, ename, sal, comm, job, deptno)
values ('7839', 'xiaoming', 1200, 500, 'Actor', 12);
insert into EMP (empno, ename, sal, job, deptno)
values ('7566', 'xiaowang', 800, 'Lawyer', 12);
commit;
创建一个带有参数的存储过程
create or replace procedure addSal(pempno in emp.empno%type)
as
pename emp.ename%type;
beforesal emp.sal%type;
aftersal emp.sal%type;
begin
select ename,sal into peame,beforesal from emo where empno=pempno;
aftersal := beforesal+100;
update emp set sal=aftersal where empno=pempno;
dbms_output.put_line('姓名: '||pename||' 涨前工资:'||beforesal||'涨后工资:'||aftersal);
end;
存储过程的调用输出:
begin
addSal(7566);
end;