欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

oracle存储过程的创建及测试 博客分类: oracle数据库 oracle数据库存储过程 

程序员文章站 2024-03-25 15:14:16
...

存储过程的创建及测试

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

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

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

声明存储过程截图如下:


oracle存储过程的创建及测试
            
    
    博客分类: oracle数据库 oracle数据库存储过程 
  

编写完成点击oracle存储过程的创建及测试
            
    
    博客分类: oracle数据库 oracle数据库存储过程 按钮进行编译。

实现存储过程截图如下:


oracle存储过程的创建及测试
            
    
    博客分类: oracle数据库 oracle数据库存储过程 
  

编写完成同样要点击oracle存储过程的创建及测试
            
    
    博客分类: oracle数据库 oracle数据库存储过程 进行编译。

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


oracle存储过程的创建及测试
            
    
    博客分类: oracle数据库 oracle数据库存储过程 
  

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

b.序列的创建

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

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


oracle存储过程的创建及测试
            
    
    博客分类: oracle数据库 oracle数据库存储过程 
  

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

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

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


oracle存储过程的创建及测试
            
    
    博客分类: oracle数据库 oracle数据库存储过程 
  

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


oracle存储过程的创建及测试
            
    
    博客分类: oracle数据库 oracle数据库存储过程 
  

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

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

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


oracle存储过程的创建及测试
            
    
    博客分类: oracle数据库 oracle数据库存储过程 
  

存储过程的实现如下图:


oracle存储过程的创建及测试
            
    
    博客分类: oracle数据库 oracle数据库存储过程 
  

e.游标的使用

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

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

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

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


oracle存储过程的创建及测试
            
    
    博客分类: oracle数据库 oracle数据库存储过程 
  

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


oracle存储过程的创建及测试
            
    
    博客分类: oracle数据库 oracle数据库存储过程 
  

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

存储过程的实现如下图:


oracle存储过程的创建及测试
            
    
    博客分类: oracle数据库 oracle数据库存储过程 
  

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