SGBD/BD : TP Procédures et Fonctions
Monday, June 6, 2011     17:19
  • Mon @ IP: 54.81.42.111



retour

Poster un commentaire ou une réponse

TP Procédures et Fonctions

  Zaineb :
nb posts:320
nb discussions:33
inscrit le :23-01-2015
le 04-02-2015 à 11:45:04

TP-les-procedures-et-fonctions.docx

  Zaineb :
nb posts:320
nb discussions:33
inscrit le :23-01-2015
le 04-02-2015 à 11:46:01

Notes-procedure-et-fonction.txt

  Zaineb :
nb posts:320
nb discussions:33
inscrit le :23-01-2015
le 04-02-2015 à 11:46:31

Correction:

ex1

a)create or replace procedure greet is
today date :=sysdate;
tomorrow today%type;
begin
tomorrow :=sysdate+1;
dbms_output.put_line ('hellow world today is :'||today|| ' and tomorrow is :'||tomorrow);
end;

//appel
begin
greet;
end;


Ex2

create or replace procedure greet2(nom varchar2) is
today date :=sysdate;
tomorrow today%type;
begin
tomorrow :=sysdate+1;
dbms_output.put_line ('hellow '|| nom ||' today is :'||today|| ' and tomorrow is :'||tomorrow);
end;

begin
greet2('jihene');
end;


Ex3


a)create or replace function nom_dept(numero departments.department_id%type)
return VARCHAR2 is
nom departments.department_name%type ;
begin
select department_name into nom from departments
where department_id = numero ;
return nom ;
end ;


select nom_dept(20) from dual;
ou
declare
nom varchar2(30);
begin
nom:= nom_dept (20);
dbms_output.put_line(nom);
end;

b) création de la procedure:


create or replace procedure nom_dept2(numero IN departments.department_id%type,
nom OUT departments.department_name%type) is
begin
select department_name into nom from departments
where department_id = numero ;
end ;


declare
nom varchar2(30);
begin
nom_dept2 (20,nom);
dbms_output.put_line(nom);
end;


Ex4

Create or replace function fn_revenu_ann (v_empno in number)
Return number is
v_sal_annuel number;
begin
select ((salary * 12) + decode(nvl(commission_pct,0),0,salary,commission_pct*12)) into v_sal_annuel from employees where (employee_id = v_empno);
return v_sal_annuel;
end;


Create or replace function fn_revenu_annuel (v_empno in number)
Return number is
v_sal number;
v_comm number;
v_sal_ann number;
begin
select salary ,nvl(commission_pct,0) into v_sal,v_comm from employees where (employee_id = v_empno);
if v_comm>0 then
v_sal_ann := (v_sal+v_comm)*12;
else v_sal_ann:= v_sal*13;
end if;
return v_sal_ann;
end;

appel
begin
dbms_output.put_line(fn_revenu_annuel (101));
end;

ex5


CREATE OR REPLACE FUNCTION factorielle (N IN NUMBER)
RETURN NUMBER IS
BEGIN
IF (N<=1) THEN
RETURN 1;
ELSE
RETURN N *factorielle(N-1);
END IF;
END;


declare
n number;
begin
n:= factorielle(10);
dbms_output.put_line(n);
end;


sol 2

create or replace function fact(n number) return number
is
c NUMBER;
begin
c := 1;
if n<=1
then return 1;
else
for i in 1..n loop
c:= c*i;
end loop;
end if;
return c;
END;
/

declare
n number ;
begin
n:= fact(10);
dbms_output.put_line(n);
end;


Ex6

CREATE OR REPLACE PROCEDURE F_Test_Augmentation
IS
aug NUMBER(2,2):=0.2;
cursor c is select employee_id,salary from employees;
BEGIN
for cc in c
loop
update employees
set salary = salary + (salary *aug)
where employee_id = cc.employee_id;
commit;
end loop;
END;

begin
F_Test_Augmentation;
end;

ex 7


CREATE OR REPLACE PROCEDURE emp_salary_increase
(emp_id IN employees.employee_id%type, salary_inc IN OUT employees.salary%type)
IS
tmp_sal number;
BEGIN
SELECT salary
INTO tmp_sal
FROM employees
WHERE employee_ID = emp_id;
IF tmp_sal between 1000 and 2000 THEN
salary_inc := tmp_sal * 1.3;
ELSIF tmp_sal >2000 THEN
salary_inc := tmp_sal * 1.5;
END IF;
END;
/


programme appelant:

DECLARE
CURSOR updated_sal is
SELECT employee_id,salary
FROM employees;
pre_sal number;
BEGIN
FOR emp_rec IN updated_sal LOOP
pre_sal := emp_rec.salary;
emp_salary_increase(emp_rec.employee_id, emp_rec.salary);
dbms_output.put_line('The salary of ' || emp_rec.employee_id ||
' increased from '|| pre_sal || ' to '||emp_rec.salary);
END LOOP;
END;

Poster un commentaire ou une réponse :
Poster
     Ajouter un document à la discussion:
       

Actualité informatique et High-Tech

16-10-2015               lire

Dropbox propose aussi un outil d'écriture collaborative à son service

16-10-2015               lire

Bientôt des DRM dans des JPEG

17-04-2015               lire

Google propose une requête pour retrouver son téléphone

17-04-2015               lire

Youtube prépare une offre payante sans publicité

17-04-2015               lire

Sony Pictures : Des milliers de mails et documents confidentiels dévoilés

07-04-2015               lire

T411 bloqué par les FAI français

07-04-2015               lire

NVIDIA publie un pilote correctif et met à jour SHIELD Hub ainsi que GeForce Experience

07-04-2015               lire

Linkedin acquiert la start-up Refresh

03-04-2015               lire

Chromebit, la clé USB Google et Asus qui transforme n’importe quel écran en ordinateur

03-04-2015               lire

Une personne aurait pu supprimer toutes les vidéos d’une chaine Youtube en quelques secondes

03-04-2015               lire

Firefox 37 apporte un cryptage complémentaire à HTTPS

03-04-2015               lire

Windows XP, ce système qui ne veut pas mourir

02-04-2015               lire

Piratage de Labio.fr : le laboratoire répond à nos questions et ne payera pas la rançon

02-04-2015               lire

AWS lance des instances géantes avec 48 To de stockage

02-04-2015               lire

WhatsApp ajoute les appels gratuits et illimités à son application

31-03-2015               lire

Nadim Kobeissi : de Cryptocat à Peerio, du piratage au doctorat

31-03-2015               lire

L'Université de Nantes inaugure son datacenter modulaire taillé pour le HPC

31-03-2015               lire

GitHub victime d’une attaque DDoS majeure

27-03-2015               lire

Googlinette : les recherches de Google en devinettes

27-03-2015               lire

F8 : Facebook ouvre Messenger au e-commerce

27-03-2015               lire

À la SNCF, une fuite de données simple comme une touche F5

23-03-2015               lire

Des satellites GPS de Boeing affectés par une erreur technique

23-03-2015               lire

Plus de 700 000 routeurs ADSL vulnérables au piratage

23-03-2015               lire

Twitter sous le coup d’une action collective pour discrimination

22-03-2015               lire

Les montres connectées étaient déjà présentes dans les films, séries et dessins animés

22-03-2015               lire

Une Audi autonome va traverser les USA de SF à New York

20-03-2015               lire

Éclipse du Soleil : comment la suivre en direct sur Internet

20-03-2015               lire

Projet Leap : des bus 2.0 à San Francisco

20-03-2015               lire

Nvidia dévoile Drive PX, un système de conduite autonome

17-03-2015               lire

Embarquez pour Apollo 11, expérience virtuelle hors du commun

16-03-2015               lire

Ce jour où Google a exposé les données de 282 867 domaines

16-03-2015               lire

Yahoo publie le code de son plug-in de chiffrement mail

16-03-2015               lire

Après un an sans mise à jour, HAWKEN revient à la vie

12-03-2015               lire

Le big data au service du séquençage ADN pour accélérer les diagnostics

12-03-2015               lire

Clap de fin pour PlayStation Mobile

12-03-2015               lire

Apple : retour à la normale après une panne de plus de 11 heures

12-03-2015               lire

Ericsson va supprimer 2 200 postes en Suède

12-03-2015               lire

Le plan de Fleur Pellerin contre le piratage sur Internet

10-03-2015               lire

Apple Watch, Watch Edition et Watch Sport : de 399 à 18.000 euros !

10-03-2015               lire

Apple présente le “nouveau MacBook” qui remplace le MacBook Air

09-03-2015               lire

Google développe une version d'Android pour la réalité virtuelle

09-03-2015               lire

Quand la MPAA demande à Google de déréférencer son propre site

09-03-2015               lire

Heroes of the Dorm : un tournoi HotS avec 450 000 $ de bourses d'études à gagner

09-03-2015               lire

1 milliard d'adresses mails volées, 2 pirates inculpés

09-03-2015               lire

VMware accusé de violation de code Linux

09-03-2015               lire

Les drones civils bientôt immatriculés ?

05-03-2015               lire

7 sites qui permettent d’envoyer des fichiers de + ou – 2 Go

04-03-2015               lire

Smartphones : Apple passe en tête devant Samsung56% des consommateurs inquiets pour leurs données en Europe

04-03-2015               lire

Smartphones : Apple passe en tête devant Samsung

04-03-2015               lire

MWC 2015 : Onevisage pésente un scan facial 3D pour smartphones

04-03-2015               lire

Caméras sportives : Xiaomi s'attaque au monopole GoPro

04-03-2015               lire

Yi Camera, la caméra embarquée de Xiaomi à moins de 60€

04-03-2015               lire

Faille FREAK : quand des connexions SSL/TLS se contentent d'un chiffrement RSA sur... 512 bits

04-03-2015               lire

Bientôt des pubs sur Google Play (Android)

28-02-2015               lire

En partenariat avec "Positive Technologies", Esprit a l'honneur d'inviter ses étudiants à la 1ère édition de l’événement ESPRIT HACK DAYS dans les locaux d'ESPRIT Chotrana 2 et ce le 03 et le 04 Mars 2015.

28-02-2015               lire

La direction des stages d’ESPRIT et Ernst & Young ont le plaisir d'inviter ses étudiants à la journée de l’entreprise du mercredi 4 mars 2015 dans la salle E5 d’ESPRIT Factory.

25-02-2015               lire

Adobe fête les 25 ans de son logiciel Photoshop

25-02-2015               lire

Linux 4.0 : gros numéro et petite version

Haut de page.