oracle存储过程创建-调试-调用

存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。

优点:效率高,复用性强,安全性高

存储过程的结构:oracle的存储过程包含三部分:过程声明,执行过程部分,存储过程异常(可省略)。

接下来我们来详细讲述一下存储过程

存储过程的语法

create:创建 关键字

or replace: 如果此名称的存储过程已经创建了,那么用这两个关键字可以替换同名的存储过程,不用会报错,可以省略。

procedure:存储过程  意思是创建的是一个存储过程

pro_name: 存储过程的名称。

(参数): 存储过程的参数,可以省略,有参的存储过程在写参数的时候要指定参数的数据类型。

as: 也可以写成is。

plsql_sentences: pl/sql语句,他是存储过程功能实现的主体。

dowith_sentences: 异常处理语句,也是pl/sql语句,可以省略。

1 create [or replace] procedure pro_name (参数) as
2 begin
3     plsql_sentences;
4 [exception]
5     [dowith_sentences;]
6 end pro_name;

存储过程的学习

存储过程的创建(pl/sql)

首先打开plsql软件,在左侧找到procedures文件夹,里面的就是你的存储过程,在上面右键--新建--输入存储过程的名字和参数(名字在里面也可以改,参数可以暂时不管)

 

无参存储过程

上面的介绍对于一些初学者可能不那么好理解,那么我们先用一个例子来让大家认识一下存储过程。

首先我们在oracle中创建一个表(表名T_USER)表结构如下

例子:写一个无参存储过程,向t_user表中添加一条数据。

1 create or replace procedure test1 as
2 begin
3   insert into t_user values('1','张三',22,1,'13718770909',sysdate);
4   commit;
5 end test1;

要注意:test1为存储过程的名字,commit意思是提交事务,end后面跟的一定是存储过程的名字。

有参存储过程

那么通过上面的例子我们就基本知道了无参存储过程的大概。那么接下来让我们看看有参存储过程是怎么写的。

首先我们先介绍一下存储过程的参数

存储过程可以接受多个参数,参数模式包括三种:

in:输入类型 默认 不可修改 可以省略

out:输出类型 只能等待被赋值  不可省略

in out:兼顾上面两种 不可省略 不建议使用这种,如果遇到这种情况,完全可以拆开成两个参数

例子:写一个有参的存储过程,向t_user表中添加一条数据。要求插入的数据都要用参数传递过来的数据。

1 create or replace procedure test2(id varchar2,name varchar2,age number,sex number,tel varchar2,create_time date) is
2 begin
3   insert into t_user values (id,name,age,sex,tel,create_time);
4   commit;
5 end test2;

要注意:test2为存储过程的名称,每个参数要表明类型,但是不能指定长度,参数的名称可以随便起。

存储过程的检查

一个存储过程在创建之后,需要我们验证一下语法是否正确,方法是点击下图的执行按钮(齿轮) 如果最下面出现了编译成功,那么说明此存储过程语法上没有问题。如果有报错,就根据提示信息进行修改即可。

存储过程的调用

写好的存储过程,在oracle中怎么调用呢?

首先打开一个sql操作页面(文件--新建-sql窗口),根据我们所写的存储过程的参数,可以使用call关键字进行调用

比如上面两个例子(test1,test2),他们的调用方法分别为

1 --无参调用方法
2 call test1()
3 --有参调用方法
4 call test2('11','张三',11,0,'13567667897',sysdate)

存储过程的删除

当一个存储过程不再被需要的时候,要将此过程从内存中删除,以释放相应的内存空间,方法一共有两种

1. 语句删除L:drop procedure test1 //test1是存储过程的名称

2. 使用pl/sql工具,直接在左侧的procedures文件夹中找到那个存储过程文件,右键删除即可。

存储过程的调试

在左侧的procedures文件夹中找到你要调试的存储过程文件,右键选择测试,之后按下图操作

 

上面的红框中的五个按钮 从左到右分别为:运行,单步进入(重要),单步跳过,单步退出,运行到下一个异常,一般我们只用到单步进入就可以了。

操作顺序为:点击运行按钮,之后一步步点击单步进入按钮即可。

 

特别注意:我们在存储过程中可以写dbms_output.put_line('ok'); 括号中的ok为参数  类似于java里的System.out.println("ok"); 可以在DBMS输出中看到

接下来会继续更新存储过程中的一些其他的知识及技巧和用法。

  

  

猜你喜欢

转载自www.cnblogs.com/flyinghome/p/12125244.html
今日推荐