Upload
mohamed-maddouri
View
223
Download
5
Embed Size (px)
DESCRIPTION
tp
Citation preview
Classe : 3A
TP 1 : Introduction à PL/SQL
Exercice1
Parmi les déclarations et les blocs PL/SQL suivants, lesquels s'exécutent avec succès ?a. BEGINEND; falseb. DECLAREamount INTEGER(10);END; falsec. DECLAREBEGINEND; falsed. DECLAREamount INTEGER(10);BEGINDBMS_OUTPUT.PUT_LINE(amount);END; True
Exercice2
Créez et exécutez un bloc anonyme simple qui affiche "Hello World". Exécutez et enregistrez ce script sous le nom lab1.sql.DECLAREvar varchar(40):='Helo world';BEGINDBMS_OUTPUT.PUT_LINE(var);END;
Exercice3
Ecrivez un programme pl/sql placant la valeur 10 dans une variable a, puis affichant la factorielle de a. Exécutez et enregistrez ce script sous le nom lab2.sql.
DECLAREa number :=10;f number :=1;BEGINfor i IN 1..10 LOOPf:=f*i;END LOOP;DBMS_OUTPUT.PUT_LINE(f );
END;
Exercice4
Parmi les déclarations de variables suivantes, déterminer celles qui sont incorrectes : A - DECLARE v_id NUMBER(4); trueB- DECLARE v_x,v_y,v_z VARCHAR2(10); falseC - DECLARE v_date_naissance DATE NOT NULL; falseD - DECLARE v_en_stock BOOLEAN := 1; false
E - DECLARE emp_record emp_record_type; false
Exercice5
1. Créer un bloc PL/SQL pour insérer un nouveau département « juridique»dans la table DEPARTMENTS ". Exécutez et enregistrez ce script sous le nom lab3.sql.
a) Utiliser la séquence DEPT_ID_SEQ pour générer un numéro de département on suppose que la séquence existe déjà dans notre base de données).(. Laisser le numéro de région(location_id) à NULL.
DECLARE
BEGIN
insert into departments (department_id,department_name,manager_id,location_id)values(seq.nextval(),147,'juridique');
end;
Créer la table commande contenant le num_cmd , num_client,employee_id,date_cmd
et total ajouter les contraintes nécessaires.la clé primaire est composée du num_cmd
et du num_client
Create table commande (
Num_cmd number,
Num_client number,
Employee_id number,
Date_cmd date,
Constraint pk_cmd primary key(num_cmd , num_client)
);
Créer un bloc PL/SQL permettant de mettre à jour le pourcentage de commission de
l’employé num 100 en fonction du total de ses ventes. Exécutez et enregistrez ce script
sous le nom lab3.sql:
Trouver la somme totale de toutes les commandes traitées par cet employé Mettre à jour le pourcentage de commission de l’employé : - si la somme est inférieure à 100,000 passer la commission à 10 - si la somme est comprise entre 100,000 et 1,000,000 inclus passer la commission à 15 - si la somme excède 1,000,000 passer la commission à 20 - si aucune commande n’existe pour cet employé, mettre la commission à 0
Exercice6
Ecrire un bloc PL/SQL qui permet d’afficher le nom et le revenu mensuel d’un employé donné (revenu mensuel=salaire(1+commission)). Utiliser le type record vu en cours.
Exercice7
Testez la visibilité des variables suivantes, donnez le résultat à chaque niveau (ligne 9-16-18) :
Exercice8
Créer la table Etudiant (Noetud number, NomEtud Varchar(20), Note number).
Ecrire un bloc PL/SQL permettant de remplir la table Etudiant de 30 enregistrements.
Noetud NomEtud Note1 Etudiant 1 102 Etudiant 2 10…30 Etudiant 30 10