FUNCTION和PROCEDURE的区别
2014-03-10 10:07
127 查看
FUNCTION和PROCEDURE的区别
1、函数有返回值,过程没有
2、函数调用在一个表达式中,过程则是作为pl/sql程序的一个语句
过程和函数都以编译后的形式存放在数据库中,函数可以没有参数也可以有多个参数并有一个返回值。过程
有零个或多个参数,没有返回值。函数和过程都可以通过参数列表接收或返回零个或多个值,函数和过程的
主要区别不在于返回值,而在于他们的调用方式,过程是作为一个独立执行语句调用的,函数以合法的表达
式的方式调用
create or
replace function func(v_name in varchar2)
return
varchar2
is
begin
return(v_name||' hello');
end;
调用:
declare
v_name varchar2(20);
begin
v_name:=func('cheng');
dbms_output.put_line(v_name);
end;
带out参数的函数
create or
replace function func(
v_name in varchar2,
v_content out varchar2
)
return
varchar2
is
begin
v_content:=v_name||' hello';
return v_content;
end;
调用:
declare
v_name varchar2(20);
v_name1 varchar2(20);
begin
v_name1:=func('susu',v_name);--返回v_name值
dbms_output.put_line(v_name1);--打印func结果
dbms_output.put_line(v_name);--打印v_name结果
end;
带in out 参数的函数
create or
replace function func(
v_name in out varchar2)
return
varchar2
is
begin
v_name:=v_name||' hello';
return 'cheng';
end;
调用:
declare
v_inout varchar2(20):='world';
v_ret varchar2(20);
begin
v_ret:=func(v_inout);--返回调用v_inout值(作为出参)
dbms_output.put_line(v_ret);--打印func结果
dbms_output.put_line(v_inout);--返回v_name结果
end;
[转]
1、函数有返回值,过程没有
2、函数调用在一个表达式中,过程则是作为pl/sql程序的一个语句
过程和函数都以编译后的形式存放在数据库中,函数可以没有参数也可以有多个参数并有一个返回值。过程
有零个或多个参数,没有返回值。函数和过程都可以通过参数列表接收或返回零个或多个值,函数和过程的
主要区别不在于返回值,而在于他们的调用方式,过程是作为一个独立执行语句调用的,函数以合法的表达
式的方式调用
create or
replace function func(v_name in varchar2)
return
varchar2
is
begin
return(v_name||' hello');
end;
调用:
declare
v_name varchar2(20);
begin
v_name:=func('cheng');
dbms_output.put_line(v_name);
end;
带out参数的函数
create or
replace function func(
v_name in varchar2,
v_content out varchar2
)
return
varchar2
is
begin
v_content:=v_name||' hello';
return v_content;
end;
调用:
declare
v_name varchar2(20);
v_name1 varchar2(20);
begin
v_name1:=func('susu',v_name);--返回v_name值
dbms_output.put_line(v_name1);--打印func结果
dbms_output.put_line(v_name);--打印v_name结果
end;
带in out 参数的函数
create or
replace function func(
v_name in out varchar2)
return
varchar2
is
begin
v_name:=v_name||' hello';
return 'cheng';
end;
调用:
declare
v_inout varchar2(20):='world';
v_ret varchar2(20);
begin
v_ret:=func(v_inout);--返回调用v_inout值(作为出参)
dbms_output.put_line(v_ret);--打印func结果
dbms_output.put_line(v_inout);--返回v_name结果
end;
[转]
相关文章推荐
- MySQL 的存储过程 procedure 与 函数 function 的区别和使用方法
- Oracle 存储过程(procedure)和函数(Function)的区别(转载)
- 渣翻——Function、Method、Procedure和Subroutine的区别
- oracle中 procedure(存储过程)和function(函数)本质区别
- PL/SQL--Procedure(过程)和Function(函数)的区别
- mysql中procedure与function的区别
- oracle中 procedure和function 区别
- oracle中 procedure和function有何本质区别
- MySQL 的存储过程 procedure 与 函数 function 的区别和使用方法
- Oracle 存储过程(procedure)和函数(Function)的区别
- MySQL 的存储过程 procedure 与 函数 function 的区别和使用方法
- ORACLE中的function 、packages、package bodies、procedure的有什么区别和相同的地方?
- 每天两道oracle笔试题+第六天:1、临时表空间和永久表空间的区别是什么?2、解释Function、Procedure、Package的区别?
- Oracle 存储过程(procedure)和函数(Function)的区别
- ORACLE中的function 、packages、package bodies、procedure的有什么区别和相同
- 存储过程(PROCEDURE)和函数(FUNCTION)的区别。
- MySQL和Oracle Procedure和Function的区别
- oracle 存储过程 PROCEDURE和 FUNCTION区别:
- C/C++的函数(Function)与过程(Procedure)
- function, new function, new Function之间的区别