当前位置:Gxlcms > 数据库问题 > oracle存储过程

oracle存储过程

时间:2021-07-01 10:21:17 帮助过:3人阅读

 [or replaceprocedure 过程名  --or replace 如果存储过程已经存在则覆盖替代原有的过程

( p1 in|out datatype,           ----入参和出参两种参数   p2 in|out datatype,          ---datatype表示出入参变量对应的数据类型   ...   pn in|out datatype          is            ....--过程当中使用到的声明变量       begin           ....--存储过程的具体操作       end;   2、例子:调用存储过程来获取学生对应的课程成绩排名 create or replace  procedure sp_score_pm( p_in_stuid in varchar2,   --学号     p_in_courseid in  varchar2, --课程ID p_out_pm out number      --排名 ) is ls_score number:=0; ls_pm number:=0; begin   --获取该学生的成绩   select t.score into ls_score from score t    where t.stuid = p_in_stuid     and t.courseid = p_in_courseid;   --获取成绩比该学生高的人数   select count(1) into ls_pm from score t    where t.courseid = p_in_courseid    and  t.score>ls_score;    --得到该学生的成绩排名    p_out_pm:=ls_pm+1; exception   when no_data_found  then      dbms_output.put_line(‘该学生的课程:‘||p_in_courseid|| ‘的成绩在成绩表中找不到‘); end;   3、优点

1、降低总体开发成本。存储过程把执行的业务逻辑PL/SQL块和多条SQL语句封装到存储过程,只需要调用写好的过程,获取想要的结果 。

2、增加数据的独立性。它的作用和视图的作用类似,假如表的基础数据发生变化,我们只需要修改过程当中的代码,而不需要修改调用程序。 

3、提高性能。 一个功能的开发可能需要多个SQL语句,多个PL/SQL程序块 ,使用存储过程,Oracle只需一次编译,随时可以调用。 如果直接把许多SQL语句写进程序当中,需要多次编译,多次连接数据库。

oracle存储过程

标签:cep   put   core   var   结构   lin   rom   acl   它的   

人气教程排行