Académique Documents
Professionnel Documents
Culture Documents
Fonctions
Paquetages
Procédures Stockées : Principe (1)
2
Procédures Stockées : Principe (2)
CLIENT SERVEUR
PROCEDURE P(v1,v2) AS
EXECUTE P(p1, p2); P
BEGIN
Ordre SQL et PL/SQL
………..
END P;
Retour résultats
3
Optimisation des procédures
liens avec les objets
Références croisées
Procédure P1 Table1
Procédure P2
Index1
Procédure P3
Table2
Procédure P4
Procédure P5 index2
4
Optimisation des procédures
5
Avantages des procédures stockées
6
Déclaration d’une procédure stockée
7
Exemple 1 de procédure stockée
inscription d’un étudiant
• A partir de sqlplus
• A partir de PL/SQL
inscription(nom,……, dip);
• A partir de pro*c
EXEC SQL EXECUTE
BEGIN
inscription(:nom, ……… ,:dip);
END;
END-EXEC;
9
Exemple 2 : avec retour de valeurs
suppression d’un étudiant
../..
10
Exemple 2 : avec retour de valeurs
suppression d’un étudiant (suite)
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Etudiant'||TO_CHAR(pidEtu)||'inconnu);
retour:=1;
WHEN inscriptions THEN
DBMS_OUTPUT.PUT_LINE('Encore des inscriptions');
retour:=2;
…………
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
retour:=9;
END;
/
11
Exemple 2 : appel avec retour
12
Les Fonctions stockées
13
Déclaration d’une fonction stockée
RETURN(variable);
END;
/
1 ou plusieurs RETURN
14
Exemple 1 de fonction stockée
15
Utilisation d’une fonction
BEGIN
………
IF moy_points_marques(equipe) > 20 THEN ………
END;
16
Exemple 2 de fonction stockée
BEGIN
………
IF bon_client(client,10000) THEN ………
…………
17
Les Paquetages
P1 P3
ETUDIANT
P2
18
Structure d’un paquetage
19
Déclaration d’un paquetage
partie spécification
-- Partie Spécification
20
Déclaration d’un paquetage
partie body
-- Partie body
CREATE [OR REPLACE] PACKAGE BODY nom_package AS
Procedure Procédure1(liste des paramètres)IS
…………
BEGIN
…………
END Procédure1;
Function Fonction1(liste des paramètres)
RETURN type IS
…………
BEGIN
…………
RETURN(……);
END Fonction2;
END nom_package;
/
21
Exemple : package ‘étudiant’ (1)
22
Exemple : package ‘étudiant’ (2)
24
Appel d’un programme d’un package
25