Vous êtes sur la page 1sur 10

Université de Kairouan Année Universitaire

Institut Supérieur d’Informatique 2021-2022


et de Gestion de Kairouan

Support de cours Ingénierie des BD


2èmeSI
Omar MAZHOUD

Chapitre n°1 : Introduction au SGBD ORACLE

1. Historique
Oracle est un SGBD (système de gestion de bases de données) édité par la société du même
nom (Oracle Corporation - http://www.oracle.com/), leader mondial des bases de données.
La société Oracle Corporation a été créée en 1977 par Lawrence Ellison, Bob Miner, et Ed
Oates. Elle s'appelle alors Relational Software Incorporated (RSI) et commercialise un
Système de Gestion de Bases de données relationnelles (SGBDR ou RDBMS pour Relational
Database Management System) nommé Oracle.
En 1979, le premier prototype (RDBMS - RSI1) intégrant la séparation des espaces
d'adressage entre les programmes utilisateurs et le noyau Oracle est commercialisé. Cette
version est entièrement développée en langage assembleur. La seconde version (RDBMS -
RSI2) est un portage de l'application sur d'autres plates-formes.
En 1983 la troisième version apporte des améliorations au niveau des performances et une
meilleure prise en charge du SQL. Cette version est entièrement codée en langage C. A la
même époque RSI change de raison sociale et devient Oracle.
En 1984 la première version d'Oracle (Oracle 4) est commercialisée sur les machines IBM.
En 1985 Oracle 5 permet une utilisation client-serveur grâce au middleware SQL*Net.
En 1986 Oracle a été porté sur la plateforme 8086.
En 1988 Oracle 6 est disponible sur un grand nombre de plates-formes et apporte de
nombreuses nouvelles fonctionnalités ainsi qu'une amélioration notable des performances.
En 1991, Oracle 6.1 propose une option Parallel Server (dans un premier temps sur la DEC
VAX, puis rapidement sur de nombreuses autres plates-formes).
En 1992, Oracle 7 sort sur les plates-formes UNIX (elle ne sortira sur les plates-formes
Windows qu'à partir de 1995). Cette version permet une meilleure gestion de la mémoire, du
CPU et des entrées-sorties. La base de données est accompagnée d'outils d'administration
(SQL*DBA) permettant une exploitation plus aisée de la base. En 1997, la version Oracle 7.3
(baptisée Oracle Universal Server) apparaît, suivie de la version 8 offrant des capacités objet à
la base de données.
Oracle est écrit en langage C et est disponible sur de nombreuses plates-formes matérielles
(plus d'une centaine) dont :
• AIX (IBM)
• Solaris (Sun)
• HP/UX (Hewlett Packard)
• Windows (Microsoft)
Oracle depuis la version 8.0.5 est disponible sous Linux.
La dernière version d’Oracle est la version 18c.
2. Les versions d'Oracle
Oracle se décline en plusieurs versions
Cours Ingénierie des BD -Omar MAZHOUD- ISIGK -2021/2022 1
• Oracle Server Standard, une version comprenant les outils les plus courants de la
solution Oracle.
• Oracle Server Entreprise Edition
3. Les fonctionnalités d'Oracle
Oracle est un SGBD permettant d'assurer :
• La définition et la manipulation des données
• La cohérence des données
• La confidentialité des données
• L'intégrité des données
• La sauvegarde et la restauration des données
• La gestion des accès concurrents
4. Les composants d'Oracle
Outre la base de données, la solution Oracle est un véritable environnement de travail
constitué de nombreux logiciels permettant notamment une administration graphique
d'Oracle, de s'interfacer avec des produits divers et d'assistants de création de bases de
données et de configuration de celles-ci.
On peut classer les outils d'Oracle selon diverses catégories :
• Les outils d'administration
• Les outils de développement
• Les outils de communication
• Les outils de génie logiciel
• Les outils d'aide à la décision
4.1 Les outils d'administration d'Oracle
Oracle est fourni avec de nombreux outils permettant de simplifier l'administration de la base
de données. Parmi ces outils, les plus connus sont :
• Oracle Manager (SQL*DBA)
• NetWork Manager
• Oracle Enterprise Manager
• Import/Export : un outil permettant d'échanger des données entre deux bases Oracle
4.2 Outils de développement d'Oracle
Oracle propose également de nombreux outils de développement permettant d'automatiser la
création d'applications s'interfaçant avec la base de données. Parmi ces outils de
développement, on peut citer :
• SQL*Plus : une interface interactive permettant d'envoyer des requêtes SQL et
PL/SQL à la base de données. SQL*Plus permet notamment de paramétrer
l'environnement de travail (formatage des résultats, longueur d'une ligne, nombre de
lignes par page, ...)
• Oracle Developer : il s'agit d'une suite de produits destinés à la conception et à la
création d'applications client-serveur. Il est composé de 4 applications :
o Oracle Forms (anciennement SQL*Forms) : un outil permettant d'interroger la
base de données de façon graphique sans connaissances préalables du langage
SQL. SQL*Forms permet ainsi de développer des applications graphiques
(fenêtres, formulaires, ...) permettant de sélectionner, modifier et supprimer
des données dans la base.
o Oracle Reports (SQL*ReportWriter) : un outil permettant de réaliser des états

Cours Ingénierie des BD -Omar MAZHOUD- ISIGK -2021/2022 2


o Oracle Graphics : un outil de génération automatique de graphiques
dynamiques pour présenter graphiquement des statistiques réalisées à partir des
données de la base
o Procedure Builder : un outil permettant de développer des procédures, des
fonctions et des packages

4.3 Les outils de programmation


Oracle dispose d'un grand nombre d'interfaces (API) permettant à des programmes écrits dans
divers langages de s'interfacer avec la base de données en envoyant des requêtes SQL. Ces
interfaces (appelées précompilateurs) forment une famille dont le nom commence par PRO* :
• Pro*C
• Pro*Cobol
• Pro*Fortran
• Pro*Pascal
• Pro*PLI
• ...

5. Architecture du SGBD Oracle


Une base de données Oracle est constituée de plusieurs éléments :
• Des processus chargés en mémoire sur le serveur
• Des fichiers physiques stockés sur le serveur
• D'un espace mémoire sur le serveur appelé SGA (System Global Area)

On appelle instance Oracle les processus et la SGA d'une base de données Oracle.
6. Les fichiers physiques d'une base Oracle
Les fichiers physiques d'une base Oracle permettent de stocker de manière persistante les
données manipulées par Oracle, tandis que la mémoire sert à optimiser la vitesse de
fonctionnement de la base de données.
On distingue généralement deux types de fichiers :
• Les fichiers servant à stocker les informations de la base. Tous ces fichiers sont des
fichiers binaires, ce qui signifie qu'ils sont inexploitables avec un éditeur de texte.
• Les fichiers destinés à la configuration et au fonctionnement de la base Oracle

Cours Ingénierie des BD -Omar MAZHOUD- ISIGK -2021/2022 3


Oracle a défini une architecture permettant de définir une méthode d'organisation standard des
fichiers de la base Oracle. Cette architecture est nommée OFA (Optimal Flexible
Architecture).
Les fichiers d'une base de données Oracle sont les suivants :
• Les fichiers de données (dont l'extension est .dbf). Ces fichiers contiennent
l'ensemble des données de la base (les tables, les vues, les procédures stockées, ...).
• Les fichiers Redo Log (dont l'extension est .rdo ou .log). Ces fichiers contiennent
l'historique des modifications effectuées sur la base de données
• Les fichiers de contrôle (dont l'extension est .ctl). Ces fichiers permettent de stocker
les informations sur l'état de la base de données (emplacement des fichiers, dates de
création, ...)
Une base de données Oracle nécessite au minimum un fichier de données, deux fichiers redo
Log et un fichier de contrôle.

6.1 Les fichiers de données


Les fichiers de données sont les fichiers occupant la majeure partie de la base de données, leur
taille peut osciller entre quelques Mégaoctets et plusieurs gigaoctets. Ceux-ci contiennent en
effet toutes les données relatives à la base Oracle dans un format propriétaire. Ainsi pour
modifier les informations contenues dans la base de données il est impossible d'intervenir
directement sur ces fichiers ; la bonne procédure à adopter consiste à modifier le contenu de la
base de données par l'intermédiaire d'ordres SQL.
Les fichiers de données contiennent des informations de deux types :
• Le dictionnaire de données et de travail
• Les données des utilisateurs
La lecture de ces fichiers de données est faite à l'aide des processus utilisateurs tandis que
l'écriture est assurée par le processus DBWR (Database Writer)

6.2 Les fichiers Redo-log


Les fichiers Redo-log contiennent l'historique des modifications apportées à la base de
données Oracle. Ces fichiers de journalisation enregistrent les modifications successives de la
base de données afin de pouvoir restaurer la base de données en cas de défaillance d'un disque
dur. Ainsi le cas échéant, la base de données Oracle est à même de simuler l'ensemble des
commandes n'ayant pas été sauvegardées pour rétablir le contenu de la base de données.
Au même titre que les fichiers de données, les fichiers Redo-log sont dans un format
propriétaire Oracle et l'écriture dans ces fichiers est assurée par le processus LGWR (Log
Writer).
Oracle propose également un mode archivage permettant la sauvegarde du fichier Redo-log
avant sa réutilisation pour restaurer la base. Si ce mode n'a pas été activé, le contenu du
fichier Redo Log est supprimé après utilisation.
Enfin ces fichiers peuvent être multiplexés (dupliqués dans des répertoires de groupe) afin de
fournir un maximum de sécurité.
6.3 Les fichiers de contrôle
Les fichiers de contrôle permettent de stocker l'état de la base de données. Ils sont créés lors
de la création de la base.
Ces fichiers permettent, lors de l'initialisation de la base, de savoir si la base de données a été
arrêtée correctement, ainsi que de connaître l'emplacement des fichiers de données et des
fichiers Redo Log. Les fichiers de contrôle sont eux-mêmes repérés par le fichier
d'initialisation.
Le fichier de contrôle contient les informations suivantes :
• Nom de la base de données
Cours Ingénierie des BD -Omar MAZHOUD- ISIGK -2021/2022 4
• Date et heure de création de la base
• L'emplacement des fichiers journaux (Redo-Log)
• Des informations de synchronisation
6.4 Le fichier d'initialisation
Ce fichier est un fichier au format texte contenant l'ensemble des paramètres de démarrage de
la base (il est généralement nommé initSID.ora, où SID représente le nom donné à l'instance).
Son existence n'est toutefois pas majeure car il peut être facilement reconstruit.
Un fichier d'initialisation par défaut est créé lors de la création d'une base. Celui-ci est
largement documenté et des exemples de valeurs sont donnés pour chaque paramètre.
Toutefois parmi ces paramètres, seul un nombre limité d'entre eux est réellement utile.
7. Les processus Oracle
Le fonctionnement de la base Oracle est régi par un certain nombre de processus chargés en
mémoire permettant d'assurer la gestion de la base de données.
On distingue généralement deux types de processus :
• les processus utilisateurs (appelés aussi user process ou noyau oracle).
• les processus systèmes (oracle process). Les processus Oracle (processus système) se
classent en deux catégories :
o Les processus serveurs (process server) gérant les requêtes des utilisateurs
provenant des connections à la base de données générées par des outils tels que
SQL*Plus. Le processus serveur est chargé de la communication entre la SGA
et le processus utilisateur. Il permet ainsi d'analyser et d'exécuter les requêtes
SQL des utilisateurs, de lire les fichiers de données et de placer les blocs de
données correspondants dans la SGA.
o Les processus d'arrière-plan (background process) chargés d'assurer le
fonctionnement interne du SGBD Oracle (gestion de la mémoire, écriture dans
les fichiers, ...).

Un processus utilisateur est créé pour chaque programme exécuté par un utilisateur (par
exemple Oracle Forms ou Server Manager) afin de fournir l'environnement nécessaire à
l'exécution de celui-ci. Le processus utilisateur ainsi créé communique avec les processus
systèmes à travers le programme interface.
Chaque processus a pour nom ora_nomduprocessus_SID où SID représente le nom de
l'instance à laquelle le processus est associé.
Les 4 principaux processus systèmes sont :

• DBWR (DataBase Writer ou Dirty Buffer Writer), le processus chargé d'écrire le


contenu des buffers dans les fichiers de données. Il permet donc de transférer les blocs
de données modifiés (appelés dirty blocks) de la System Global Area vers les fichiers
de la base de données. Ainsi, lorsqu'un ordre SQL modifie la base de données (c'est-à-
dire lorsqu'une requête SQL DELETE, INSERT ou UPDATE est reçue), les blocs de
données affectés sont modifiés dans le fichier de données associé.
• LGWR (Log Writer), le processus chargé d'écrire le contenu des buffers dans les
fichiers Redo Log. Son rôle est de mettre à jour les fichiers journaux (Redo Log) dans
la SGA et sur le disque. Ainsi ce processus est chargé d'écrire le contenu du cache
Redo Log de la SGA dans le fichier Redo Log à chaque fois qu'un ordre COMMIT est
réceptionné.
• PMON (Process Monitor), le processus chargé de nettoyer les ressources, les verrous
et les processus utilisateurs non utilisés. Ainsi il supprime les processus en erreur, il
annule les transactions n'ayant pas été validées (par exemple si un client est

Cours Ingénierie des BD -Omar MAZHOUD- ISIGK -2021/2022 5


déconnecté brutalement lors de la transaction) ; il libère les verrous, et libère les
ressources utilisées inutilement dans la SGA.
• SMON (System Monitor), le processus chargé de vérifier la cohérence de la base de
données et éventuellement sa restauration lors du démarrage si besoin. Ainsi, si la base
n'a pas été stoppée correctement, le processus analyse les informations stockées dans
les rollback segments (les rollback segments sont les zones de stockage des opérations
n'ayant pas encore été validées) puis annule toutes les informations en attente mais
pour lesquelles aucune validation n'a été enregistrée (appelées deadlocks). Ainsi
SMON a un rôle de libération des ressources utilisées inutilement par le système.
D'autre part SMON surveille les espaces libres des fichiers de la base de données et les
réorganise si nécessaire afin de les défragmenter.

Il existe également d'autres processus d'importance secondaire :


• CKPT (CheckPoint), le processus chargé d'écrire le contenu des buffers dans les
fichiers de données
• RECO (Recoverer), il s'agit d'un processus optionnel permettant de résoudre les
transactions interrompues brutalement dans un système de bases de données
distribuées (par exemple un système de réplication de bases de données)
• ARCH (Archiver). Ce processus est optionnel et n'existe qu'en mode ARCHIVELOG.
Il permet de dupliquer les fichiers Redo-Log dans un espace d'archivage.
• Dnnnn (Dispatcher, nnnn représente une suite de nombre entiers) : Ce processus est
optionnel et n'est présent que dans les configurations MTS (multi-threaded server). Il
permet de router les requêtes des postes clients-serveurs distants vers les autres
serveurs. Il existe au moins un processus Dnnnn pour chaque protocole de
communication
• Snnnn (Server, nnnn représente une suite de nombre entiers) : Ce processus n'est
également présent que dans les configurations MTS. Il permet de recevoir les
demandes de connexions distantes envoyées par le processus Dnnnn d'un serveur
distant.
• LCKn (Lock) est un processus de verrouillage utilisé lorsque Oracle Parallel Server
est installé.

8. L'utilisation de la mémoire par Oracle


Oracle fait un usage poussé de la mémoire physique (RAM, Random Access Memory) du
serveur afin de fournir les meilleures performances possibles. Ainsi Oracle utilise la mémoire
physique du serveur pour :
• accélérer l'accès aux données de la base régulièrement accédées
• mettre les processus en mémoire
• optimiser la communication entre les processus et la base de données
Ainsi la taille de la mémoire vive du serveur est primordiale pour la performance de la base de
données. En effet, lorsqu'il n'y a plus de mémoire physique disponible, le système
d'exploitation met à disposition de l'application une mémoire dite "virtuelle" composée de
fichiers d'échange (fichiers swap) sur le disque du serveur. Or l'accès au disque dur est
extrêmement plus long que l'accès à la mémoire physique, ce qui provoque des
ralentissements notables dans le fonctionnement de la base de données Oracle.
Dans une base de données Oracle on distingue généralement deux zones mémoire :

• La zone SGA (System Global Area) assurant le partage des données des différents
utilisateurs, c'est-à-dire qu'il s'agit de la zone contenant les structures de données
accessibles par tous les processus
• La zone PGA (Program Global Area) permettant le fonctionnement des divers
processus (afin de stocker toutes les données ne nécessitant pas d'être partagées).
Cours Ingénierie des BD -Omar MAZHOUD- ISIGK -2021/2022 6
La SGA (appelée aussi mémoire réservée) est composée de plusieurs constituants :

• La Shared Pool (ou zone partagée) contenant des informations pouvant être réutilisées
par les différents utilisateurs, c'est-à-dire les requêtes SQL et programmes PL/SQL
pouvant être partagés, le dictionnaire de données, les curseurs, ... D'une manière
générale, cette zone sert à mémoriser, analyser et traiter les requêtes SQL provenant
des divers utilisateurs.
• Le Db block buffer (Database Buffer Cache ou cache des blocs de données) est un
espace mémoire contenant toutes les données transitant de ou vers la base de données :
blocs de données, blocs d'index et blocs contenant les ROLLBACK SEGMENTS. Il
s'agit donc d'un cache permettant d'accélérer l'accès à certaines données de la base.
• Le Redo Log buffer (ou cache Redo-log) contient les blocs de données (appelés Redo
Entries) à modifier et les modifications à effectuer sur ces données, avant que
l'ensemble de ces mises à jour de la base ne soient archivées dans les fichiers Redo-log

La SGA et les processus d'arrière plan constituent ce que l'on appelle une instance ; A chaque
démarrage d'une instance, l'espace mémoire nécessaire à son bon fonctionnement lui est
alloué, et est restitué lors de sa fermeture.
L'ensemble des tailles des caches peut être modifié (augmentée ou diminuée) grâce aux
paramètres du fichier d'initialisation (initSID.ora).
9. Présentation du dictionnaire de données Oracle
Le dictionnaire de données Oracle représente le cœur de la base de données. Il s'agit d'un
ensemble de tables systèmes contenant les informations relatives à la structure de la base de
données :

• Utilisateurs de la base (ainsi que leurs privilèges et leur rôle)


• Noms et caractéristiques des objets contenus dans la base (tables, vues, index, clusters,
triggers, packages, ...)
• Contraintes d'intégrité
• Ressources physiques allouées à la base
• ...

Le dictionnaire est créé au moment de la création de la base et est mis à jour. Il appartient à
l'utilisateur SYS, mais l'utilisateur SYSTEM, c'est-à-dire l'administrateur de la base, possède
des droits de lecture sur des vues du dictionnaire.
Le dictionnaire de données sert principalement dans deux situations :
• afin de vérifier la syntaxe et les privilèges sur une requête SQL
• afin d'obtenir des informations sur la structure de la base de données
De nombreuses vues permettent à des utilisateurs d'accéder à certaines parties du dictionnaire
de données. Les vues fournissent à l'administrateur de la base le meilleur moyen pour obtenir
les caractéristiques techniques de celle-ci.
Les vues du dictionnaire de données sont classées par famille et nommées en fonction de
l'appartenance à une de ces familles. Voici la liste de ces familles de vues :

• Les vues USER (dont le nom commence par USER_) donnent des informations sur
tous les objets logiques dont l'utilisateur connecté est propriétaire (tables, index, vues,
procédures, ...)
• Les vues ALL (dont le nom commence par ALL_) fournissent des informations sur les
objets pour lesquels l'utilisateur a un droit d'accès, c'est-à-dire les objets de la base
créés par l'utilisateur ainsi que tous les objets accessibles par cet utilisateur.

Cours Ingénierie des BD -Omar MAZHOUD- ISIGK -2021/2022 7


• Les vues DBA (dont le nom commence par DBA_). Ces vues sont réservées à
l'administrateur de la base (DBA, DataBase Administrator) afin de lui fournir des
informations sensibles sur tous les objets de la base de données.
• Les vues V$ (dont le nom commence par V$_) sont des vues dynamiques permettant
d'avoir des informations sur l'état courant de l'instance de la base de données de son
démarrage à son arrêt. Elles permettent par exemple de connaître les fichiers
physiques actuellement utilisés par la base (logs, rollback segments, ...).

10. L’environnement SQL* Plus


SQL* Plus est une interface interactive en mode caractère qui permet de manipuler la base de
données au moyen de commandes simples se basant sur le langage SQL. L’outil SQL*Plus
permet de réaliser les fonctions suivantes :
- Entrer, éditer, sauvegarder et exécuter des commandes SQL et des blocs PL/SQL.
- Sauvegarder, effectuer des calculs et mettre en forme le résultat des requêtes.
- Lister les définitions des colonnes de chaque table.
- Exécuter des requêtes interactives.
SQL*Plus est considéré comme une sorte de générateur interactif de rapports. Il utilise SQL
pour extraire les données de la base ORACLE et permet de créer des rapports incluant des
titres, des sous-totaux et des totaux, des nombres et du texte formaté selon vos indications.
Malheureusement, lorsque vous quittez cet outil, il ne conserve aucune des instructions que
vous lui avez donné. Si vous deviez l’employer uniquement de façon interactive, vous auriez
à recréer un rapport chaque fois que vous en auriez besoin.
La solution est simple. Il suffit de saisir les commandes dans un fichier. SQL*Plus peut
ensuite lire le fichier comme s’il s’agissait d’un script, et exécuter vos commandes comme si
vous les saisissiez. Pour créer ce fichier vous pouvez utiliser n’importe quel éditeur
disponible. Vous pouvez en plus travailler avec l’éditeur et SQL*Plus en parallèle.
SQL*Plus est un outil livré avec toutes les versions d’Oracle. Il a l’avantage d’exister sur
toutes les plates-formes où Oracle est porté. Il présente l’inconvénient d’une ergonomie en
mode caractère qui peut faire préférer certains usages des outils graphiques parfois moins
performants mais plus agréables d’utilisation. Cependant, l’outil en mode caractère est
indispensable à l’automatisation d’exécution des fichiers scripts de commande pour
l’administration du serveur Oracle.
Les caractéristiques des interactions entre SQL*Plus et son environnement sont :
- Lors du lancement de SQL*Plus, un nom d’utilisateur, son mot de passe et la base de
données cible vous sont demandés ;
- Lors de la connexion à la base oracle, le fichier glogin.sql est exécuté. Ce fichier, situé
dans le répertoire «ORACLE_HOME\SQLPLUS\ADMIN» sur la machine qui
héberge SQL*PLUS, peut contenir toutes sortes d’ordres SQL et SQL*Plus.
- Par défaut, l’invite d’une session SQL*Plus est SQL> ;
10.1 Principales commandes SQL* Plus
- HOST : A partir de la session SQL*Plus, vous pouvez lancer les commandes système par la
commande HOST. Celle-ci ne termine pas votre session SQL*Plus qui peut être bloquée ou,
au choix, active en attendant la fin de l’exécution de la commande système;
- DISCONNECT : Vous pouvez vous déconnecter de la base Oracle cible tout en restant
dans SQL*Plus au moyen de la commande DISC[ONNECT]; Après cette instruction
l’utilisateur ne peut plus exécuter de commandes SQL ou PL/SQL.
- CONNECT : Pour se connecter à un autre compte Oracle ou à une base de données, utilisez
la commande CONN[ECT] « nom » [/ « mot de passe »][@ «chaîne de connexion »]. Si le
mot de passe n’est pas fourni, Oracle effectue une demande de saisie.

Cours Ingénierie des BD -Omar MAZHOUD- ISIGK -2021/2022 8


- EXIT ou QUIT : Pour se déconnecter et terminer une session SQL*Plus, utilisez EXIT ou
QUIT. Cette instruction permet de communiquer au système d’exploitation un code de retour
sur l’exécution de la session. Cette instruction valide la transaction par défaut (COMMIT).
{EXIT|QUIT} [SUCCESS|FAILURE|WARNING] [COMMIT|ROLLBACK]
- RUN : La commande R[UN] ou / affiche le contenu du tampon mémoire et exécute
l’instruction stockée dans le tampon mémoire.
- START : START ou @ Indique à SQL*Plus d’exécuter les instructions enregistrées dans
un fichier.
STA[RT] fichier[.ext] [arg …]. L’extension .SQL est facultative
- EDIT : La commande ED[IT] est utilisée pour ouvrir un fichier de nom fichier.sql sous
l’éditeur associé.
ED[IT] fichier[.ext]
- DEFINE_EDITOR : Indique à SQL*Plus le nom de l’éditeur de votre choix.
DEFINE_EDITOR = nom_editeur
- SAVE : La commande SAVE mémorise le contenu du tampon dans un fichier. L’extension
.SQL est ajoutée automatiquement au nom du fichier.
SAV[E] fichier[.ext] [CREATE|REPLACE|APPEND]
- GET : La commande GET est utilisée pour faire l’opération inverse, c’est-à-dire copier le
contenu d’un fichier dans le tampon.
GET fichier[.ext] [LIST | NOLIST]
Le contenu du fichier est alors copié dans le tampon et affiché à l’écran, mais il n’est pas
exécuté. L’exécution du contenu du tampon se fait par la commande RUN.
- SPOOL : La commande SPOOL est utilisée pour stocker le résultat d’une requête dans un
fichier (pour l’impression). Par défaut le résultat d’une requête est affiché à l’écran et il ne
reste aucune trace de ce résultat. La commande SPOOL suivie par le nom du fichier récepteur
mémorise ce résultat.
SPO[OL] fichier[.ext] [OFF|OUT]
A partir du moment où cette commande est exécutée, tout ce qui apparaît à l’écran est
mémorisé dans le fichier jusqu’à l’exécution d’une autre commande SPOOL avec l’option
OFF ou OUT. L’option OUT permet d’imprimer le contenu du fichier.
- DESCRIBE : La commande DESCRIBE est utilisée pour obtenir la structure d’une table
ou d’une vue.
DESC[RIBE] {[schema.]object [@connect_identifier]}
[@connect_identifier] indique un lien de base de données distante.
Cette instruction peut être utilisée avec d’autres objets :
DESC[RIBE] nom_table | nom_vue | nom_procedure | nom_fonction | nom_package |
nom_type_objet
- REM[ARK] : Indique à SQL*Plus que les mots qui suivent doivent être traités comme étant
un commentaire.
-- Marque le début d’un commentaire en ligne dans une entrée SQL. Traite tout ce qui suit
cette marque jusqu’à la fin comme étant un commentaire. Analogue à REMARK.
/* … */ Marque le début et la fin d’un commentaire dans une entrée SQL.
- SHOW USER : La commande SHO[W] USER affiche l’utilisateur connecté.
SQL> SHOW User
USER est "SYSTEM"
- LINESIZE : La commande SET LINESIZE définit le nombre maximal de caractères
autorisés dans chaque ligne. SET LINESIZE VALEUR
- PAGESIZE : La commande SET PAGESIZE définit le nombre maximal de lignes dans
chaque page, le calcul est effectué en tenant compte des lignes d’entête et bas de page. SET
PAGESIZE VALEUR
- TERMOUT : Lorsqu’une instruction SQL retourne de nombreuses lignes de données, il
peut être utile de désactiver leur affichage à l’écran. Pour cela, utilisez la commande SET
TERMOUT OFF.

Cours Ingénierie des BD -Omar MAZHOUD- ISIGK -2021/2022 9


A l’issue de l’instruction, n’oubliez pas de rétablir l’affichage des résultats au moyen de la
commande SET TERMOUT ON. SET TERMOUT {ON | OFF}
- HEADING : Désactive ou active l’affichage des entêtes de colonnes, ce qui peut être utile
lors de la création d’un fichier de données. SET HEADING {ON | OFF}
- TRIMSPOOL : Supprime ou non les blancs situés à la fin des lignes envoyées vers un
fichier.
SET TRIMSPOOL {ON | OFF}
- FEEDBACK : Affiche ou non le nombre de lignes extraites.
SET FEEDBACK {ON | OFF}
- ECHO : Affiche ou non l’instruction lorsqu’elle est exécutée.
SET ECHO {ON | OFF}
- SET HEADSEP : Identifie le caractère unique qui indique à SQL*Plus de répartir un titre
sur 2 lignes ou plus.
- TTITLE : Définit le titre en haut de chaque page
- BTITLE : Définit le titre en bas de chaque page
- COLUMN : Fournit à SQL*Plus différentes instructions relatives au titre, à la mise en
forme et au traitement d’une colonne.
- BREAK ON : Indique à SQL*Plus où introduire des espaces entre les sections d’un rapport
ou une séparation avant les sous-totaux et totaux.
- COMPUTE SUM : Indique à SQL*Plus de calculer les sous-totaux.
- NEWPAGE : La commande SET NEWPAGE définit le nombre maximal de lignes vierges
entre les pages.
SET NEWPAGE VALEUR
10.2 Exemple de génération de script :
Vous pouvez travailler interactivement avec SQL*Plus, pour créer automatiquement des
scripts SQL avec les données issues de la base de données. Dans l’exemple suivant, on va
octroyer des privilèges de lecture sur l’ensemble des tables du schéma courant à l’utilisateur
user.
La première étape consiste à créer ordre SQL qui recherche l’information et qui formate
cette information suivant le besoin. Dans notre exemple, on va lister le contenu des différentes
tables :
SQL> select 'select * from ' || table_name || ';' "Contenu de ma
base" from user_tables where table_name like '%JOB’;

Contenu de ma base
---------------------------------------------
select * from DEPTJOB;
select * from SALGRADEJOB;
select * from EMPJOB;

La deuxième étape exécutera ce script et stockera le résultat dans un nouveau script.


SQL> SPOOL C:\Contenu.SQL
SQL> select 'select * from ' || table_name || ';' "Contenu de
ma base" from user_tables where table_name like '%JOB’;
SQL> SPOOL OFF
SQL> GET C:\Contenu.SQL

La troisième étape exécutera le script créé (qui se trouve dans le tampon).


SQL> /

Cours Ingénierie des BD -Omar MAZHOUD- ISIGK -2021/2022 10

Vous aimerez peut-être aussi