SGBD – TD-TP 3 (PL/SQL)

1/2
100%
Rendu du PDF...
Page 1 sur 2Lecteur de document UniversityLib

SGBD – TD-TP 3 (PL/SQL)

Database Systems (Structured Query Language and Procedural Language/SQL) · notes

Voir tous les documents en bases de données

**Module : SGBD –**

**TD-TP 3 (PL/SQL)**

**Exercice 1:**

Ecrire un programme PL/SQL permettant d’afficher votre catalogue système (liste des tables et des vues de votre compte, disponible grâce à la vue système **TAB**(TNAME, TABTYPE)) sous la forme :

L’objet **une\_table** est de type TABLE

L’objet **une\_vue** est de type VIEW …

Publicité

**Exercice 2:**

L’entreprise employant les personnes de la table EMP est délocalisée des États-Unis en France. Il est donc nécessaire de convertir leur salaire et leur commission en euros (pour simplifier, on utilisera le taux de conversion : 1 USD = 1,2 €). Tous les employés voient également augmenter leur salaire de 25 % après conversion.

1. Sous SQL, créer une nouvelle table vide EMP\_FR de même structure que EMP. On pourra, par soucis de rapidité, recopier la table EMP dans EMP\_FR pour en obtenir la structure, puis effacer tous les n-uplets de EMP\_FR. 2. Ecrire un programme PL/SQL permettant de recopier tous les n-uplets de la table EMP dans la table EMP\_FR en effectuant au passage les opérations nécessaires sur le salaire et la commission. Traiter le cas où la table EMP est vide comme une exception.

**Exercice 3:**

Une entreprise récupère un stock ancien de produits. La base de données qui décrit ce stock indique des prix en Francs. Ecrire un programme PL/SQL permettant de construire, à partir d’une table PRODUIT (NUMPROD, LIBELLE, PU, NUMFOURN), une table PRODUIT2 telle que :

1. La désignation des produits soit écrite en majuscules ; 2. le prix unitaire en francs des produits soit converti en euros (1 euro=6.559 F). Le prix en euros devra être entier (arrondir au prix le plus proche).

Publicité

**Cas particuliers à traiter**

* Si la table PRODUIT est vide, la table PRODUIT2 devra contenir uniquement le n-uplet (0, ‘Pas de produit’, NULL, NULL). * Si un prix de la table produit est NULL, son prix en euros doit être 0.

**Indications :**

* Tester si la table PRODUIT est vide. Si ce n’est pas le cas, y accéder séquentiellement à l’aide d’un curseur, effectuer les transformations sur les champs et stocker le résultat dans la table PRODUIT2. * Utiliser les fonctions SQL UPPER, ROUND et NVL.