Procedure and Functions in PL SQL
Procedure and Functions in PL SQL
"A procedures or function is a group or set of SQL and PL/SQL statements that perform a
specific task."
A function and procedure is a named PL/SQL Block which is similar. The major difference
between a procedure and a function is, a function must always return a value, but a procedure
may or may not return a value.
Procedures:
A procedure is a named PL/SQL block which performs one or more specific task. This is
similar to a procedure in other programming languages. A procedure has a header and a body.
The header consists of the name of the procedure and the parameters or variables passed to
the procedure.
The body consists of declaration section, execution section and exception section similar to a
general PL/SQL Block. A procedure is similar to an anonymous PL/SQL Block but it is
named for repeated usage.
Parameters Description
IN type These types of parameters are used to send values to stored procedures.
OUT type These types of parameters are used to get values from stored procedures. This is similar to
a return type in functions.
IN OUT These types of parameters are used to send values and get values from stored procedures.
type
A procedure may or may not return any value.
Syntax:
CREATE [OR REPLACE] PROCEDURE procedure_name (<Argument> {IN, OUT, IN
OUT} <Datatype>,…)
IS
BEGIN
Execution section
EXCEPTION
Exception section
END
IS - marks the beginning of the body of the procedure and is similar to DECLARE in
anonymous PL/SQL Blocks. The code between IS and BEGIN forms the Declaration section.
The syntax within the brackets [ ] indicate they are optional. By using CREATE OR
REPLACE together the procedure is created if no other procedure with the same name exists
or the existing procedure is replaced with the current code.
Example:
create table named emp have two column id and salary with number data type.
AS
BEGIN
DBMS_OUTPUT.PUT_LINE('VALUE INSERTED.');
END;
Output:
Run SQL Command Line
SQL>set serveroutput on
SQL>start D://pr.sql
Procedure created.
SQL>exec p1(5,4);
VALUE INSERTED.
PL/SQL procedure successfully completed.
A function is a named PL/SQL Block which is similar to a procedure. The major difference
between a procedure and a function is, a function must always return a value, but a procedure
may or may not return a value.
Syntax:
Declaration_section <variable,constant> ;
BEGIN
Execution_section
Return return_variable;
EXCEPTION
exception section
Return return_variable;
END;
RETURN TYPE: The header section defines the return type of the function. The return data
type can be any of the oracle data type like varchar, number etc.
The execution and exception section both should return a value which is of the data type
defined in the header section.
Example:
is
sal number(5);
begin
return sal;
end;
Output:
Run SQL Command Line
SQL>select * from emp;
ID SALARY
----- --------
2 5000
SQL>start D://fun.sql
Function created.
In the example we are retrieving the ‘salary’ of employee with id 2 to variable ‘sal’.
The return type of the function is number.
Destroying procedure and function:
Syntax:
Procedures VS Functions:
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