PL TP1 [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

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