Please explain me the Adv and DisAdv between Procedures and functions
Thanks in Advance
Radhi
Hi Radhi,
Function computes a value and returns that value. It should always return one value.
Procedure excutes certain queries. It does have return but it returns to the program from where it has been called.
Procedures are traditionally the workhorse of the coding world and functions are traditionally the smaller, more specific pieces of code. In general, if you need to update the chart of accounts, you would write a procedure. If you need to retrieve the organization code for a particular GL account, you would write a function.
Here are a few more differences between a procedure and a function:
A function MUST return a value
A procedure cannot return a value
Procedures and functions can both return data in OUT and IN OUT parameters
The return statement in a function returns control to the calling program and returns the results of the function
The return statement of a procedure returns control to the calling program and cannot return a value
Functions can be called from SQL, procedure cannot
Functions are considered expressions, procedure are not
Last edited by debasisdas; Jun 30 '07, 05:04 AM.
Reason: removed link to another forum
Procedure Versus Function (www.oraclepass port.com)
Procedure Versus Function
a. Only function can Return a value (to be precise using the Return keyword)
b.Procedures can use ‘Return’ keyword but without any value being passed
c.Functions could be used in select statements, provided they doesn’t do any data manipulation inside and also should not have any OUT, IN OUT parameters.
After a procedure with an OUT argument completes, how can you access that variable?. Is it correct that you CANNOT set a variable in a calling block to that procedure:
create procedure outproc(arg1 OUT varchar2)
etc..
DECLARE
v_result varchar2(100)
v_arg varchar2(1)
BEGIN
v_result := outproc(v_arg);
Comment