45 0 98KB
Classe : 3A
TP 1 : Introduction à PL/SQL Exercice1 a. b. c. d.
Parmi les déclarations et les blocs PL/SQL suivants, lesquels s'exécutent avec succès ? BEGIN END; false DECLARE amount INTEGER(10); END; false DECLARE BEGIN END; false DECLARE amount INTEGER(10); BEGIN DBMS_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. DECLARE var varchar(40):='Helo world'; BEGIN DBMS_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. DECLARE a number :=10; f number :=1; BEGIN for i IN 1..10 LOOP f:=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); true B- DECLARE v_x,v_y,v_z VARCHAR2(10); false C - DECLARE v_date_naissance DATE NOT NULL; false D - 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(),1 47,'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 916-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 1 2 … 30
NomEtud Etudiant 1 Etudiant 2
Note 10 10
Etudiant 30
10