Exercice 1
Exercice 2
Nous travaillerons par la suite sur les trois tables suivantes qui permettent de décrire des employés, des projets, l'affectation des employés aux projets et les grilles de salaire pour différents profils de postes :
La clé primaire de chaque table est soulignée.
Rappels
Pour exécuter une procédure dans SQL*PLUS utilisez la commande:
EXEC nom_procedure(liste_paramètres)
Pour afficher les éventuelles erreurs lors de la création d'une procédure ou d'une fonction, dans SQL*PLUS utilisez la commande:
SHOW err
CONSTITUTION DE LA BASE DE DONNÉES
commande | description |
---|---|
cd mon_répertoire | aller dans votre répertoire de travail |
téléchargez le fichier tme10.tar | |
tar xvf tme10.tar | désarchiver le fichier |
cd TME10 | aller dans le répertoire du tme |
@vider | Vider votre compte |
@TME10-creations | créer le schéma Entreprise |
@TME10-insertions | peupler la base Entreprise |
Pour vérifier que votre base a été peuplée, exécuter les requêtes suivantes :
SELECT COUNT(*) AS Num_employes FROM employe; // retourne 11 SELECT COUNT(*) AS Num_projets FROM projet; // retourne 3 SELECT COUNT(*) AS Num_embauche FROM embauche; // retourne 3 SELECT COUNT(*) AS Num_sal FROM grille_sal; // retourne 3
Exercices
DECLARE trouve BOOLEAN; BEGIN FOR r IN (SELECT numproj, nomproj, villep FROM Projet ORDER BY nomproj) LOOP dbms_output.put_line('-----------------------------------'); dbms_output.put_line('Projet: '||r.nomproj||' dans la ville '||r.villep); dbms_output.put_line('-----------------------------------'); trouve := FALSE; FOR r2 IN (SELECT nome, prenome FROM employe e, embauche b WHERE e.numss=b.numss AND b.numproj=r.numproj ) LOOP dbms_output.put_line('Employé: '|| r2.nome||', '|| r2.prenome); trouve := TRUE; END LOOP; IF(trouve = FALSE) THEN dbms_output.put_line('Pas d''employé'); END IF; END LOOP; END; /