您的位置:首页 > 其它

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;

[转]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: