oracle中的存储过程和函数的区别

简介:

函数和存储过程的区别
从参数的返回情况来看:
     如果返回多个参数值最好使用存储过程,如果只有一个返回值的话可以使用函数;
从调用情况来看:
     如果在SQL语句(DML或SELECT)中调用的话一定是存储函数或存储的封装函数不可以是存储过程,但调用存储函数的时候还有好多限制以及函数的纯度等级的问题,你可以参考《ORACLE 9I PL\SQL程序设计》(机械工业出版社);
如果是在过程化语句中调用的话,就要看你要实现什么样的功能。函数一般情况下是用来计算并返回一个计算结果而存储过程一般是用来完成特定的数据操作(比如修改、插入数据库表或执行某些DDL语句等等),所以虽然他们的语法上很相似但用户在使用他们的时候所需要完成的功能大部分情况下是不同的。

===================================================================================

存储过程和函数:

Oracle函数和存储过程的区别 - qindingsky - 宁静以致远

    例子:

    //创建过程

    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;


本文转自hcy's workbench博客园博客,原文链接:http://www.cnblogs.com/alterhu/archive/2012/03/17/2404191.html,如需转载请自行联系原作者。

目录
相关文章
|
2月前
|
SQL Oracle 算法
|
2月前
|
SQL Oracle 关系型数据库
|
2月前
|
SQL Oracle 关系型数据库
Oracle|内置函数之INSTR
【7月更文挑战第5天】
|
2月前
|
Oracle 关系型数据库 数据挖掘
|
2月前
|
存储 SQL 数据库
MySQL设计规约问题之为什么要避免使用存储过程、触发器和函数
MySQL设计规约问题之为什么要避免使用存储过程、触发器和函数
|
2月前
|
Oracle 关系型数据库 数据挖掘
|
3月前
|
存储 SQL 关系型数据库
MySQL存储过程和存储函数的使用
MySQL的存储过程和存储函数在功能和用法上有明显的区别。存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,通过指定名称和参数(如果有)来调用执行,可以返回多个值或结果集,但不直接返回值。而存储函数则是一个有返回值的特殊存储过程,它返回一个值或表对象,可以直接嵌入SQL语句中使用,如SELECT语句中。两者都是为了提高SQL代码的重用性和性能,但使用场景和方式有所不同。
190 4
|
3月前
|
存储 Oracle NoSQL
Oracle中decode函数详解
Oracle中decode函数详解
|
3月前
|
Oracle 关系型数据库 大数据
oracle递归函数
oracle递归函数
|
3月前
|
存储 关系型数据库 MySQL
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(4)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】

推荐镜像

更多