码迷,mamicode.com
首页 > 数据库 > 详细

oracle存储过程

时间:2015-10-19 07:10:02      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

简述

保存在数据库中命名的可传若干参数且通常没有返回值的PL/SQL程序块.不能直接被sql调用执行,而是通过execute命令或PL/SQL程序块中调用执行.

 

语法格式

Create [or replace] procedure 存储过程名称 [(参数)] is|as

Begin

主体代码

[exception

异常处理语句]

End [名称];

说明: 1.or replace中的or不能省略

 2.Create or replace没有就创建,有就覆盖原有的

 3.创建之后,主体语句只是被编译并没有被执行

 

调用执行

1.execute命令

Execute 存储过程名称;

 

2.用PL/SQL程序块

Begin

...

存储过程名称;

End;

 

参数模式

1.in模式(输入类型参数,参数由调用者传入,且只能被存储过程读取)

参数名 in 数据类型 [default 默认参数值]

使用default说明:

a.使用default可以给参数设置默认值.

b.当使用默认值时,想要给一些带默认值的传值,另一些不传值的时候,此时用按名称  传值的方式比较方便

 

传入参数的三种方式

A.指定名称传递 (参数名=>传入的参数值...,参数名=>传入的参数值)

B.按位置传递 (参数值...,参数值)

C.混合方式传递 将上面两种方式结合起来,不过要先按位置传递,后面按名称传递

(参数值...,参数值,参数名=>传入的参数值...,参数名=>传入的参数值)

 

2.Out模式(输出类型参数,参数值可以传递到当前存储过程以外的环境中)

变量名 out 数据类型

 

调用out模式存储过程:

A.在PL/SQL块中调用

declare部分声明变量,将参数传入之后就可以直接使用

B.用execute命令调用

使用variable定义变量(variable 变量名 数据类型)

Execute 存储过程名(参数)(Execute 存储过程名(15,:变量名);

说明:15in的值,直接传值即可,后面是out类型的值,要使用定义的变量接收,  且前面要加上:

然后使用printselect语句输出值

Print 变量名 变量名

Select :变量名,:变量名 from dual;

 

3.In out模式(in模式和out模式结合起来)

变量名 in out 数据类型;

 

oracle存储过程

标签:

原文地址:http://www.cnblogs.com/JavaTWW/p/4890843.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!