度量快速开发平台-专业、快速的软件定制快开平台

标题: Oracle函数和存储过程的区别 [打印本页]

作者: 陈晓龙    时间: 2020-2-14 20:41
标题: Oracle函数和存储过程的区别
参数的返回情况来看:
     如果返回多个参数值最好使用存储过程,如果只有一个返回值的话可以使用函数;
从调用情况来看:
     如果在SQL语句(DML或SELECT)中调用的话一定是存储函数或存储的封装函数不可以是存储过程,但调用存储函数的时候还有好多限制以及函数的纯度等级的问题,你可以参考《ORACLE 9I PL\SQL程序设计》(机械工业出版社);


如果是在过程化语句中调用的话,就要看你要实现什么样的功能。函数一般情况下是




用来计算并返回一个计算结果而存储过程一般是用来完成特定的数据操作(比如修改、插入数据库表或执行某些DDL语句等等),所以虽然他们的语法上很相似但用户在使用他们的时候所需要完成的功能大部分情况下是不同的。
===================================================================================


存储过程和函数:


    例子:

    //创建过程

    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;



作者: 张兴康    时间: 2020-2-15 13:18

作者: 万望    时间: 2020-2-15 17:19
牛掰
作者: 陈晓龙    时间: 2020-2-16 08:43
张兴康 发表于 2016-3-15 13:18

你又开始冷了?
作者: 陈晓龙    时间: 2020-2-16 08:43
万望 发表于 2016-3-15 17:19
牛掰


作者: 张兴康    时间: 2020-2-16 13:13
陈晓龙 发表于 2016-3-16 08:43
你又开始冷了?

这叫扮酷
作者: 陈晓龙    时间: 2020-2-16 16:08
张兴康 发表于 2016-3-16 13:13
这叫扮酷

原来如此!
作者: 张兴康    时间: 2020-2-17 16:04
陈晓龙 发表于 2016-3-16 16:08
原来如此!

嗯哼




欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://bbs.delit.cn/) Powered by Discuz! X3.2