the different between function and procedure in oracle oracle 中函数和存储过程的区别

1. Function is mainly used in the case where it must return a value. Where as a procedure may or may not return a value or may return more than one value using the OUT parameter.
 函数主要用在必须有返回值存在的情况下,而存储过程可能通过输出参数返回一个值或多个值也可能不返回任何值,
2. Function can be called from SQL statements where as procedure can not be called from the sql statements

函数可以在sql语句中调用,而存储过程不能

3. Functions are normally used for computations where as procedures are normally used for executing business logic.

函数通常用于计算,而过程通常用于执行业务逻辑

4. You can have DML (insert,update, delete) statements in a function. But, you cannot call such a function in a SQL query.

在函数中可以包含DML语句,只是此时不能在sql语句中这个函数

5.? Function returns 1 value only. Procedure can return multiple values (max 1024).

函数只能返回一个值,但存储过程可以返回多个值,最多为1024个值

6.Stored Procedure: supports deferred name resolution. Example while writing a stored procedure that uses table named tabl1 and tabl2 etc..but actually not exists in database is allowed only in during creation but runtime throws error, Function wont support deferred name resolution.

存储过程支持表名延迟方案,如,当一个存储过程创建后,其所用到的表不存在是被允许的,只要在运行该存储过前创建好该表就可以的,否则会报错,

而函数则不支持表名延迟方案

http://www.orafaq.com/forum/t/123283/2/ 这一条是怎么回事? 不查不知道,一查吓一跳!到底有没有啊?

 

7.Stored procedure returns always integer value by default zero. where as function return type could be scalar or table or table values

存储过程返回整型时默认返回值为0,而函数返回类型可能是标量或表,或表中值

8. Stored procedure is precompiled execution plan where as functions are not.
存储过程是预编译执行计划,而函数不能
9.A procedure may modify an object where a function can only return a value The RETURN statement immediately completes the execution of a subprogram and returns control to the caller.

存储过程可能修改一个对象,而函数只能返回一个值,return语句执行完后将控制交给调用者。


----------------------------------------------------------------------

A FUNCTION is always returns a value using the return statement.

函数会返回一个值交给调用者
A  PROCEDURE   may  return one or more values through parameters or may not return at all.

存储过程可能返回一个,多个或者不返回值
-----------------------------------------------------------------
Function -
1) Have to return a single value to the calling program

必须返回一个值给调用者
2) Can call functions in sql statements

可以在sql语句中调用函数
3) Cannot return images

不能返回图片

Procedures -
1) Do not return any value except assigning values to OUT variables
没有指定时可以不返回值

2) Cannot call procedures in sql statements

不能再sql语句中调用存储过程
3) Can return images

可以返回图片

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值