初识Oracle函数与存储过程

Oracle中function和procedure的区别:

1). 可以理解函数是存储过程的一种
2). 函数可以没有参数,但是一定需要一个返回值,存储过程可以没有参数,不需要返回值
3). 函数return返回值没有返回参数模式,存储过程通过out参数返回值, 如果需要返回多个参数则建议使用存储过程
4). 在sql数据操纵语句中只能调用函数而不能调用存储过程

函数语法:

create or replace function [functionName] (
	 /* 入参定义,只需要指定数据类型 */
	 [inParamName_1] in [inParamType_1],
	 [inParamName_2] in [inParamType_2],
	 [inParamName_3] in [inParamType_3],
	 ...)
return [returnType] as
	/* 临时变量定义,数据类型与长度 */
	[localViriableName_1] [localViriableType-1];
	[localViriableName_2] [localViriableType-2];
	[localViriableName_3] [localViriableType-3];
	...

begin
/* 逻辑处理SQL,类似于java代码 */
end;

调用方法:

 select [functionName](inParam_1,inParam_2,inParam_3...) from dual;

存储过程语法

create or replace procedure [functionName] (
	 /* 入参定义,只需要指定数据类型 */
	 [inParamName_1] in [inParamType_1],
	 [inParamName_2] in [inParamType_2],
	 [inParamName_3] in [inParamType_3],
	 ...,
	 [outParamName_1] out [outParamType_1],
	 [outParamName_2] out [outParamType_2],
	 [outParamName_3] out [outParamType_3],
 ) as
	/* 临时变量定义,数据类型与长度 */
	[localViriableName_1] [localViriableType-1];
	[localViriableName_2] [localViriableType-2];
	[localViriableName_3] [localViriableType-3];
...

begin
/* 逻辑处理SQL,类似于java代码 */
end;

调用方法:

declare
  /* 出参临时变量个数与存储过程出参个数保持相同 */
  [localOutViriableName_1] [localOutViriableType-1];
  [localOutViriableName_2] [localOutViriableType-2];
  [localOutViriableName_3] [localOutViriableType-3];
  ...
begin
  /* 存储过程出参已赋值给临时出参变量 */ 
  [procedureName](inParam_1,inParam_2,inParam_3,...,localOutViriableName_1,localOutViriableName_2,localOutViriableName_3,...); 
end;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值