oracle存储过程的创建及测试

阅读更多

存储过程的创建及测试

   注意:本文档的代码与介绍的操作均是在PLSQL Developer 上完成的。

首先,在packages里边创建一个自己的存储过程包,在里边声明要写的存储过程;然后在package bodies 目录下将存储过程实现。需要注意的是,存储过程的名称,参数类型和参数名(这里特别强调参数名称,作为初学者,我在这上边吃过亏,所以印象深刻)要完全一致。

a.下边我们来一起写一个不需要参数的存储过程

声明存储过程截图如下:



  

编写完成点击按钮进行编译。

实现存储过程截图如下:



  

编写完成同样要点击进行编译。

最后我们来测试一下存储过程编写的是否正确。新建一个 Test  Window ,调用存储过程采用“包名.存储过程名”的方式,如下图:



  

注意,虽然该存储过程没有参数,但是调用的时候要写一个小括号在存储过程名后边。查询数据库表LJJ_INCOMESSAGE 中的数据变化。打开DBMS输出窗口查看存储过程的输出结果。

b.序列的创建

 Oracle序列(sequence)是一种数据库项,能够生成一个整数序列。通常用于填充数字类型的主键列。

sequences包下新建一个序列,各数据设置如下图:



  

点击界面下方的“应用”按钮,一个序列就创建成功了。

c.有参数的存储过程的创建及序列的使用

与创建无参数的存储过程类似,首先在packages LJJ_STUDY中声明存储过程,并进行编译,如下图:



  

然后在package body 中进行存储过程的具体实现,并进行编译,如下图:



  

注意:倒数第二行的commit很重要,在数据库中进行的增删改操作之后都要执行commit,否则通过oracleclient连接数据库时获取不到最新数据。

d.抛出异常的存储过程的创建及测试

有异常抛出的存储过程创建时多两个输出参数,存储过程声明截图如下:



  

存储过程的实现如下图:



  

e.游标的使用

前面介绍的存储过程都是对数据的增加,修改或者删除,那么又返回值的查询操作要怎么完成呢?

首先,介绍一下游标的概念。游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。每个游标区都有一个名字,用户可以用SQL语句逐一从游标中获取记录。

接下来我们一起看看游标是如何定义,如何使用的吧。

先声明对游标的引用,如下图:



  

带有游标参数的存储过程的声明如下图:



  

游标名称为C_group_no,属于输出参数。

存储过程的实现如下图:



  

游标在存储过程中的使用非常普遍,它操作灵活,使用方便,但是要注意字符串的拼接要非常认真,容易出错。

 

你可能感兴趣的:(oracle,数据库,存储过程)