Exercices Corrigés PL/SQL: Curseurs
La meilleure façon d’apprendre quelque chose est de pratiquer des exercices. Nous avons préparer ces exercices corrigés pour les personnes (débutantes ou intermédiaires) qui sont familières avec PL/SQL. Nous espérons que ces exercices vous aideront à améliorer vos compétences en PL/SQL. Les exercices corrigés suivantes sont actuellement disponibles, nous travaillons dur pour ajouter plus d’exercices. Bon apprentissage!
Vous pouvez lire notre tutoriel PL/SQL avant de résoudre les exercices suivants.
Exercices corrigés PL/SQL: Curseurs
1. Écrire un programme PL/SQL pour afficher les noms de tous les pays.
Table: pays +---------+------------+ | pays_id | nom | +---------+------------+ | 1001 | Angola | | 1002 | Australia | | 1005 | Albania | | 1006 | Bangladesh | | 1007 | Andorra | | 1003 | Bolivia | +---------+------------+
2. Écrire un programme PL/SQL pour afficher les noms de tous les clients.
Table: clients +-----------+----------------+-------------+--------+----------------+ | client_id | nom_cl | ville | age | fournisseur_id | +-----------+----------------+-------------+--------+----------------+ | 1001 | Alex Barbara | Paris | 25 | 6001 | | 1002 | Lois Collins | Lyon | 30 | 6001 | | 1005 | Karen Farley | Nice | 44 | 6002 | | 1006 | Kevin Thompson | Paris | 65 | 6003 | | 1007 | Scott Henry | Marseille | 32 | 6006 | | 1003 | Ellen McMullen | Montpellier | 53 | 6001 | +-----------+----------------+-------------+--------+----------------+
3. Écrire un programme PL/SQL pour afficher les identifiants des pays et les noms de tous les pays avec le titre approprié.
Table: pays +---------+------------+ | pays_id | nom | +---------+------------+ | 1001 | Angola | | 1002 | Australia | | 1005 | Albania | | 1006 | Bangladesh | | 1007 | Andorra | | 1003 | Bolivia | +---------+------------+
4. Écrire un programme PL/SQL pour afficher les identifiants, noms, prénoms et les noms de départements de tous les employés.
Table: employees +------+---------+----------+----------+----------------+ | id | nom | prenom | salaire | departement_id | +------+---------+----------+----------+----------------+ | 1001 | Eddie | Parker | 6000.00 | 1 | | 1002 | Eleanor | Deas | 4500.00 | 2 | | 1003 | Glen | Powell | 5000.00 | 3 | | 1004 | Ali | Fawaz | 7800.00 | 4 | | 1005 | Earl | Horn | 9000.00 | 5 | | 1006 | Bryan | Savoy | 8000.00 | 6 | +------+---------+----------+----------+----------------+
Table: departements +---------+----------------+ | dep_id | nom | +---------+----------------+ | 1 | Marketing | | 2 | Finance | | 3 | HR | | 4 | Informatique | | 5 | Expéditions | | 6 | Administration | +---------+----------------+
5. Écrire un programme en PL/SQL pour trouver le nombre de lignes affectées par l’utilisation de l’attribut SQL%ROWCOUNT d’un curseur implicite.
Table: pays +---------+------------+ | pays_id | nom | +---------+------------+ | 1001 | Angola | | 1002 | Australia | | 1005 | Albania | | 1006 | Bangladesh | | 1007 | Andorra | | 1003 | Bolivia | +---------+------------+
6. Écrire un programme en PL/SQL pour montrer l’utilisation de SQL%FOUND afin de déterminer si l’instruction DELETE a affecté des lignes.
Table: pays +---------+------------+ | pays_id | nom | +---------+------------+ | 1001 | Angola | | 1002 | Australia | | 1005 | Albania | | 1006 | Bangladesh | | 1007 | Andorra | | 1003 | Bolivia | +---------+------------+
7. Écrire un programme en PL/SQL pour montrer l’utilisation de SQL%NOTFOUND afin de déterminer si l’instruction UPDATE a affecté des lignes.
Table: pays +---------+------------+ | pays_id | nom | +---------+------------+ | 1001 | Angola | | 1002 | Australia | | 1005 | Albania | | 1006 | Bangladesh | | 1007 | Andorra | | 1003 | Bolivia | +---------+------------+
8. Écrire un programme en PL/SQL pour afficher les informations détaillées de l’employé de l’ID 1001 à partir de la table employees.
Table: employees +------+---------+----------+----------+----------------+ | id | nom | prenom | salaire | departement_id | +------+---------+----------+----------+----------------+ | 1001 | Eddie | Parker | 6000.00 | 8 | | 1002 | Eleanor | Deas | 4500.00 | 8 | | 1003 | Glen | Powell | 5000.00 | 6 | | 1004 | Ali | Fawaz | 7800.00 | 2 | | 1005 | Earl | Horn | 9000.00 | 9 | | 1006 | Bryan | Savoy | 8000.00 | 3 | +------+---------+----------+----------+----------------+
9. Ecrire un programme en PL/SQL pour afficher les détails des employés de la table employés à l’aide d’un curseur.
Table: employees +------+---------+----------+----------+----------------+ | id | nom | prenom | salaire | departement_id | +------+---------+----------+----------+----------------+ | 1001 | Eddie | Parker | 6000.00 | 8 | | 1002 | Eleanor | Deas | 4500.00 | 8 | | 1003 | Glen | Powell | 5000.00 | 6 | | 1004 | Ali | Fawaz | 7800.00 | 2 | | 1005 | Earl | Horn | 9000.00 | 9 | | 1006 | Bryan | Savoy | 8000.00 | 3 | +------+---------+----------+----------+----------------+
10. Créer un bloc PL/SQL pour augmenter le salaire des employés du département 8 par 100$ si le salaire est inférieure à 5000.00$ sinon augmentez-le par 50$ en utilisant la clause WHERE CURRENT OF.
Table: employees +------+---------+----------+----------+----------------+ | id | nom | prenom | salaire | departement_id | +------+---------+----------+----------+----------------+ | 1001 | Eddie | Parker | 6000.00 | 8 | | 1002 | Eleanor | Deas | 4500.00 | 8 | | 1003 | Glen | Powell | 5000.00 | 6 | | 1004 | Ali | Fawaz | 7800.00 | 2 | | 1005 | Earl | Horn | 9000.00 | 9 | | 1006 | Bryan | Savoy | 8000.00 | 3 | +------+---------+----------+----------+----------------+
Table: departements +---------+----------------+ | dep_id | nom | +---------+----------------+ | 1 | Marketing | | 2 | Finance | | 3 | HR | | 4 | Informatique | | 5 | Expéditions | | 6 | Administration | +---------+----------------+
11. Ecrire un programme en PL/SQL pour afficher le nom de l'employé avec l'id 1006 à l'aide d'un curseur.
Table: employees +------+---------+----------+----------+----------------+ | id | nom | prenom | salaire | departement_id | +------+---------+----------+----------+----------------+ | 1001 | Eddie | Parker | 6000.00 | 8 | | 1002 | Eleanor | Deas | 4500.00 | 8 | | 1003 | Glen | Powell | 5000.00 | 6 | | 1004 | Ali | Fawaz | 7800.00 | 2 | | 1005 | Earl | Horn | 9000.00 | 9 | | 1006 | Bryan | Savoy | 8000.00 | 3 | +------+---------+----------+----------+----------------+
12. Ecrire un programme en PL/SQL pour afficher le nom de tous les employés à l'aide d'un curseur.
Table: employees +------+---------+----------+----------+----------------+ | id | nom | prenom | salaire | departement_id | +------+---------+----------+----------+----------------+ | 1001 | Eddie | Parker | 6000.00 | 8 | | 1002 | Eleanor | Deas | 4500.00 | 8 | | 1003 | Glen | Powell | 5000.00 | 6 | | 1004 | Ali | Fawaz | 7800.00 | 2 | | 1005 | Earl | Horn | 9000.00 | 9 | | 1006 | Bryan | Savoy | 8000.00 | 3 | +------+---------+----------+----------+----------------+