Académique Documents
Professionnel Documents
Culture Documents
Procédures Et Fonctions - Complète PDF
Procédures Et Fonctions - Complète PDF
Abir GORRAB
abir.gorrab@sesame.com.tn
Bloc anonyme ou nommé
PL/SQL 3
Création d’une procédure
Syntaxe
CREATE OR Replace
PROCEDURE nom_procedure(<liste params>) IS
-- déclaration des variables
BEGIN
-- code de la procédure
END;
PL/SQL 4
Passage de paramètres
PL/SQL 6
Exemple d’une procédure
PL/SQL 7
Utilisation des procédures
Les procédures et fonctions peuvent être utilisées dans
d’autres procédures ou fonctions ou dans des blocs PL/SQL
anonymes
Exemple précédent:
CREATE OR Replace
FUNCTION
nom_fonction(<liste
params>) RETURN <type
retour> IS
-- déclaration des variables
BEGIN
-- code de la fonction
Return var;
END;
PL/SQL 9
Création d’une fonction
Exemple:
Ecrire une fonction de conversion de la
monnaie de l’euro au franc.
PL/SQL 12
Utilisation des fonctions
Exemple:
Ecrire une fonction de conversion de la
monnaie de l’euro au franc.
CREATE OR REPLACE
FUNCTION euro_to_fr(somme IN number)
RETURN number IS
taux CONSTANT NUMBER := 6.55957;
Exemple
BEGIN
return somme * taux;
END;
PL/SQL 13
Utilisation des fonctions
Dans un bloc
Employe(num,nome,sal,dept)
anonyme
DECLARE
CURSOR c(p_dept integer) IS
SELECT dept, nome, sal FROM emp
WHERE dept = p_dept;
BEGIN
FOR employe IN c(10) LOOP
dbms_output.put_line(employe.nome
|| ' gagne '
|| euro_to_fr(employe.sal)
|| ' francs');
END LOOP;
END;
euro_to_fr
(150);
PL/SQL 15
Suppression d’une procédure/fonction
DROP PROCEDURE
nom_procedure;
DROP FUNCTION
nom_fonction;
PL/SQL 16
PERSONNE(refpers,nom, prenom, statut, salaire)
PROJET(refproj, titre, nb_heures_prevues)
TACHE(#refproj,#refpers, semaine, nb_heures)
9. Ecrire une fonction qui permet de calculer le
nombre de tâches réalisées par une personne
dont le numéro est donné en paramètre
10. Ecrire une procédure qui permet d’afficher le
détail d’un projet de titre ‘Fabrication’.
PL/SQL 18
Exercices
10. Ecrire une procédure qui permet d’afficher le détail d’un projet de titre
‘Fabrication’
PROJET(refproj, titre, nb_heures_prevues)
--ici on n’a pas besoin de passer des arguments
Set serveroutput on
Create or replace procedure Proj
IS
n1 number(4) ;
n2 number(4) ;
begin
select refproj, nb_heures_prevues into n1,n2
from projet
where titre=’Fabrication’ ;
dbms_output.put_line(n1||’Fabrication’||n2) ;
exception
when NO_DATA_FOUND then dbms_output.put_line('pas
d''informations');
end;
PL/SQL execute Proj; 19
Exercices
11. Ecrire une procédure PL/SQL qui affiche tous les numéros
(refpers) et les noms de personnes dans la table personne dont le
statut est ‘X’.
PL/SQL 20