oracle存储过程和函数的区别
答案:2 悬赏:20 手机版
解决时间 2021-02-09 17:51
- 提问者网友:战魂
- 2021-02-09 09:29
oracle存储过程和函数的区别
最佳答案
- 五星知识达人网友:第四晚心情
- 2021-02-09 09:44
例子:
[sql] view plain copy print?
//创建过程
create or replace procedure add_emailinfo(namee email_info.fullname%type ,address email_info.email_address%type )
is
begin
insert into email_info(fullname,email_address) values (namee,address);
end;
//调用过程
call add_emailinfo('cherry','asdfsdf');
/////////////////////////////////////////////////////////////////////////////////////
//创建函数
create or replace function sel_emailinfo(namee email_info.fullname%type )
return varchar2 is
address varchar2(30);
begin
select email_address into address from email_info
where trim(fullname)=trim(namee);
return address;
end ;
//调用函数
select sel_emailinfo('bbb') from dual;
[sql] view plain copy print?
//创建过程
create or replace procedure add_emailinfo(namee email_info.fullname%type ,address email_info.email_address%type )
is
begin
insert into email_info(fullname,email_address) values (namee,address);
end;
//调用过程
call add_emailinfo('cherry','asdfsdf');
/////////////////////////////////////////////////////////////////////////////////////
//创建函数
create or replace function sel_emailinfo(namee email_info.fullname%type )
return varchar2 is
address varchar2(30);
begin
select email_address into address from email_info
where trim(fullname)=trim(namee);
return address;
end ;
//调用函数
select sel_emailinfo('bbb') from dual;
全部回答
- 1楼网友:我住北渡口
- 2021-02-09 10:40
函数和存储过程的区别
从参数的返回情况来看:
如果返回多个参数值最好使用存储过程,如果只有一个返回值的话可以使用函数;
从调用情况来看:
如果在sql语句(dml或select)中调用的话一定是存储函数或存储的封装函数不可以是存储过程,但调用存储函数的时候还有好多限制以及函数的纯度等级的问题,你可以参考《oracle 9i pl\sql程序设计》(机械工业出版社);
如果是在过程化语句中调用的话,就要看你要实现什么样的功能。函数一般情况下是用来计算并返回一个计算结果而存储过程一般是用来完成特定的数据操作(比如修改、插入数据库表或执行某些ddl语句等等),所以虽然他们的语法上很相似但用户在使用他们的时候所需要完成的功能大部分情况下是不同的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯