Oracle et PL/SQL Intro
fait moi le cours d'oracle et de plsql
Voici un cours introductif sur Oracle Database et PL/SQL. Ce cours couvre les bases pour commencer à
travailler avec Oracle Database, y compris la programmation avec PL/SQL.
Partie 1 : Introduction à Oracle Database
1. Qu'est-ce qu'Oracle Database ?
Oracle Database est un système de gestion de base de données relationnelle (SGBDR).
Il est conçu pour stocker et gérer de grandes quantités de données tout en assurant leur sécurité,
performance et intégrité.
2. Architecture de base
1. Instance Oracle :
Elle comprend la mémoire et les processus utilisés pour gérer la base de données.
Composants :
SGA (System Global Area) : mémoire partagée.
PGA (Program Global Area) : mémoire privée pour les processus utilisateur.
2. Fichiers de base de données :
Fichiers de données : stockent les tables et les index.
Fichiers de contrôle : contiennent des informations sur la structure de la base.
Fichiers de journalisation : enregistrent les transactions.
3. Concepts clés
Schéma : collection d'objets (tables, vues, procédures, etc.) appartenant à un utilisateur.
SQL (Structured Query Language) : langage utilisé pour interagir avec la base de données.
Partie 2 : Introduction à PL/SQL
1. Qu'est-ce que PL/SQL ?
PL/SQL (Procedural Language/SQL) est un langage procédural ajouté à SQL par Oracle.
Il permet d'écrire des blocs de code complexes, des procédures, des fonctions, et des triggers pour
automatiser les tâches.
2. Structure d'un bloc PL/SQL
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 1/15
Un bloc PL/SQL a trois sections principales :
sql
DECLARE
-- Déclaration des variables et constantes
BEGIN
-- Code principal : SQL et logique procédurale
EXCEPTION
-- Gestion des erreurs
END;
3. Exemples de blocs PL/SQL
Exemple simple :
sql
BEGIN
DBMS_OUTPUT.PUT_LINE('Bonjour, PL/SQL !');
END;
Avec déclaration de variables :
sql
DECLARE
v_nom VARCHAR2(50) := 'Oracle';
BEGIN
DBMS_OUTPUT.PUT_LINE('Bonjour, ' || v_nom || ' !');
END;
Partie 3 : Concepts avancés de PL/SQL
1. Cursuers (Cursors)
Un curseur est un pointeur pour gérer des ensembles de résultats.
Exemple de curseur explicite :
sql
DECLARE
CURSOR c_clients IS
SELECT nom, prenom FROM clients;
v_nom [Link]%TYPE;
v_prenom [Link]%TYPE;
BEGIN
OPEN c_clients;
LOOP
FETCH c_clients INTO v_nom, v_prenom;
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 2/15
EXIT WHEN c_clients%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(v_nom || ' ' || v_prenom);
END LOOP;
CLOSE c_clients;
END;
2. Procédures
Les procédures permettent de regrouper un ensemble d'instructions.
Exemple :
sql
CREATE OR REPLACE PROCEDURE afficher_message IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Procédure exécutée avec succès !');
END;
3. Fonctions
Les fonctions retournent une valeur.
Exemple :
sql
CREATE OR REPLACE FUNCTION additionner(a NUMBER, b NUMBER) RETURN NUMBER IS
BEGIN
RETURN a + b;
END;
4. Triggers
Les triggers s'exécutent automatiquement lorsqu'un événement survient (INSERT, UPDATE, DELETE).
Exemple :
sql
CREATE OR REPLACE TRIGGER avant_insertion
BEFORE INSERT ON clients
FOR EACH ROW
BEGIN
DBMS_OUTPUT.PUT_LINE('Insertion dans la table clients.');
END;
Partie 4 : Outils pour travailler avec Oracle
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 3/15
SQL*Plus : outil en ligne de commande pour exécuter du SQL et PL/SQL.
SQL Developer : IDE graphique pour interagir avec Oracle Database.
Toad for Oracle : outil tiers pour la gestion de base de données.
Partie 5 : Exercice pratique
1. Créer une table `clients` :
sql
CREATE TABLE clients (
id NUMBER GENERATED BY DEFAULT AS IDENTITY,
nom VARCHAR2(50),
prenom VARCHAR2(50),
date_naissance DATE
);
2. Insérer des données :
sql
INSERT INTO clients (nom, prenom, date_naissance)
VALUES ('Dupont', 'Jean', TO_DATE('1990-01-15', 'YYYY-MM-DD'));
3. Créer une procédure pour afficher les clients :
sql
CREATE OR REPLACE PROCEDURE afficher_clients IS
BEGIN
FOR rec IN (SELECT nom, prenom FROM clients) LOOP
DBMS_OUTPUT.PUT_LINE([Link] || ' ' || [Link]);
END LOOP;
END;
4. Appeler la procédure :
sql
BEGIN
afficher_clients;
END;
Partie 6 : Ressources pour aller plus loin
Documentation Oracle
Tutoriels en ligne : Oracle Live SQL
Livres : Oracle PL/SQL Programming par Steven Feuerstein.
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 4/15
Ce cours couvre les bases pour débuter avec Oracle Database et PL/SQL. Vous pouvez pratiquer ces
concepts pour vous familiariser davantage.
fais moi des qcm et leur reponse
Voici une série de questions à choix multiple (QCM) sur Oracle Database et PL/SQL, avec les réponses
fournies pour chaque question.
Section 1 : Oracle Database
Q1 : Quel composant Oracle contient les informations sur la structure de la base de données ?
1. SGA
2. Fichier de données
3. Fichier de contrôle
4. PGA
Réponse : 3. Fichier de contrôle
Q2 : Que signifie SGBDR ?
1. Système de Gestion de Base de Données Relationnelle
2. Système Général de Base de Données Relationnelle
3. Système de Gestion de Base de Données Répartie
4. Service de Gestion des Bases de Données Relationnelles
Réponse : 1. Système de Gestion de Base de Données Relationnelle
Q3 : Quelle commande est utilisée pour créer une nouvelle table dans Oracle Database ?
1. INSERT INTO
2. CREATE TABLE
3. ALTER TABLE
4. UPDATE TABLE
Réponse : 2. CREATE TABLE
Q4 : Quel type de fichier Oracle stocke les journaux des transactions ?
1. Fichier de données
2. Fichier de contrôle
3. Fichier de journalisation
4. Fichier temporaire
Réponse : 3. Fichier de journalisation
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 5/15
Q5 : Quel outil Oracle est un IDE graphique pour interagir avec la base de données ?
1. SQL*Plus
2. SQL Developer
3. RMAN
4. Data Pump
Réponse : 2. SQL Developer
Section 2 : SQL
Q6 : Quelle clause SQL est utilisée pour extraire des données spécifiques d'une table ?
1. SELECT
2. WHERE
3. FROM
4. JOIN
Réponse : 2. WHERE
Q7 : Quel mot-clé est utilisé pour empêcher des doublons dans une colonne ?
1. UNIQUE
2. DISTINCT
3. PRIMARY KEY
4. CHECK
Réponse : 2. DISTINCT
Q8 : Quelle commande SQL est utilisée pour modifier la structure d'une table ?
1. UPDATE
2. DELETE
3. ALTER TABLE
4. CREATE TABLE
Réponse : 3. ALTER TABLE
Q9 : Quelle commande est utilisée pour supprimer toutes les lignes d'une table, sans supprimer la
table elle-même ?
1. DROP TABLE
2. DELETE
3. TRUNCATE
4. REMOVE
Réponse : 3. TRUNCATE
Q10 : Quelle contrainte assure que chaque ligne d'une table a une clé unique ?
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 6/15
1. NOT NULL
2. UNIQUE
3. PRIMARY KEY
4. FOREIGN KEY
Réponse : 3. PRIMARY KEY
Section 3 : PL/SQL
Q11 : Quelle section d’un bloc PL/SQL est optionnelle ?
1. DECLARE
2. BEGIN
3. EXCEPTION
4. END
Réponse : 1. DECLARE
Q12 : Comment appelle-t-on un morceau de code PL/SQL qui retourne une valeur ?
1. Procédure
2. Fonction
3. Trigger
4. Bloc anonyme
Réponse : 2. Fonction
Q13 : Que signifie DBMS dans DBMS_OUTPUT.PUT_LINE ?
1. Data Base Management System
2. Data Block Management System
3. Distributed Base Management System
4. Data Buffer Management System
Réponse : 1. Data Base Management System
Q14 : Quel est le mot-clé pour capturer une exception dans PL/SQL ?
1. BEGIN
2. WHEN
3. EXCEPTION
4. RAISE
Réponse : 3. EXCEPTION
Q15 : Quelle structure est utilisée pour exécuter une commande pour chaque ligne d’un résultat
SQL ?
1. CURSOR
2. LOOP
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 7/15
3. TRIGGER
4. FUNCTION
Réponse : 1. CURSOR
Section 4 : Concepts avancés
Q16 : Quel type de curseur est automatiquement géré par Oracle ?
1. Curseur explicite
2. Curseur implicite
3. Curseur dynamique
4. Curseur statique
Réponse : 2. Curseur implicite
Q17 : Comment Oracle assure-t-il l'intégrité d'une transaction ?
1. Par les journaux de contrôle
2. Avec les fichiers de données
3. En utilisant COMMIT et ROLLBACK
4. Avec des vues matérialisées
Réponse : 3. En utilisant COMMIT et ROLLBACK
Q18 : Quel type d’objet PL/SQL s’exécute automatiquement lorsqu’un événement survient dans la
base de données ?
1. Fonction
2. Trigger
3. Procédure
4. Bloc anonyme
Réponse : 2. Trigger
Q19 : Que retourne une fonction dans PL/SQL ?
1. Une table
2. Une exception
3. Une valeur unique
4. Une transaction
Réponse : 3. Une valeur unique
Q20 : Quelle commande permet d'afficher du texte à l'écran dans PL/SQL ?
1. DBMS_OUTPUT.DISPLAY
2. DBMS_OUTPUT.PUT_LINE
3. PRINT
4. OUTPUT_TEXT
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 8/15
Réponse : 2. DBMS_OUTPUT.PUT_LINE
Ces QCM couvrent les bases et concepts avancés d’Oracle Database et PL/SQL. Vous pouvez les utiliser
pour tester vos connaissances ou préparer des évaluations.
on utilise quoi pour la sauvegarde de postgresql?
La sauvegarde de PostgreSQL peut être effectuée à l'aide de différents outils et méthodes, en fonction
des besoins de l'utilisateur (sauvegarde logique ou physique, fréquence, taille de la base de données,
etc.). Voici les options principales :
1. Sauvegarde logique
Les sauvegardes logiques capturent les données et la structure de la base de données dans un format
lisible par l'humain. Elles sont idéales pour des bases de données de petite à moyenne taille.
Outil : `pg_dump`
Utilisé pour sauvegarder une seule base de données.
Produit des fichiers de sauvegarde dans les formats suivants :
SQL (recréation des objets avec des commandes SQL)
Custom ou Tar (plus compact, plus rapide à restaurer avec `pg_restore`).
Commandes courantes :
bash
# Sauvegarde en format SQL
pg_dump -U username -d database_name -f [Link]
# Sauvegarde en format custom
pg_dump -U username -d database_name -Fc -f [Link]
Outil : `pg_dumpall`
Utilisé pour sauvegarder toutes les bases de données dans une instance PostgreSQL.
Inclut les utilisateurs et les rôles.
Commande :
bash
pg_dumpall -U username -f all_databases_backup.sql
Avantages :
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 9/15
Facile à utiliser.
Portable entre différentes versions de PostgreSQL.
Inconvénients :
Plus lent pour les grandes bases de données.
Nécessite une restauration complète en cas de panne.
2. Sauvegarde physique
La sauvegarde physique copie directement les fichiers de données PostgreSQL. Elle est idéale pour les
bases de données volumineuses et les environnements nécessitant une haute disponibilité.
Outil : `pg_basebackup`
Crée une sauvegarde physique cohérente de l'ensemble de la base de données.
Compatible avec la réplication.
Commandes courantes :
bash
# Sauvegarde de l'instance PostgreSQL
pg_basebackup -U replication_user -D /path/to/backup -Fp -Xs -P
Options importantes :
`-D` : spécifie le répertoire de sauvegarde.
`-Fp` : sauvegarde les fichiers en format `plain`.
`-Xs` : inclut les fichiers de journaux WAL.
`-P` : affiche la progression.
Utilisation de snapshots système
Pour des performances optimales, vous pouvez utiliser des snapshots de système de fichiers (par
exemple, avec LVM, ZFS, ou des outils de sauvegarde au niveau du disque).
3. Archivage et journaux de transactions (WAL Archiving)
Pour les sauvegardes incrémentielles ou pour restaurer une base à un moment précis, utilisez
l'archivage des journaux WAL.
1. Configurer l'archivage WAL : Dans le fichier `[Link]`, activez ces paramètres :
conf
archive_mode = on
archive_command = 'cp %p /path/to/archive/%f'
wal_level = replica
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 10/15
2. Sauvegarder les journaux WAL :
Les fichiers WAL contiennent les transactions et permettent une récupération point-in-time
(PITR).
3. Restauration PITR : Utilisez les sauvegardes physiques avec les journaux WAL pour restaurer une
base de données à un moment précis.
4. Outils tiers pour les sauvegardes PostgreSQL
Pour des besoins avancés, vous pouvez utiliser des outils tiers spécialisés :
Outils populaires :
1. Barman :
Gestion centralisée des sauvegardes physiques et des journaux WAL.
Restauration simplifiée.
bash
barman backup server_name
2. PgBackRest :
Sauvegardes physiques incrémentielles et compressées.
Très performant pour les bases de données volumineuses.
bash
pgbackrest --stanza=stanza_name backup
3. Wal-G :
Sauvegardes incrémentielles optimisées pour le cloud.
Intégration avec Amazon S3, Google Cloud Storage, etc.
Résumé des outils et cas d'utilisation
Outil Type Cas d'utilisation
`pg_dump` Sauvegarde logique Sauvegarde d'une seule base.
`pg_dumpall` Sauvegarde logique Sauvegarde de toutes les bases d'une instance.
`pg_basebackup` Sauvegarde physique Sauvegarde de grandes bases de données.
`Barman`, `PgBackRest` Physique avancée Gestion centralisée et haute disponibilité.
WAL Archiving Incrémentiel Restauration à un moment précis (PITR).
Pour choisir la méthode adaptée, tenez compte de vos contraintes (taille, fréquence, et temps de
restauration). Si vous avez une base de données critique, privilégiez une combinaison de sauvegardes
physiques et journaux WAL pour une meilleure résilience.
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 11/15
et pour oracle?
La sauvegarde dans Oracle Database peut être réalisée en utilisant différents outils et stratégies, en
fonction des besoins spécifiques, comme la fréquence des sauvegardes, la taille de la base de données
et la criticité des données. Voici les options principales pour sauvegarder une base Oracle :
1. Sauvegarde logique
Les sauvegardes logiques exportent les données et la structure des objets de la base de données au
format lisible (fichiers `.dmp` ou `.sql`).
Outil : `Data Pump Export/Import` (`expdp` et `impdp`)
Outil recommandé pour les sauvegardes logiques dans Oracle Database.
Sauvegarde les schémas, tables, ou toute la base dans des fichiers de type dump (`.dmp`).
Permet également la sauvegarde sélective d’objets spécifiques (par exemple, une table ou un
schéma).
Commandes courantes :
bash
# Exporter un schéma
expdp user/password DIRECTORY=backup_dir DUMPFILE=backup_schema.dmp SCHEMAS=your_schema LOGF
ILE=[Link]
# Exporter toute la base
expdp user/password DIRECTORY=backup_dir DUMPFILE=backup_full.dmp FULL=Y LOGFILE=backup_ful
[Link]
Pour restaurer :
bash
# Importer un schéma
impdp user/password DIRECTORY=backup_dir DUMPFILE=backup_schema.dmp LOGFILE=[Link]
# Importer toute la base
impdp user/password DIRECTORY=backup_dir DUMPFILE=backup_full.dmp FULL=Y LOGFILE=import_ful
[Link]
Outil : `Export/Import classique` (`exp` et `imp`)
Outil plus ancien, moins performant que Data Pump.
Toujours disponible pour des cas spécifiques ou des versions Oracle très anciennes.
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 12/15
2. Sauvegarde physique
La sauvegarde physique consiste à copier les fichiers de données, de contrôle et de journaux de
transactions. Elle est utilisée pour les bases de données critiques où une restauration rapide est
nécessaire.
Outil : `RMAN` (Recovery Manager)
Outil standard et recommandé pour les sauvegardes physiques dans Oracle.
Supporte les sauvegardes complètes, incrémentielles, et les sauvegardes des journaux redo.
Commandes courantes avec RMAN :
Sauvegarde complète
bash
rman target /
BACKUP DATABASE FORMAT '/path/to/backup/%[Link]';
Sauvegarde incrémentielle
Capture uniquement les blocs modifiés depuis la dernière sauvegarde.
bash
BACKUP INCREMENTAL LEVEL 1 DATABASE FORMAT '/path/to/backup/%[Link]';
Sauvegarde des journaux redo
Sauvegarde les journaux redo archivés pour permettre la récupération point-in-time.
bash
BACKUP ARCHIVELOG ALL FORMAT '/path/to/backup/%[Link]';
Lister les sauvegardes disponibles
bash
LIST BACKUP;
Restaurer une base de données
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 13/15
bash
RESTORE DATABASE;
RECOVER DATABASE;
Avantages de RMAN :
Gestion automatique des sauvegardes incrémentielles.
Peut être intégré avec des outils de sauvegarde tiers.
Restauration rapide, même pour des bases volumineuses.
3. Sauvegarde en ligne (Online Backup)
Si la base de données fonctionne en mode ARCHIVELOG, vous pouvez effectuer des sauvegardes sans
arrêter la base.
Étapes :
1. Activer le mode ARCHIVELOG :
Vérifiez si le mode est activé :
sql
ARCHIVE LOG LIST;
Si ce n’est pas le cas, activez-le :
sql
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
2. Sauvegarder les fichiers (avec RMAN ou des outils tiers) :
Incluez les fichiers de données, les fichiers de contrôle, et les journaux redo archivés.
4. Snapshots système
Utilisez les outils de snapshots du système de fichiers ou de stockage pour capturer l’état des fichiers
Oracle. Cela nécessite que les fichiers de données, de contrôle, et de journaux redo soient cohérents (le
mode ARCHIVELOG doit être activé).
5. Outils tiers pour les sauvegardes Oracle
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 14/15
Pour des environnements d’entreprise, des outils tiers permettent une gestion centralisée et avancée
des sauvegardes Oracle.
Exemples :
1. Oracle Recovery Manager (RMAN) :
Intégré à Oracle, il peut être couplé à Oracle Enterprise Manager.
2. NetBackup :
Utilisé pour automatiser et centraliser les sauvegardes Oracle.
3. Commvault :
Fournit des sauvegardes avancées pour les bases Oracle avec intégration RMAN.
4. Data Domain Boost (DD Boost) :
Compatible avec RMAN pour accélérer les sauvegardes physiques.
6. Sauvegardes avec Oracle Cloud
Outil : Oracle Cloud Infrastructure (OCI) Backup Service
Si votre base est sur Oracle Cloud, vous pouvez utiliser OCI pour automatiser les sauvegardes.
Supporte les sauvegardes physiques et logiques.
Intégré avec RMAN pour envoyer les sauvegardes directement vers le stockage cloud.
Résumé des outils et cas d'utilisation
Outil Type Cas d'utilisation
`Data Pump` (`expdp`) Sauvegarde logique Sauvegarder/exporter des objets ou schémas.
`RMAN` Sauvegarde physique Gestion avancée des sauvegardes physiques.
Export classique (`exp`) Sauvegarde logique Outil classique pour des bases anciennes.
Snapshots système Physique Rapide pour sauvegardes ponctuelles.
OCI Backup Service Cloud Bases hébergées dans Oracle Cloud.
Recommandations
Pour petites bases : Utilisez `Data Pump` pour des sauvegardes rapides et portables.
Pour grandes bases critiques : Combinez RMAN avec le mode ARCHIVELOG.
Pour haute disponibilité : Activez l’archivage des journaux redo et configurez des sauvegardes
incrémentielles avec RMAN.
Pour le cloud : Exploitez les outils Oracle Cloud Infrastructure.
Cela garantit une sauvegarde fiable et adaptée aux besoins spécifiques de votre base Oracle.
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 15/15