-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfonction.sql
More file actions
54 lines (49 loc) · 1.43 KB
/
fonction.sql
File metadata and controls
54 lines (49 loc) · 1.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/**
* Projet BDD
* Base de donnée de la NSA
*
* @author : Olivia Bruce
* @author : Matthieu Riou
* @author : Brice Thomas
*/
/**
* Fonction update vente de sfr à numéricable
* Actualité: sfr serait racheter par numericable
**/
CREATE PROCEDURE update_vente_sfr
IS
BEGIN
UPDATE Telephone SET fournisseurTelephone = 'Numericable' WHERE fournisseurTelephone = 'SFR';
END;
/
/**
* Fonction entourage_bis qui trouver les liens entre les gens et en calculer l'eloignement
* @param id : id de la personne dont on cherche l'entourage à cette étape
* @param id2: id de la personne dont on cherche l'entourage à l'origine
* @param n: degré d'éloignement restant à explorer
* @param diff:degré d'éloignement déjà exploré
*/
CREATE PROCEDURE entourage_bis (id number, id2 number, n number, diff number)
IS
Cursor C1 IS SELECT * FROM Personne JOIN Relation ON emetteur = idPersonne WHERE emetteur != id2 and recepteur = id;
i C1%rowtype;
BEGIN
IF(n > 0) THEN
FOR i in C1 LOOP
DBMS_OUTPUT.put_line(i.nom || ' ' || i.prenom || ' : ' || diff || ' degre d eloignement');
entourage_bis(i.idPersonne, id2, n-1, diff+1);
END LOOP;
END IF;
END;
/
/**
* Fonction entourage qui initialise les paramètres d'entourage_bis
* @param id :id de la personne dont on cherche l'entourage
* @param n: degré d'éloignement à explorer
*/
CREATE PROCEDURE entourage (id number, n number)
IS
BEGIN
entourage_bis(id, id, n, 1);
END;
/