Vous êtes sur la page 1sur 6

Oracle :

Initiation à SQL*PLUS

Table des matières


1 Documentation en ligne ...................................................................................................................................................... 1
2 Lancement d'une session SQL*Plus ................................................................................................................................... 1
3 Ecriture et exécution de commandes SQL et SQL*Plus ..................................................................................................... 2
3.1 Différence d'écriture entre commandes SQL et SQL*Plus......................................................................................... 2
3.2 Saisie de commande avec le mini-éditeur .................................................................................................................. 2
3.3 Sauvegarde et rappel de commande dans le mini-éditeur .......................................................................................... 3
3.4 Création d'un fichier de commandes avec un éditeur externe .................................................................................... 3
3.5 Exécution de fichiers de commandes avec RUN / START @................................................................................... 3
3.6 Commentaires sous Oracle ........................................................................................................................................ 3
3.7 Paramétrage des commandes et substitution de valeurs ............................................................................................ 3
4 Consultation de l'aide en ligne : HELP ............................................................................................................................... 4
5 Description des structures : DESCRIBE............................................................................................................................. 4
6 Appeler un commande système (avec HOST ou !)............................................................................................................. 4
7 La table Dual ...................................................................................................................................................................... 5
8 Mise en forme des sorties ................................................................................................................................................... 5
8.1 Modification de l'environnement d'exécution ............................................................................................................. 5
8.2 Mise en forme d'en-tête/pied de page, de colonne (ttitle, btitle, column) ................................................................... 5
9 Redirection des sorties (spool) ............................................................................................................................................ 6
10 Sortir de la session SQL*Plus ............................................................................................................................................. 6
11 Annexes .............................................................................................................................................................................. 6

1 Documentation en ligne

La documentation Oracle est accessible en ligne à l'adresse :


https://docs.oracle.com/en/database/
ou selon les versions :
http://docs.oracle.com/cd/E11882_01/
http://www.oracle.com/pls/db102/homepage
Parmi les documents les plus utiles, vous trouverez Concepts et SQL Reference.

2 Lancement d'une session SQL*Plus


- Créez préalablement un répertoire dans votre dossier personnel pour stocker les scripts et fichiers des TP oracle (par
exemple TP_oracle). Choisissez ce répertoire comme répertoire courant.
Dans la fenêtre du terminal, on peut lancer SQL*Plus par la commande :
sqlplus user_oracle/password_oracle@base_oracle
ou
sqlplus user_oracle@base_oracle
Ne pas oublier les 0 avant !
puis tapez le password à la demande… Ex: 051
mais pour bénéficier de l'historique de commande, vous allez taper :
rlwrap sqlplus user_oracle/password_oracle@base_oracle

Variables à remplacer :
<user_oracle> = ue<nom_de_votre_formation>_i, (avec i = 001, 002, 003, …, n)
<nom_de_votre_formation> = bda | ist | sig | imis | bdro
<password_oracle> = ora
<base_oracle> = etud
- SQL*Plus est un outil de commande en ligne qui permet de lancer des commandes SQL, SQL*Plus ou des blocs
PL/SQL.
Le prompt (invite) SQL apparait sous la forme :
SQL>
- La commande exit permettra de sortir de la session SQL*Plus en fin de travail.

G. Salzano, P. Chochois, F. Petit 26 janvier 2016 1


3 Ecriture et exécution de commandes SQL et SQL*Plus
3.1 Différence d'écriture entre commandes SQL et SQL*Plus
En environnement SQL*Plus :
- une commande SQL doit se terminer obligatoirement par un point-virgule « ; ».
SELECT * FROM centre;
- une commande SQL*Plus (ex: DESC) ne nécessite pas de point-virgule, ni de caractère de fin de ligne.
DESC CENTRE
Il est conseillé d'écrire une commande sur plusieurs lignes afin d’identifier plus facilement les erreurs.
Cependant, pour poursuivre si nécessaire une commande SQL*PLUS sur plusieurs lignes, il faut saisir le signe - (moins)
suivi d'un <RC> à la fin de la ligne à étendre.
3.2 Saisie de commande avec le mini-éditeur
SQL*Plus offre un mini-éditeur de commandes SQL et SQL*Plus.
Cet éditeur indique la ligne courante par la présence du symbole * en début de ligne.
L'éditeur permet les actions suivantes (on peut utiliser la commande abrégée ou complète ):
• l list lister la dernière commande SQL du buffer, chaque ligne étant précédée de son numéro.
• ln lister la ligne n de la dernière commande SQL du buffer
n lister la ligne n de la dernière commande SQL du buffer
• c change changer l'expression1 par l'expression2 dans la ligne courante (ex: c/expression1/ expression2)
• a append ajouter du texte à la fin de la ligne courante
• i input insérer une ou plusieurs lignes de texte après la ligne courante (ligne vide pour finir)
• del supprime la ligne courante
• / exécute le contenu du buffer courant

- Récupérez le fichier tables_centres_pour_oracle.sql sur le site de l’enseignant. Il contient un script SQL permettant de
créer les 3 tables categorie, centre, centre_ext avec leurs enregistrements. Le contenu de ces tables est en annexe.
- Exécutez la commande START suivi d'un espace puis du nom du fichier (cf. § 3.5 de ce document) pour lancer ce fichier.
- Tapez et exécutez les commandes suivantes afin de manipuler l’éditeur SQL*Plus :

SQL> select *
2 from categorie;

SQL> select *
2 from centre;

SQL> select nomcentre


2 from centre;
En cas d'erreur sur une commande, le curseur se positionne dans le buffer sur la ligne contenant la première erreur détectée.
Un message indique le N° de ligne et le type d'erreur (ici un identificateur invalide en ligne 1).
Sans retaper toute la commande, on peut modifier le buffer pour changer le nom de la colonne invalide avec la commande c
de l'éditeur puis l'exécuter avec la commande / comme indiqué ci-dessous.

SQL> l1 ln permet de lister la ligne n


1* select nomcentre

SQL> c/nomcentre/nomc
1* select nomc

SQL> /
La ligne modifiée s'affiche.
NOMC
- - - - - - -
PARIS1 / permet d'exécuter le buffer
PARIS2
LYON1

BORDEAUX2
8 lignes(s) sélectionnée(s)

SQL> l2
2 * from centre

G. Salzano, P. Chochois, F. Petit 26 janvier 2016 2


SQL> a where nomc like 'LY%';
2* from centre where nomc like 'LY%'

SQL> /

NOMC
- - - - - - -
LYON1
LYON2
3.3 Sauvegarde et rappel de commande dans le mini-éditeur
Après saisie d'une commande SQL, on peut sauvegarder le contenu du buffer avec la commande save (ou s).
L'extension .sql est ajoutée automatiquement.
Le fichier sera créé dans le répertoire de connexion. Si un fichier de même nom existe déjà, un message précise l'option à
employer pour l'écraser (REPLACE).
Dans le fichier, un / sera ajouté à la fin de la commande (pour une exécution automatique par la commande START)
3.3.1 Sauvegarde de commande
A faire : Saisissez et exécutez la commande suivante puis enregistrez-la pour obtenir un fichier de nom centrePa.sql :
SQL> select n_centre, nomc
from centre
where nomc like 'PA%';

N_CENTRE NOMC
- - - - - - - -
1 PARIS1
2 PARIS2

SQL> save centrePA


Un message indique la création du fichier centrePA.sql

3.3.2 Rappel de commande


On peut rappeler le fichier avec la dans le buffer avec la commande get.
A faire : dans le buffer, changez PA en LY et enregistrez cette requête dans un nouveau fichier centreLY.sql.
Rappelez dans le buffer la commande centrePA.sql et exécutez-la.
Rappelez dans le buffer la commande centreLY.sql et exécutez-la.
3.4 Création d'un fichier de commandes avec un éditeur externe
On peut créer et sauvegarder un fichier de commandes avec un éditeur de texte externe (Emacs, gEdit…).
Dans ce cas, le nom donné par l'utilisateur au fichier de commandes doit être complet, avec le suffixe .sql.
On peut enregistrer alors plusieurs commandes à la suite dans le fichier.
3.5 Exécution de fichiers de commandes avec RUN / START @
/ : exécute le contenu du buffer courant
run : liste le contenu du buffer courant puis l'exécute (commandes SQL seulement).
start : exécute un fichier de commandes SQL et SQL*Plus.
@ : exécute un fichier de commandes SQL et SQL*Plus (équivalent de start, il peut être suivi ou non d'un espace).
3.6 Commentaires sous Oracle
Les commentaires dans un fichier SQL*Plus pour Oracle peuvent être de 2 formes :
1) Avec tiret double (commentaire sur 1 seule ligne, fermeture implicite en fin de ligne)
Exemple :
-- tapez ici la ligne de commentaire
-- tapez éventuellement une autre ligne de commentaire
2) Avec /* */ (commentaire qui peut être sur une ou plusieurs lignes)
/* tapez ici le commentaire et prendre fin avec les symboles étoile slash */
Testez une commande SQL de votre choix en lui mettant un commentaire.
3.7 Paramétrage des commandes et substitution de valeurs
Les commandes peuvent être paramétrées et les valeurs des variables substituées à l'exécution. La substitution peut porter sur
plusieurs paramètres. Ces commandes paramétrées peuvent être sauvegardées, comme toutes les autres commandes SQL.

G. Salzano, P. Chochois, F. Petit 26 janvier 2016 3


Tapez la commande :
SQL> select distinct nomc from &table ;
Enter value for table :
Saisissez la valeur centre pour cette variable.
Le système Oracle indique :
ancien 1 : select distinct nomc from &table
nouveau 1 : select distinct nomc from centre
et affiche le résultat :
NOMC
- - - - - - - - - -
PARIS1
PARIS2
LYON1

A faire : Recommencez pour afficher la requête pour la table centre_ext.


NOMC
- - - - - - - - - -
NEWYORK2
LONDRES

ROME
TOKYO
6 ligne(s) sélectionnée(s)

Tapez la commande :
SQL> select nomc from centre
2 where ca > &ca and benef > &benef ;
Enter value for ca : 200
Enter value for benef : 1

NOMC
- - - - - - - - - -
PARIS1
LYON1

4 Consultation de l'aide en ligne : HELP


La commande HELP permet d'avoir une aide en ligne sur la syntaxe et l'usage des commandes SQL, SQL*Plus, et sur les
blocs PL*SQL.

Tapez la commande suivante et validez :


SQL> help desc

5 Description des structures : DESCRIBE


On utilise cette commande DESCRIBE ou son raccourci DESC pour connaître la définition de différents objets (tables, vues,
synonymes ...).
Tapez la commande suivante et validez :
SQL> describe centre
centre est une table

Nom Null ? Type


N_CENTRE NOT NULL NUMBER (4)
NOMC VARCHAR2 (12)

Tapez la commande suivante et validez : nb_centres est une vue


SQL> describe nb_centres_par_cat

6 Appeler un commande système (avec HOST ou !)


Dans une session SQL*Plus, on peut appeler une commande système en la faisant précédé de HOST ou de !

G. Salzano, P. Chochois, F. Petit 26 janvier 2016 4


Tapez la commande suivante et validez :
SQL > HOST date
Tapez la commande suivante et validez :
SQL > !date
Tapez la commande suivante et validez :
SQL > HOST ls –l

7 La table Dual
La table DUAL est une table spéciale présente par défaut dans les installations d'oracle. Elle est utilisée comme "pseudo-
colonne" pour les requêtes de type SYSDATE ou USER. Elle contient une seule colonne de type VARCHAR(1) appelée
DUMMY qui a pour unique valeur 'X'.
Testez les commandes suivantes :
SQL> select user from dual;
SQL> select sysdate from dual;
SQL> select to_char(sysdate,'MM-DD-YYYY hh24:MI;SS' As "date" from dual;
SQL> select * from dual;

8 Mise en forme des sorties


8.1 Modification de l'environnement d'exécution
L'environnement d'exécution interactif peut être modifié, avec la commande set qui permet de valoriser des variables dites
"système". Par exemple :
SQL> set pause on produit une pause dans le déroulement de l'écran, lors des outputs.
on rentre un <RC>, pour reprendre le déroulement.
SQL> set pagesize 21 positionne un saut de page (écran) toutes les 21 lignes.
SQL> set linesize 72 définit des lignes d'écran de 72 caractères.
SQL> set timing on produit l'affichage de statistiques à chaque commande SQL.
SQL> show pagesize show visualise la valeur d'une variable système Oracle (ici pagesize).
8.2 Mise en forme d'en-tête/pied de page, de colonne (ttitle, btitle, column)
Pour rendre plus lisibles les sorties, on peut intervenir sur les titres et le format des colonnes.
column spécifie les attributs d'output des colonnes, tels que : texte pour le titre des colonnes, alignement du titre, format pour
les données (numériques, dates...)
ttitle (top title) et btitle (bottom title) définissent des titres pour le haut et le bas de chaque page d'un rapport, résultat d'une
commande select. La commande peut être suivi d'une option d'alignement et est suivi du texte souhaité pour le titre.
Date et numéro de page s'affichent avec le titre du haut.
ttitle off et btitle off annulent les titres courants.
Tapez cet exemple de séquence :
SQL> ttitle CENTER 'Centres en France'
SQL> btitle CENTER 'UPEM'
SQL> column n_centre heading CENTRE
SQL> column nomc format A10 heading NOM
SQL> column ca format L099
SQL> column n_cat heading SPECIALISATION
SQL> column dateouv heading OUVERTURE
SQL> column benef heading BENEFICE format 0.99
SQL> column n_siege heading SIEGE
SQL> select * from centre ;

Cette séquence de commandes doit produire un affichage tel que celui-ci :


Centres en France
CENTRE NOM CA SPECIALISATION BENEFICE OUVERTURE SIEGE
1 PARIS1 500 1 1.20 01-01-2010 1
2 PARIS2 100 2 1.00 01-01-2011 1
3 LYON1 250 1 1.10 01-05-2010 1
4 LYON2 120 3 0.20 01-12-2011 2
5 LILLE1 200 2 0.30 01-04-2010 1
6 MARSEILLE1 430 4 0.10 01-01-2012 1
7 BORDEAUX1 90 2 0.60 02-02-2011 1
8 BORDEAUX2 01-01-2014 7
UPEM

G. Salzano, P. Chochois, F. Petit 26 janvier 2016 5


9 Redirection des sorties (spool)
On peut recueillir dans un fichier du système opérant hôte toutes les informations qui s'affichent à l'écran (commandes
saisies, résultats, réponses du système, messages d'erreurs) grâce à la commande spool. Ce fichier pourra être ensuite
consulté, modifié, imprimé, supprimé. Le spool s'arrête avec la commande spool off.

SQL> spool fichier1 crée le fichier fichier1.lst dans le répertoire courant


SQL> select * from centre ;
...
SQL> spool off

Le fichier de spool devenant rapidement volumineux, n'oubliez pas de fermer le spool une fois le recueil terminé avec la
commande Spool off. Cependant, le spool s'arrête automatiquement avec la commande exit.
Il est fortement recommandé aussi de consulter et nettoyer si besoin ce fichier avant de l'imprimer.

Exercice de redirection des sorties :

Dans un fichier de spool nommé par votre nom suivi de l'extension .lst :
1. Paramétrez pour que les pages comportent 100 caractères de large et 40 lignes de haut.
2. En haut de page, indiquez « TP Oracle »
3. En bas de page, indiquez votre nom et votre prénom.
4. Affichez la structure de la table USER_OBJECTS.
5. Listez pour les objets, leur nom et leur date de création en prenant soin d’afficher les en-têtes de colonnes en langue
française. Le nommage des colonnes doit se faire à l’aide de commandes SQL*Plus.
6. Listez ensuite le contenu de la table CENTRE par ordre de nom de centre en affichant le bénéfice et le CA avec 2
décimales.

10 Sortir de la session SQL*Plus


La commande exit permet de sortir de la session SQL*Plus.

11 Annexes
Table categorie
N_CAT NOM_CAT
1 QUINCAILLERIE
2 BOIS
3 PEINTURE
4 JARDINAGE
Table centre
N_CENTRE NOMC CA N_CAT BENEF DATEOUV N_SIEGE
1 PARIS1 500 1 1.2 01-01-2010 1
2 PARIS2 100 2 1.0 01-01-2011 1
3 LYON1 250 1 1.1 01-05-2010 1
4 LYON2 120 3 .2 01-12-2011 2
5 LILLE1 200 2 .3 01-04-2010 1
6 MARSEILLE1 430 4 .1 01-01-2012 1
7 BORDEAUX1 90 2 .6 02-02-2011 1
8 BORDEAUX2 01-01-2014 7
Table centre_ext

N_CENTRE NOMC CA N_CAT BENEF DATEOUV N_SIEGE


11 ROME 500 1 .2 01-12-2013 1
12 LONDRES 100 2 .5 01-01-2014 1
13 TOKYO 250 1 .2 01-05-2013 1
14 NEWYORK1 120 3 .1 30-01-2014 3
15 NEWYORK2 200 2 .3 01-04-2013 1
16 BARCELONE 430 6 .1 28-01-2014 1

G. Salzano, P. Chochois, F. Petit 26 janvier 2016 6

Vous aimerez peut-être aussi