暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle存储过程

淡定 2025-03-17
19


一、含义

存储过程实际上是封装在服务器上一段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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论