创建Oracle的存储过程
- Oracle的存储过程定义
create [or replace] procedure 存储过程名( 入参名 in|out(in:入参,out 出参) 类型,入参名 in|out 类型,)
is|as (is或者as 两个任选一个)
begin
业务逻辑过程
end;
例如:输出员工涨薪前的工资和涨薪后的工资
代码:
/*存储过程名为pore_updatesal,入参为员工编号eno和涨薪工资esal */
create or replace procedure pore_updatesal(eno in number,esal in number)
is
/*定义一个vsal变量存储工资 */
vsal number;
begin
/*查询加薪之前的工资*/
select sal into vsal from emp where empno=eno;
/*输出加薪之前的工资*/
dbms_output.put_line('涨薪前工资:'||vsal);
/*更新工资*/
update emp set sal=vsal+esal where empno=eno;
/*输出加薪之后的工资*/
dbms_output.put_line('涨薪后工资:'||(vsal+esal));
/*提交*/
commit;
end;
调用存储过程
方式1:
call pore_updatesal(7788,10)
方式2:(常用)
declare
begin
pore_updatesal(7788,-10);
end;