Oracle(11g)数据库教程之十七:Oracle存储过程

时间:2024-04-01 12:19:26

Oracle(11g)数据库教程之十七:Oracle存储过程

准备工作:

先启动Oracle,并打开前期建立的数据库和表

Oracle(11g)数据库教程之十七:Oracle存储过程

查看每个表的结构:

Oracle(11g)数据库教程之十七:Oracle存储过程

Oracle(11g)数据库教程之十七:Oracle存储过程

Oracle(11g)数据库教程之十七:Oracle存储过程

一、定义

       Oracle存储过程在实际数据库开发过程当中会经常使用到,作为一个数据库开发者必备的技能,它有着SQL语句不可替代的作用。所谓存储过程,就是一段存储在数据库中执行某块业务功能的程序模块。它是由一段或者多段的PL/SQL代码块或者SQL语句组成的一系列代码块。

二、存储过程的语法

1、procedure 关键字是创建存储过程的命令。

2、create [or replace] :如果存储过程已经存在则覆盖替代原有的过程。

3、in|out :存储过程具有入参和出参两种参数选择,in表示的是入参,out表示的是出参,在使用过程的时候,入参必须得有对应的变量传入,出参得有对应的变量接收。

4、datatype表示出入参变量对应的数据类型。

5、is后面跟着的是过程当中使用到的声明变量。

6、begin...end 中间编写的就是存储过程的具体操作。

  

语法:

Oracle(11g)数据库教程之十七:Oracle存储过程

三、调用存储过程

基本语法:

1、exec | execute 存储过程名(参数1,参数2,...)

2、call存储过程名(参数1,参数2,...);

3、

Begin

    存储过程名(参数1,参数2,...);

end;
注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递
四、删除存储过程

基本语法:
drop procedure存储过程名;

五、存储过程例子

1、创建一个简单的存储过程,输出:您好,Oracle存储过程!

Oracle(11g)数据库教程之十七:Oracle存储过程

调用存储过程:

Oracle(11g)数据库教程之十七:Oracle存储过程

2、有参数的存储过程

例2:根据学号来查看该学生学习了几门课。

Oracle(11g)数据库教程之十七:Oracle存储过程

调用存储过程,查看结果。(同学们可以多试几个学号,然后查看结果)

Oracle(11g)数据库教程之十七:Oracle存储过程

同样例子,用另一个存储过程:

Oracle(11g)数据库教程之十七:Oracle存储过程

调用存储过程:

Oracle(11g)数据库教程之十七:Oracle存储过程

3、例3:创建存储过程,根据输入学号,输出学生姓名。

方式一:

Oracle(11g)数据库教程之十七:Oracle存储过程

调用存储过程,查看结果。(同学们可以多试几个学号,然后查看结果)

Oracle(11g)数据库教程之十七:Oracle存储过程

方式 2:

Oracle(11g)数据库教程之十七:Oracle存储过程

调用存储过程:

Oracle(11g)数据库教程之十七:Oracle存储过程

4、例4:统计student(学生表)中男女同学的人数

Oracle(11g)数据库教程之十七:Oracle存储过程

调用存储过程,查看运行结果:

Oracle(11g)数据库教程之十七:Oracle存储过程

女生人数:

Oracle(11g)数据库教程之十七:Oracle存储过程