首页 > 其他 > 详细

存储过程编写

时间:2020-02-20 16:01:24      阅读:53      评论:0      收藏:0      [点我收藏+]

1.首先,我需要一张基础表

-- 创建学生表,用于测试,不讲究
create table XUESHENG
(
  id        INTEGER,
  xing_ming VARCHAR2(25),
  yu_wen    NUMBER,
  shu_xue   NUMBER
);

2.给里边插入插入数据若干条

insert into XUESHENG (ID, XING_MING, YU_WEN, SHU_XUE)values (1, zhangsan, 70, 70);
insert into XUESHENG (ID, XING_MING, YU_WEN, SHU_XUE)values (2, lisi, 80, 80);
insert into XUESHENG (ID, XING_MING, YU_WEN, SHU_XUE)values (3, wangwu, 90, 90);

3.1创建一个最简单的,没有传入参数,没有传出参数,没有返回值的存储过程

create or replace procedure proc_xuesheng_insert is
begin
  insert into xuesheng values (4, maliu, 90, 90);
  commit;
end proc_xuesheng_insert;
exec proc_xuesheng_insert

技术分享图片

  

 3.2创建一个有传入值的存储过程

create or replace procedure proc_xuesheng_yuwen_add(
temp_name in varchar2,--要改分数的学生名
temp_num in number--要加多少分
) 
is
begin
  update xuesheng set xuesheng.yu_wen=xuesheng.yu_wen+temp_num where temp_name=xuesheng.xing_ming;
  commit;
end;
exec proc_xuesheng_yuwen_add(zhangsan,3)

技术分享图片

 

 

 3.3创建一个有传入值传出值的存储过程

create or replace procedure proc_xuesheng_totalScore(
temp_name in varchar2,
temp_num  out number) is
  num_1 number;
  num_2 number;
begin
  select yu_wen, shu_xue
    into num_1, num_2
    from xuesheng
   where xing_ming = temp_name;
  --dbms_output.put_line(num_1 + num_2);
  temp_num := num_1 + num_2;
end;
var temp_num number
exec proc_xuesheng_totalScore(wangwu,:temp_num)

PL/SQL procedure successfully completed

temp_num
---------
180

 

 

--------------待续

存储过程编写

原文:https://www.cnblogs.com/adamgq/p/12335685.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!