Vous êtes sur la page 1sur 8

Utilitaire SQL*PLUS

Table des matires


1 Mise en forme des SELECT

2 Commandes utilitaires de SQL*PLUS

2.1

diteur de la machine hte . . . . . . . . . . . . . . . . . . . .

2.2

Commande RUN, commande /

. . . . . . . . . . . . . . . . .

2.3

Commande HOST

. . . . . . . . . . . . . . . . . . . . . . . .

2.4

Sauvegarde de la session de travail

. . . . . . . . . . . . . . .

3 Aide
3.1

Fichiers de commandes SQL . . . . . . . . . . . . . . . . . . .

3.1.1

Sauvegarde du contenu du buer dans un chier . . . .

3.2

Lecture dans le buer d'un chier de commandes

. . . . . . .

3.3

Fichier login.sql . . . . . . . . . . . . . . . . . . . . . . . . . .

3.4

Commandes START et @

. . . . . . . . . . . . . . . . . . . .

4 diteur SQL*PLUS
4.1

Buer de commande

. . . . . . . . . . . . . . . . . . . . . . .

4.1.1

Commande LIST

4.1.2

Commande CHANGE

. . . . . . . . . . . . . . . . . . . . .

4
5

. . . . . . . . . . . . . . . . . .

4.2

Commande APPEND . . . . . . . . . . . . . . . . . . . . . . .

4.3

Commande INPUT . . . . . . . . . . . . . . . . . . . . . . . .

4.4

Commande DEL

. . . . . . . . . . . . . . . . . . . . . . . . .

Mise en forme des SELECT


SQL*PLUS possde de nombreuses commandes pour mettre en forme les

sorties cran des SELECT. En particulier, des commandes puissantes permettent d'obtenir des totaux et des sous-totaux sur les colonnes numriques.
Ces commandes sortent du cadre de ce cours. Nous verrons seulement la commande COLUMN qui est bien utile pour donner la largeur des colonnes des
SELECT pour qu'elles ne soient pas trop larges.
Largeur de 12 caractres pour la colonne NOME :

COLUMN NOME FORMAT A12

Commandes utilitaires de SQL*PLUS

2.1 diteur de la machine hte


La commande ED appelle un diteur de texte externe Oracle en lui
passant le contenu du buer SQL.
Il est possible de spcier un autre diteur que l'diteur standard du
systme d'exploitation (ed pour Unix) ; pour travailler avec l'diteur emacs,
on peut taper :

DEF _editor = emacsclient

emacs

Si on travaille avec emacs, il faut utiliser le mode client-serveur d'


sinon on lance un nouvel

emacs

chaque appel de ED.

2.2 Commande RUN, commande /


La commande RUN (abrviation : R) liste la commande contenue dans
le buer SQL et en lance l'excution.
La commande / lance l'excution de la commande dans le buer SQL
sans la lister.

2.3 Commande HOST


HOST commande
(abrviation  ! commande )

permet d'excuter la

commande

du systme

d'exploitation tout en restant l'intrieur de SQLPLUS.

Exemple 2.1

HOST ls -l

(ou

!ls -l)

va faire s'acher sur votre cran les chiers existants dans votre rpertoire courant.
On peut taper HOST sans rien prciser la suite pour appeler un shell
que l'on peut quitter en tapant exit pour se retrouver sous SQLPLUS.

2.4 Sauvegarde de la session de travail


SPOOL fichier
enregistre dans le

chier (chier.lst

si

chier

n'a pas d'extension .) les

commandes tapes ensuite par l'utilisateur, et les rponses d'Oracle.

SPOOL OFF

arrte cette sauvegarde.

Aide

HELP commande-SQL
est une commande SQL*PLUS qui ache de l'aide sur

commande-SQL.

Pour faire acher de l'aide sur un des modules fournis par Oracle, on
peut aussi lancer la commande
sous le rpertoire

orainst.

oradocm

place dans le rpertoire d'Oracle

Une grande partie de la documentation d'Oracle

est disponible sous forme de documents hypertextes (double clic rapide pour
suivre un lien).

3.1 Fichiers de commandes SQL


Il est possible de constituer des chiers contenant des ordres SQL.

3.1.1 Sauvegarde du contenu du buer dans un chier


SAVE fichier [APPEND]
sauvegarde le buer dans

chier,

en le crant s'il n'existe pas encore, ou en

crasant son contenu dans le cas contraire. Le contenu du buer est ajout
en n de chier si l'option APPEND est prcise.
L'extension  .SQL est ajoute par dfaut au nom du chier. Un ordre
/ est automatiquement ajout la n de chaque ordre (pour tre excuts
automatiquement par la commande START tudie en 3.4).

3.2 Lecture dans le buer d'un chier de commandes


GET fichier
lit le contenu de

chier, et l'injecte dans le buer SQL que l'on peut ensuite


chier, il est excut.

modier ou/et excuter. S'il y a un / nal dans

3.3 Fichier login.sql


S'il existe un chier nomm  login.sql dans le rpertoire courant lorsque
l'utilisateur tape la commande 

sqlplus , ce chier (qui doit contenir des com-

mandes SQL ou SQLPLUS) est excut automatiquement l'entre dans


SQLPLUS.
Exemple de contenu de chier

set
set
set
def

login.sql

pagesize 22
pause on
pause "Taper <Return> pour la suite"
_editor = emacs

3.4 Commandes START et @


START fichier [arguments... ]
lance l'excution des commandes de

chier. Tout se passe comme si les com-

mandes du chier taient tapes au clavier. Les arguments remplacent les


 &1,

&2,...

contenus dans le texte de

Les ordres SQL contenus dans


ment. Il faut que

chier

chier

chier.

ne sont pas excuts automatique-

contienne l'ordre explicite d'excuter la commande

SQL, soit en la terminant par un point-virgule, soit en la faisant suivre d'un


/ ou d'un RUN sur la ligne suivante.
La commande  @ est semblable START.

diteur SQL*PLUS
Cet diteur est trs rudimentaire et on ne l'utilise en gnral que pour des

petites modications trs simples. Sinon, il vaut mieux utiliser la commande


ed de SQL*PLUS tudie en 2.1.

4.1 Buer de commande


SQLPLUS traite diremment les ordres qui lui sont propres et ceux qui
appartiennent au langage SQL :
 les commandes SQL sont mmorises dans un tampon. Elles ne sont
excutes que si la commande est termine par un point virgule,
 les commandes non SQL ajoutes par SQLPLUS sont excutes ds
que l'on a frapp la touche RETURN.
Pour laisser la commande SQL dans le buer et revenir au prompt

SQL>

sans excuter la commande, il sut de laisser la dernire ligne blanche. En


eet, tant qu'on n'a pas termin sa commande par un point virgule ou une
ligne vierge, SQLPLUS demande des lignes supplmentaires (et le prompt
est alors remplac par le numro de ligne). Par exemple,

SQL> SELECT *
2 FROM DEPT
3 ;
Cette mise en buer des commandes SQL permet de rappeler la dernire
commande pour l'excuter nouveau, l'diter ou la sauvegarder dans un
chier (voir commande RUN en 2.2).

SQL> SELECT *
2 FROM DEPT

3
SQL> RUN
1 SELECT *
2* FROM DEPT
DEPT
------10
20
30
40

NOMD
--------------FINANCES
RECHERCHES
VENTES
FABRICATION

LIEU
-------------PARIS
GRENOBLE
LYON
ROUEN

Il n'existe qu'un seul buer de commande SQL. Chaque nouvel ordre SQL
eace le prcdent.
Les ordres SQLPLUS n'appartenant pas SQL n'eacent pas le buer
puisqu'ils n'y sont pas mmoriss.

4.1.1 Commande LIST


La commande LIST (abrviation : L) permet d'acher le contenu du
buer. Chaque ligne est prcde de son numro. La dernire est prcde
de  * : c'est la

ligne courante.

La ligne courante est la ligne sur laquelle

les autres commandes de l'diteur SQLPLUS agiront. La commande LIST


ramne toujours la ligne courante la dernire ligne du buer.
Exemple :

SQL> LIST
1 SELECT NOMD
2* FROM DEPT
SQL>
Il est possible de faire suivre d'un nombre le mot cl LIST. SQLPLUS
ache alors uniquement la ligne du buer qui correspond ce numro, c'est
alors elle qui devient le ligne courante.
Exemple :

SQL> L2
2* FROM DEPT

4.1.2 Commande CHANGE


La commande CHANGE (abrviation : C) permet de remplacer une
chane de caractres par une autre dans la ligne courante.

C/chane1 /chane2 /
remplace la 1re occurrence de

chane1

par

chane2

dans la ligne courante.

Exemple :

SQL>
1*
SQL>
1*

L1
SELECT *
C/*/LIEU/
SELECT LIEU

Remarque : le sparateur / peut tre remplac par n'importe quel caractre ne gurant ni dans chane1 ni dans chane2 (si c'est une lettre, il faut
un espace entre le CHANG et le premier sparateur).
Exemple :

SQL>
1*
SQL>
1*

L1
SELECT LIEU
C,LIEU,*,
SELECT *

Si la deuxime chane est vide ou absente, la premire chane est supprime :

SQL>
1*
SQL>
1*

L*
SELECT *
C:E::
SLECT *

Le dernier sparateur n'est pas ncessaire, sauf si la chane de caractres


se termine par des blancs.
Exemple :

SQL>
1*
SQL>
1*

L*
SLECT *
C:SL:SEL
SELECT *

4.2 Commande APPEND


La commande APPEND (abrviation : A) permet d'ajouter du texte en
n de la ligne courante.

A texte

Exemple :

SQL>
1*
SQL>
1*

L*
SELECT LIEU
A , DEPT
SELECT LIEU, DEPT

L'espace entre la commande et le texte est facultatif si le texte ne commence pas par une lettre. Il n'est pas considr comme faisant partie du
texte.
Exemple :

SQL>
1*
SQL>
1*

L*
SELECT LIEU, DEPT
A,
SELECT LIEU, DEPT,

Par contre, un deuxime espace sera considr comme faisant partie du


texte et sera insr dans la ligne courante.
Exemple :

SQL>
1*
SQL>
1*

L*
SELECT LIEU, DEPT,
A NOMD
SELECT LIEU, DEPT, NOMD

4.3 Commande INPUT


La commande INPUT (abrviation : I) permet d'insrer une ou plusieurs
lignes aprs la ligne courante.
Le numro de la premire ligne insre s'ache. Il est alors possible de
saisir plusieurs lignes. L'insertion se termine par la saisie d'une ligne vide.
Exemple :

SQL> L*
1* SELECT DEPT,
SQL> I
2i NOMD,
3i LIEU
4i
SQL> L
1 SELECT DEPT,
2 NOMD,
3 LIEU
4* FROM DEPT

On peut saisir le texte de la ligne insrer directement derrire la commande I (aprs un espace si le texte commence par une lettre). L'insertion
se termine la n de la ligne.
Exemple :

SQL> L3
3* LIEU
SQL> I EMPLACEMENT
SQL> L
1 SELECT DEPT,
2 NOMD,
3 LIEU
4 EMPLACEMENT
5* FROM DEPT

4.4 Commande DEL


La commande DEL supprime la ligne courante.
La nouvelle ligne courante est la ligne suivant la ligne supprime (ou la
ligne prcdente si la ligne supprime tait la dernire).
Exemple :

SQL>
2*
SQL>
SQL>
SQL>
SQL>
1
2*

L2
NOMD,
DEL
DEL
DEL
L
SELECT DEPT,
FROM DEPT