oracle函数和存储过程的区别
1个回答
展开全部
oracle中函数和存储过程的区别和联系
在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点。刚学完函数和存储过程,下面来和大家分享一下自己总结的关于函数和存储过程的区别。
一、存储过程
1.定义
存储过程是存储在数据库中提供所有用户程序调用的子程序,定义存储过程的关键字为procedure。
2.创建存储过程
create [or replace] procedure 存储过程名
[(参数1 类型,参数2 out 类型……)]
as
变量名 类型;
begin
程序代码体
end;
示例一:无参无返
create
or
replace
procedure
p1
--
or replace代表创建该存储过程时,若存储名存在,则替换原存储过程,重新创建
--
无参数列表时,不需要写()
as
begin
dbms_output.put_line(
'
hello world
'
);
end
;
--
执行存储过程方式1
set
serveroutput on
;
begin
p1();
end
;
--
执行存储过程方式2
set
serveroutput on
;
execute
p1();
示例二:有参有返
create
or
replace
procedure
p2
(name
in
varchar2
,age int
,msg out varchar2
)
--
参数列表中,声明变量类型时切记不能写大小,只写类型名即可,例如参数列表中的name变量的声明
--
参数列表中,输入参数用in表示,输出参数用out表示,不写时默认为输入参数。
--
----------输入参数不能携带值出去,输出参数不能携带值进来,当既想携带值进来,又想携带值出去,可以用in out
as
begin
msg:
=
'
姓名
'
||
name||
'
,年龄
'
||
age;
--
赋值时除了可以使用:=,还可以用into来实现
--
上面子句等价于select '姓名'|
在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点。刚学完函数和存储过程,下面来和大家分享一下自己总结的关于函数和存储过程的区别。
一、存储过程
1.定义
存储过程是存储在数据库中提供所有用户程序调用的子程序,定义存储过程的关键字为procedure。
2.创建存储过程
create [or replace] procedure 存储过程名
[(参数1 类型,参数2 out 类型……)]
as
变量名 类型;
begin
程序代码体
end;
示例一:无参无返
create
or
replace
procedure
p1
--
or replace代表创建该存储过程时,若存储名存在,则替换原存储过程,重新创建
--
无参数列表时,不需要写()
as
begin
dbms_output.put_line(
'
hello world
'
);
end
;
--
执行存储过程方式1
set
serveroutput on
;
begin
p1();
end
;
--
执行存储过程方式2
set
serveroutput on
;
execute
p1();
示例二:有参有返
create
or
replace
procedure
p2
(name
in
varchar2
,age int
,msg out varchar2
)
--
参数列表中,声明变量类型时切记不能写大小,只写类型名即可,例如参数列表中的name变量的声明
--
参数列表中,输入参数用in表示,输出参数用out表示,不写时默认为输入参数。
--
----------输入参数不能携带值出去,输出参数不能携带值进来,当既想携带值进来,又想携带值出去,可以用in out
as
begin
msg:
=
'
姓名
'
||
name||
'
,年龄
'
||
age;
--
赋值时除了可以使用:=,还可以用into来实现
--
上面子句等价于select '姓名'|
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询