目录
不带参数的存储过程
创建一个存储过程,向数据表 dept 中插入一条记录
带 IN 参数的存储过程
在存储过程中接受来自外部的数值,在存储过程中判断该数值是否大于零并显示
输入一个编号,查询数据表emp中是否有这个编号,如果有则显示对应员工姓名,如果没有,则提示没有对应员工
创建一个存储过程,向数据表 dept 中插入一条记录
Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645
不带参数的存储过程
前面已经介绍了存储过程的创建以及调用,下面就通过范例来学习存储过程的使用。
不带参数的存储过程相比起来较为简单,在存储过程中执行某一指定动作序列。下面看一个范例。
创建一个存储过程,向数据表 dept 中插入一条记录
分析:
这个范例不需要参数,只需要在存储过程体中添加一个插入语句即可。过程创建代码如下图
如上图所示。存储过程 pro_tidata 成功创建,尽管过程已经成功创建,但是并没有执行。如果想要执行这个过程,
执行代码如下图所示
即使用 EXEC 命令执行该过程。如前所述,也可以在 PL/SQL块中直接调用,
如下图所示。
带 IN 参数的存储过程
使用 IN 参数可以向存储过程中的程序单元输入数据,在调用的时候提供参数值,被存储过程读取。
这种模式是默认的参数模式。下面就看一个范例。
在存储过程中接受来自外部的数值,在存储过程中判断该数值是否大于零并显示
分析:
这个存储过程可以使用IN参数接受来自外部的数值,进而在存储过程中进行判断。
过程代码如下图所示。
下面来测试一下存储过程是否可用,使用EXEC命令,如下图所示
我们可以看出,存储过程接受外面调用传来的值,进行判断,实现最终要求。
输入一个编号,查询数据表emp中是否有这个编号,如果有则显示对应员工姓名,如果没有,则提示没有对应员工
分析:
输入编号可以对应一个 IN 参数,然后再存储过程中使用 WHERE 语句查询,使用 INTO 子句把结果赋予一个变量。
存储过程如下图所示。
存储过程创建后,下面测试一下是否符合要求,仍然使用EXEC 命令执行,如下图所示。
如图所示,当输入编号为“7369”时,可以在数据表中找到对应记录,并显示结果;如果查询编号为“7320”时,此时数据表中没有对应记录,则显示无此员工。
前面两个例子中 IN 参数只有一个,下面看一个有多个 IN 参数的情况。可以使用无参数存储过程一节的范例。
创建一个存储过程,向数据表 dept 中插入一条记录
分析:
我们这次使用IN参数来实现这个范例,可以定义3个IN参数,分别接收来自外部调用的值。
存储过程如下图所示。
过程创建后,可以通过调用向过程中传递参数,如下图所示。
调用的时候,需要注意,调用时参数的书写顺序应该与存储过程中 IN 参数的顺序一样,
如上图所示,
“22”对应“var deptno”,“MANAGER”对应“var ename”,“BEIJING”对应“var_loc”。如果顺序不一样,应明确指明,例如上面的指令可以修改为如下形式
EXEC pro_add(var_name=>'MANAGER',var_deptno=>22,var_oc=>'BEIING')