一、含义
存储过程实际上是封装在服务器上一段PLSQL代码片断,它已经编译好了,如果客户端调用存储过程,执行效率就会非常高效
二、语法
1、创建存储过程
create procedure 存储过程名称(参数名 in|out 参数类型,参数名 in|out 参数类型,...)
is|as
--声明部分
begin
--业务逻辑
end;
2、修改存储过程
create [or replace] procedure 存储过程名称(参数名 in|out 参数类型,参数名 in|out 参数类型,...)
is|as
--声明部分
begin
--业务逻辑
end;
3、删除存储过程
drop procedure 存储过程名称;
1
4、调用存储过程
--方式一:
call 存储过程名称(...);
--方式二:
declare
begin
存储过程名称(...);
end;
三、演示
1、创建存储过程
--给指定员工涨薪并打印涨薪前和涨薪后的工资
create procedure proc_update_sal(vempno in number,vnum in number)
is
--声明变量
vsal number;
begin
--查询当前的工资
select sal into vsal from emp where empno = vempno;
--输出涨薪前的工资
dbms_output.put_line('涨薪前:' || vsal);
--更新工资
update emp set sal = vsal + vnum where empno = vempno;
--输出涨薪后的工资
dbms_output.put_line('涨薪后:' || (vsal + vnum));
--提交事物
commit;
end;
--给员工编号为7521的员工涨工资10元
call proc_update_sal(7521, 10);
2、修改存储过程
--给指定员工涨薪并打印涨薪前和涨薪后的工资
create or replace procedure proc_update_sal(vempno in number,vnum in number)
is
--声明变量
vsal number;
begin
--查询当前的工资
select sal into vsal from emp where empno = vempno;
--输出涨薪前的工资
dbms_output.put_line('涨薪前:' || vsal);
--更新工资
update emp set sal = vsal + vnum where empno = vempno;
--输出涨薪后的工资
dbms_output.put_line('涨薪后:' || (vsal + vnum));
--提交事物
commit;
end;
--给员工编号为7521的员工涨工资10元
call proc_update_sal(7521, 10);
3、删除存储过程
drop procedure proc_update_sal;
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_38490457/article/details/107976731