Chapter 3 - Procedures _ Functions
Chapter 3 - Procedures _ Functions
PL/SQL
Subprograms: Procedures and Functions
Ines BAKLOUTI
ines.baklouti@esprit.tn
Outline
2/18
Stored procedures and functions (autonomous)
Non-stored procedures and functions (non-autonomous)
Introduction
3/18
Stored procedures and functions (autonomous) stored procedures
Non-stored procedures and functions (non-autonomous) stored functions
Outline
4/18
Stored procedures and functions (autonomous) Stored procedures
Non-stored procedures and functions (non-autonomous) stored functions
5/18
Stored procedures and functions (autonomous) stored procedures
Non-stored procedures and functions (non-autonomous) stored functions
Stored procedures
Syntaxe
CREATE [OR REPLACE] PROCEDURE procedure name
[(argument1 [passing mode1] type1, ..., [argumentN [passing modeN] typeN])] IS
–The optional declarative section, without using the keyword
DECLARE [decclaring local variables]
BEGIN
–the mandatory executable
Section
[exception section]
END [procedure-name];
Stored procedures
Example
CREATE OR REPLACE PROCEDURE add dept (dept id IN
departments.department id%TYPE, dept name IN
departments.department name%TYPE, nbre OUT number)
IS
BEGIN
insert into departments(department id,department name)
values(dept id,dept name);
commit;
select count(*) into nbre from departments;
dbms output.put line(’Le nombre de département est : ’||nbre);
END;
7/18
Stored procedures and functions (autonomous) stored procedures
Non-stored procedures and functions (non-autonomous) stored functions
Stored procedures
Calling stored procedures
Example
DECLARE
nb number;
BEGIN
add dept(300,’IT’,nb);
end;
8/18
Stored procedures and functions (autonomous) stored procedures
Non-stored procedures and functions (non-autonomous) stored functions
Stored functions
Syntaxe
CREATE [OR REPLACE] FUNCTION function name
[[(argument1 [passing mode1] type1, ..., [argumentN [passing modeN] typeN])]]
RETURN return type IS
–The optional declarative section, without using the keyword DECLARE
[declaring local variables]
BEGIN
–The mandatory executable
section. [exception section ]
END [function name];
9/18
Stored procedures and functions (autonomous) stored procedures
Non-stored procedures and functions (non-autonomous) stored functions
Stored functions
Example 1
CREATE OR REPLACE FUNCTION fn check sal (empno employees.employee id%TYPE)
RETURN Boolean IS
dept id employees.department id%TYPE;
sal employees.salary%TYPE;
avg sal employees.salary%TYPE;
BEGIN
SELECT salary,department id INTO sal,dept id FROM employees WHERE employee id=empno;
SELECT avg(salary) INTO avg sal FROM employees WHERE department id=dept id;
IF sal > avg sal THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
END;
10/18
Stored procedures and functions (autonomous) stored procedures
Non-stored procedures and functions (non-autonomous) stored functions
Stored functions
Example 2
CREATE OR REPLACE FUNCTION fn dept name (deptno number)
RETURN varchar IS
dname varchar(30);
BEGIN
select department name into dname from departments where
department id=deptno;
RETURN dname;
END;
11/18
Stored procedures and functions (autonomous) stored procedures
Non-stored procedures and functions (non-autonomous) stored functions
Stored functions
Calling stored functions
Example 1
BEGIN
IF (fn check sal(124)) THEN
DBMS OUTPUT.PUT LINE(’Salary > average’);
ELSE
DBMS OUTPUT.PUT LINE(’Salary < average’);
END IF;
END;
Example 2
SELECT department id No dept, fn dept name(department id)
Nom dept,last name Nom, first name Prenom FROM employees order by
department id;
12/18
Stored procedures and functions (autonomous) stored procedures
Non-stored procedures and functions (non-autonomous) stored functions
Remarks
13/18
Stored procedures and functions (autonomous)
Non-stored procedures and functions (non-autonomous)
Outline
14/18
Stored procedures and functions (autonomous) Non stored procedures
Non-stored procedures and functions (non-autonomous) Non stored functions
15/18
Stored procedures and functions (autonomous) Non stored procedures
Non-stored procedures and functions (non-autonomous) Non stored functions
16/18
Stored procedures and functions (autonomous) Non stored procedures
Non-stored procedures and functions (non-autonomous) Non stored functions
18/18
Stored procedures and functions (autonomous) Non stored procedures
Non-stored procedures and functions (non-autonomous) Non stored functions
18/18