Vous êtes sur la page 1sur 20

La FAQ SQL*Plus

Date de publication : 11 juin 2009


Dernire mise jour : 4 dcembre 2009
Cette F.A.Q. a t ralise partir des connaissances de membres de
Developpez.com en vue de rpondre des questions frquemment poses
par les utilisateurs.
Elle traite exclusivement des questions relatives SQL*Plus.
Nous esprons que cette F.A.Q. saura rpondre un maximum de vos
questions. Nous vous souhaitons une bonne lecture.
L'quipe de Developpez.com.
Ont contribu cette FAQ :
jsd03 - orafrance - umarus - Vincent Rogier -
Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
La FAQ SQL*Plus
- 3 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation
constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC.
Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://oracle.developpez.com/faq/faq-sqlplus/
1. Environnement de travail (15) ................................................................................................................................4
2. Excution de requtes (10) ..................................................................................................................................11
3. Les rapports SQL (7) ........................................................................................................................................... 15
La FAQ SQL*Plus
- 4 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation
constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC.
Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://oracle.developpez.com/faq/faq-sqlplus/
Sommaire > Environnement de travail
Quelles sont les variables d'environnement ncessaires pour lancer SQL*Plus ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Les variables suivantes sont ncessaires :
ORACLE_HOME : chemin vers l'installation Oracle
PATH : chemin vers les binaires d'Oracle
ORACLE_SID : nom de l'instance qui sera utilise par SQL*Plus (cette variable n'est pas obligatoire
car on peut spcifier se paramtre dans la chaine de connexion)
D'o par exemple le rsultat suivant (pour un serveur Unix) :
$ORACLE_HOME : /oracle01/11gR1
$PATH : $PATH:/oracle01/11gR1/bin
$ORACLE_SID : orcl (cette variable n'est pas obligatoire car on peut spcifier se paramtre dans la
chaine de connexion)
Pour dfinir ces variables simplement, lancez une invite de commande et tapez les commandes suivantes
Pour un serveur Unix :
export ORACLE_HOME=/oracle01/11gR1
export ORACLE_SID=orcl
export PATH=$PATH:/oracle01/11gR1/bin
Pour un serveur Windows :
set %ORACLE_HOME%=c:\oracle01\11gR1
set %ORACLE_SID%=orcl
set %PATH%=%PATH%;C:\oracle01\11gR1\bin
L'initialisation de la variable $PATH sous Unix ou %path% sous Windows vous permettra d'accder
directement SQL*Plus sans aller dans le dossier des binaires d'Oracle
Comment se connecter SQL*Plus ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Allez dans le dossier $ORACLE_HOME/bin ou vrifiez que ce rpertoire fait partie de votre PATH (dans ce
cas vous pourrez utiliser directement la commande sqlplus).
Ici se trouve l'excutable sqlplus. Vous pouvez lancer directement sqlplus, on vous demandera un login et
mot de passe pour vous connecter votre base. Par contre cette mthode ne vous permettra pas de vous
connecter une autre base que celle par dfaut ou avec un compte de type SYSDBA ou SYSOPER.
C'est pour cela qu'il convient de spcifier des paramtres de connexion.
Voici la syntaxe pour ce connecter SQL*Plus :
sqlplus (utilisateur[/mot_de_passe][@identifiant_BDD] | /) [AS SYSDBA | AS SYSOPER] | /NOLOG
La FAQ SQL*Plus
- 5 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation
constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC.
Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://oracle.developpez.com/faq/faq-sqlplus/
Exemple pour se connecter avec l'utilisateur scott :
sqlplus scott/tiger
Exemple pour se connecter avec un compte SYSDBA
sqlplus sys/change_on_install AS SYSDBA
Pour se connecter avec le compte SYS :
sqlplus /
Vous pouvez galement taper la commande suivante et spcifier les paramtres de connexion directement
dans le prompte SQL>
sqlplus /nolog
Ensuite pour se connecter un compte on utilise la mme syntaxe que prcdemment mais avec la
commande CONNECT
SQL> connect scott/tigger
ou
SQL> connect sys/change_on_install AS SYSDBA
Toutes ces chaines de connexion vont se connecter sur le ORACLE_SID dfinit
par dfaut moins de redfinir cette variable d'environnement.
Comment rcuprer sa version de SQL*Plus ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Pour vrifier ou rcuprer sa version de SQL*Plus, tapez la commande suivante :
sqlplus -V
Comment afficher les proprits lies SQL*Plus ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Il suffit de taper la commande suivante :
SQL> define
Le rsultat sera le suivant (mais peut diffrer par rapport votre version de SQL*Plus) :
DEFINE _DATE = "30/03/09" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "XE" (CHAR)
DEFINE _USER = "HR" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
La FAQ SQL*Plus
- 6 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation
constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC.
Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://oracle.developpez.com/faq/faq-sqlplus/
DEFINE _SQLPLUS_RELEASE = "1002000100" (CHAR)
DEFINE _EDITOR = "Notepad" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production"
(CHAR)
DEFINE _O_RELEASE = "1002000100" (CHAR)
_DATE : date courante
_CONNECT_IDENTIFIER : identifiant de la base de donnes
_USER : utilisateur avec lequel vous tes connect
_PRIVILEGE : privilge utilis pour se connecter (AS SYSDBA, AS SYSOPER)
_SQLPLUS_RELEASE : numro de version
_EDITOR : diteur qui sera utilis pour modifier les requtes
_O_VERSION : nom de version de la base de donnes
_O_RELEASE : numro de version de la base de donnes
Vous pouvez videment afficher sparment toutes ces valeurs en utilisant toujours la commande define
et en spcifiant la suite, la variable afficher. Comme par exemple :
SQL> define _CONNECT_IDENTIFIER
Dans le mme ordre d'ide, pour dfinir une nouvelle valeur de variable tapez la commande
SQL> define variableName=newValue
Exemple :
SQL> define _EDITOR="c:/Notepad++/Notepad++.exe"
Certaines variables sont en lecture seule.
Comment afficher le schma et le nom de l'instance dans le prompt ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Uniquement valide partir de la version 10G d'Oracle.
Modifiez le fichier $ORACLE_HOME/sqlplus/admin/glogin.sql (sous Unix) ou %oracle_home%/sqlplus/
admin/glogin.sql (sous Windows) et ajoutez :
SQL> SET sqlprompt "&_USER@&_CONNECT_IDENTIFIER> "
Comment changer le nom du prompt SQL> ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
On peut parfois vouloir changer le nom du prompt SQL> pour une nouvelle valeur.
Pour ce faire, tapez la commande suivante :
SQL> SET sqlprompt "nouvelleValeur"
La FAQ SQL*Plus
- 7 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation
constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC.
Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://oracle.developpez.com/faq/faq-sqlplus/
Exemple :
SQL> SET sqlprompt "jsd03 SQL> "
On peut aussi combiner cette commande pour afficher un prompt du genre "username"@"SID". Par
exemple :
SQL> SET sqlprompt &_USER@&_CONNECT_IDENTIFIER>
Notez que si vous changez d'utilisateur, le prompt restera comme vous l'avez
dfinit prcdement.
Comment afficher l'heure dans le prompt SQL*Plus ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Cette fonctionnalit permet de suivre en temps rel l'xcution d'un script.
Pour afficher l'heure en dbut de prompt, il suffit de taper la commande suivante ou de la mettre en dbut
de script sql :
SQL> set time on
Rsultat :
20:36:20 SQL>
Comment savoir avec quel compte je suis connect SQL*Plus ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Utiliser la commande suivante :
SQL> SHOW USER
Rsultat (si mon nom d'utilisateur est JSD03) :
USER IS "JSD03"
Comment activer / utiliser l'aide SQL*Plus ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Pour utiliser l'aide sur une commande, il suffit de taper HELP suivit de la commande. Exemple :
SQL> help SHOW
ou encore
SQL> help host
La FAQ SQL*Plus
- 8 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation
constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC.
Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://oracle.developpez.com/faq/faq-sqlplus/
Il se peut nanmoins que cette aide ne soit pas installe. Pour cela, connectez allez dans le dossier
$ORACLE_HOME/sqlplus/admin/help (sous Unix) ou %oracle_home%/sqlplus/admin/help (sous Windows)
et lancer les commandes suivantes avec un compte SYS ou SYSTEM :
sqlplus SYS/password @helpdrop.sql --supprime les tables d'aide si elles existent dj
sqlplus SYS/password @helpbld.sql --cre les tables d'aide
sqlplus SYS/password @helpus.sql --charge les donnes dans les tables d'aide
Comment changer le mot de passe de l'utilisateur courant ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Il suffit d'utiliser tout simplement la commande suivante :
SQL> password
Exemple :
SQL> conn scott
Enter password:
Connecte.
SQL> password
Modification de mot de passe pour SCOTT
Ancien mot de passe :
Nouveau mot de passe :
Ressaisir le nouveau mot de passe :
Mot de passe modifie
SQL>

Comment excuter une commande systme depuis SQL*Plus ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Depuis le prompt SQL>, il est possible d'excuter une commande propre au systme d'exploitation l'aide
de ces 3 commandes :
SQL> ! commandeUnix
SQL> $ commandeWindows
SQL> host commandeUnixOuWindows
Exemple (pour un serveur Unix) :
SQL> ! date
lun jan 10 10:29:06 CEST 2009
SQL>
Exemple (pour un serveur Windows) :
SQL> $ echo developpez.com
developpez.com
SQL>
La FAQ SQL*Plus
- 9 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation
constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC.
Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://oracle.developpez.com/faq/faq-sqlplus/
Il est possible de taper plusieurs commandes la suite en spcifiant uniquement "!" ou "HOST" puis en
tapant sur la touche "ENTREE". Le prompt SQL> va se fermer et vous aurez accs au prompt systme.
Pour revenir votre session SQL, tapez EXIT.
Exemple :
SQL> $
Microsoft Windows XP [version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Jean-Sbastien>exit

SQL> host
Microsoft Windows XP [version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Jean-Sbastien>echo developpez.com
developpez.com

C:\Documents and Settings\Jean-Sbastien>date
La date du jour est : 02/06/2009
Entrez la nouvelle date : (jj-mm-aa)

C:\Documents and Settings\Jean-Sbastien>exit

SQL>
Comment activer l'affichage du buffer pour la session SQL*Plus en cours?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Cette commande permettra notamment d'afficher le retour de la procdure :
DBMS_OUTPUT.PUT_LINE('TexteAafficher')
SQL> SET serveroutput ON
On peut galement spcifier la taille du buffer de sortie en prcisant de la manire suivant :
SQL> SET serveroutput ON size 1000000
Comment exporter toutes les variables d'environnements de SQL*Plus ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Il peut tre ncessaire d'exporter les variables d'environnement afin de les rutiliser sur une autre base
de donnes.
Pour cela tapez la commande suivante :
SQL> store SET fileName
Exemple :
SQL> store SET "c:/sqlVariables.txt"
La FAQ SQL*Plus
- 10 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation
constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC.
Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://oracle.developpez.com/faq/faq-sqlplus/
De la mme manire, pour rimporter ces variables, tapez la commande :
SQL> @"c:/sqlVariables.txt"
Comment afficher la valeur d'une variable d'environnement de SQL*Plus ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Pour faire cela, il faut utiliser la commande suivante :
SQL> SHOW variableName
Exemple pour afficher le nombre de ligne par page :
SQL> SHOW pagesize
pagesize 14
Pour afficher toutes les variables :
SQL> SHOW all
Comment quitter correctement SQL*Plus ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Pour quitter correctement SQL*Plus, tapez la commande :
SQL> quit
ou
SQL> exit
On peut aussi spcifier d'appliquer les changements ou non aux requtes prcdemments excutes. En
spcifiant la suite, COMMIT ou ROLLBACK.
Pour information, la commande DISCONNECT permet uniquement de fermer la
session de l'utilisateur courant pour permettre par exemple de se connecter avec
un autre utilisateur.
La FAQ SQL*Plus
- 11 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation
constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC.
Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://oracle.developpez.com/faq/faq-sqlplus/
Sommaire > Excution de requtes
Comment excuter la dernire commande tape ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Utilisez le caractre slash "/" et appuyez sur la touche [Entre].
SQL> /
Comment complter une ligne d'une requte ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Prenons la requte suivante afin d'ajouter une nouvelle colonne dans la requte :
SQL> SELECT EMPLOYEE_ID, FIRST_NAME
2 FROM employees
Maintenant il faut slectionner la ligne voulue en tapant le numro de ligne (ici 1 pour modifier la premire
ligne)
SQL> 1
Ensuite il suffit de taper la commande "a " (pour append) suivit de la nouvelle colonne ou autre
SQL> a , LAST_NAME
Maintenant la requte va tre la suivante :
SQL> SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME
2 FROM employees
Comment sauvegarder une session de travail ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Il suffit d'utiliser la commande suivante :
SQL> SPOOL cheminVersLeFichier/nomDuFichier
Cette commande va enregistrer dans le fichier "nomDuFichier" les commandes excutes par l'utilisateur,
et les rponses d'Oracle.
Pour arrter cette sauvegarde, utiliser la commande suivante :
La FAQ SQL*Plus
- 12 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation
constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC.
Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://oracle.developpez.com/faq/faq-sqlplus/
SQL> SPOOL OFF
Comment afficher le temps d'excution d'une requte ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
SQL> SET TIMI[ING] ON/OFF
Exemple :
SQL> SET timing ON
SQL> SELECT sysdate FROM dual;

SYSDATE
--------
15/05/09

Ecoul : 00 :00 :00.04
SQL>
Comment afficher le contenu du Buffer ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
SQL> list
La commande LIST (abrviation : L) permet d'afficher le contenu du Buffer. Chaque ligne est prcde de
son numro. La dernire est prcde d'une toile.
Exemple :
SQL> list
1* select * from account
SQL>
On peut galement utiliser le point virgule suivit de la touche [Entre] qui donne le mme rsultat.
Comment excuter un script *.sql sans ouvrir SQL*Plus ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Il vous suffit de combiner les commandes de connexion et d'ajouter la suite < Fichier.SQL.
Exemple :
sqlplus scott/tigger < "c:/script.sql"
ou
sqlplus scott/tigger @"c:/script.sql"
ou encore (suivant le compte)
La FAQ SQL*Plus
- 13 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation
constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC.
Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://oracle.developpez.com/faq/faq-sqlplus/
sqlplus / @"c:/script.sql"
Le script "script.sql" sera excut avec le compte courant et rendra la main au systme d'exploitation une
fois le script termin.
Comment excuter un fichier .sql depuis le prompt SQL*Plus ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Il suffit d'utiliser la commande suivante :
SQL> @cheminVersLeFichier/nomDuFichier
Exemple :
SQL> @/home/oracle/scripts/CreateSchema.sql
Comment diter une requte dans un diteur de texte ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Pour commencer, vrifier la valeur de la variable _EDITOR avec la commande suivante :
SQL> DEFINE _EDITOR
Si le retour est correct et renvoie par exemple NOTEPAD ou VI ou tout autre diteur de texte, vous pourrez
diter vos requtes SQL sinon dfinissez la variable _EDITOR pour la faire pointer vers un diteur de texte.
Comme ceci :
SQL> DEFINE _EDITOR="C:/Program Files/Notepad++/notepad++.exe"
Maintenant, il suffit de taper la commande ED (alias EDIT) pour diter la dernire requte du buffer dans
l'diteur de texte. Ce qui est plus ais que le prompt SQL>.
SQL> ed
Une fois le fichier ferm, la nouvelle requte s'affiche l'cran mais ne s'excute pas. Pour le faire tapez "/".
Comment dsactiver le caractre & commercial dans une requte ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Le & commercial est le marqueur par dfaut qui indique que le mot qui suit est une variable de substitution.
Il permet de demander un utilisateur une nouvelle valeur via un prompt.
Pour dsactiver cette fonctionnalit, tapez la commande suivante (suivant votre version d'Oracle) :
SQL> SET DEFINE OFF
ou
La FAQ SQL*Plus
- 14 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation
constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC.
Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://oracle.developpez.com/faq/faq-sqlplus/
SQL> SET SCAN OFF
On peut aussi choisir une autre variable pour dfinir que le nom qui suit est une variable de substitution
avec la commande suivante :
SQL> SET DEFINE @
Explication : dans ce cas on ne prend plus le & commercial pour dfinir une variable de substitution mais
un arobase.
Comment changer une chaine par une autre dans une requte ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Prenons la requte suivante afin de modifier la chaine de caractre 'EMPLOYEE_ID' par 'DEPARTEMENT_ID'
SQL> SELECT EMPLOYEE_ID, FIRST_NAME
2 FROM employees
Maintenant il faut slectionner la ligne voulue en tapant le numro de ligne (ici 1 pour modifier la premire
ligne)
SQL> 1
Ensuite il suffit de taper la commande "c" (pour CHANGE) de la chaine de caractre modifier ainsi que
la nouvelle chaine.
SQL> c /EMPLOYEE_ID/DEPARTEMENT_ID
Maintenant la requte va tre la suivante :
SQL> SELECT DEPARTEMENT_ID, FIRST_NAME
2 FROM employees
La FAQ SQL*Plus
- 15 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation
constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC.
Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://oracle.developpez.com/faq/faq-sqlplus/
Sommaire > Les rapports SQL
Comment activer / dsactiver le retour sur l'tat d'une requte ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Quand vous excutez une requte du type INSERT un message du type Une ligne ajoute s'affiche, ou
encore quand vous cr une procdure Procdure cre.
Pour dsactiv ce retour, vous pouvez utiliser la commande suivante :
SQL> set feedback off
De mme pour le ractiver :
SQL> set feedback on
On peut galement spcifier un nombre d'occurences aprs lesquels on souhaite que SQL*Plus renvoie
un rapport
Exemple :
SQL> set feedback 3
Maintenant si on prend l'exemple suivant, SQL*Plus ne renverra pas de rapport mais juste le contenu de
la requte
SQL> select last_name
2 from employees
3 where rownum < 3;

LAST_NAME
-------------------------
Abel
Ande
Maintenant si on change la valeur du feedback 2, on obtient le rsultat suivant :
SQL> select last_name
2 from employees
3 where rownum < 3;

LAST_NAME
-------------------------
Abel
Ande

2 ligne(s) slectionne(s).
Comment dsactiver / activer le nom des colonnes l'affichage d'une requte ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Pour dsactiver l'affichage du nom des colonnes, et n'avoir que les donnes d'une requte, il suffit de taper
la commande suivante :
La FAQ SQL*Plus
- 16 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation
constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC.
Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://oracle.developpez.com/faq/faq-sqlplus/
SQL> set heading off
Au contraire, pour ractiver l'affichage du nom des colonnes :
SQL> set heading on
Exemple avec le nom des colonnes dsactiv :
SQL> select last_name, first_name
2 from employees
3 where rownum < 4;

Abel Ellen
Ande Sundar
Atkinson Mozhe
Comment modifier le nombre de lignes par page au rsultat d'un requte ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Par dfaut le nombre de lignes affiches par page est 11.
Exemple :
EMPLOYEE_ID FIRST_NAME LAST_NAME
----------- -------------------- -------------------------
100 Steven King
101 Neena Kochhar
102 Lex De Haan
103 Alexander Hunold
104 Bruce Ernst
105 David Austin
106 Valli Pataballa
107 Diana Lorentz
108 Nancy Greenberg
109 Daniel Faviet
110 John Chen

EMPLOYEE_ID FIRST_NAME LAST_NAME
----------- -------------------- -------------------------
111 Ismael Sciarra
112 Jose Manuel Urman
113 Luis Popp
114 Den Raphaely
Pour modifier cette valeur il suffit de taper la commande suivante pour afficher par exemple 100 lignes
par page :
SQL> SET pagesize 100
Rsultat :
EMPLOYEE_ID FIRST_NAME LAST_NAME
----------- -------------------- -------------------------
100 Steven King
101 Neena Kochhar
102 Lex De Haan
103 Alexander Hunold
La FAQ SQL*Plus
- 17 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation
constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC.
Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://oracle.developpez.com/faq/faq-sqlplus/
104 Bruce Ernst
105 David Austin
106 Valli Pataballa
107 Diana Lorentz
108 Nancy Greenberg
109 Daniel Faviet
110 John Chen
111 Ismael Sciarra
112 Jose Manuel Urman
113 Luis Popp
114 Den Raphaely
Comment modifier le nombre de caractres par ligne au rsultat d'un requte ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Par dfaut le nombre de caractres par lignes est de 72. Pour modifier ce nombre tapez la commande
suivante :
SQL> SET linesize 200
Comment dfinir la taille d'une colonne de type VARCHAR2 l'affichage d'un requte ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Prenons pour exemple la requte suivante :
SQL> SELECT employee_id, first_name, last_name
2 FROM employees
3 WHERE rownum < 10;
qui renvoit les lignes suivantes :
EMPLOYEE_ID FIRST_NAME LAST_NAME
----------- -------------------- -------------------------
100 Steven King
101 Neena Kochhar
102 Lex De Haan
103 Alexander Hunold
104 Bruce Ernst
105 David Austin
106 Valli Pataballa
107 Diana Lorentz
108 Nancy Greenberg
Je vais modifier la taille de la colonne first_name pour n'afficher que 8 caractres.
SQL> COLUMN first_name FORMAT A8;
Maintenant l'affichage sera :
EMPLOYEE_ID FIRST_NA LAST_NAME
----------- -------- -------------------------
100 Steven King
101 Neena Kochhar
102 Lex De Haan
103 Alexande Hunold
La FAQ SQL*Plus
- 18 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation
constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC.
Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://oracle.developpez.com/faq/faq-sqlplus/
r
104 Bruce Ernst
105 David Austin
106 Valli Pataballa
107 Diana Lorentz
108 Nancy Greenberg
Explication : COLUMN first_name : on spcifie que l'on slectionne la colonne first_name FORMAT A8 :
on dfinit que l'on souhaite modifier la longueur de la colonne pour ne prendre plus que 8 caractres et
renvoyer les autres la lignes.
On voit que pour l'employ 103, son prnom se trouve maintenant sur 2 ligne car il contient plus de 8
caractres.
Cette fonction est trs utile quand on a, par exemple, une colonne de type VARCHAR2(200) et que l'on sait
que la longueur maximum que l'on peut trouver dans cette colonne est 50, on va donc spcifier A50 pour
viter d'afficher des espaces superflus l'affichage de la requte.
On peut aussi spcifier de tronquer la colonne une fois le nombre de caractre afficher au lieu de retourner
la ligne avec le mot TRUNCATE.
Exemple :
SQL> COLUMN first_name FORMAT A8 TRUNCATE;
Rsultat :
EMPLOYEE_ID FIRST_NA LAST_NAME
----------- -------- -------------------------
100 Steven King
101 Neena Kochhar
102 Lex De Haan
103 Alexande Hunold
104 Bruce Ernst
105 David Austin
106 Valli Pataballa
107 Diana Lorentz
108 Nancy Greenberg
Notez que le prnom de l'employ 103 est tronqu.
Comment afficher un titre en dbut de chaque page de mon rsultat de requte ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Pour cela il faut utiliser la la fonction TTITLE :
SQL> TTITLE 'Mon titre'
Retour :
Ven. Juin 05 page 1

Mon titre

EMPLOYEE_ID FIRST_NAME LAST_NAME
La FAQ SQL*Plus
- 19 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation
constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC.
Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://oracle.developpez.com/faq/faq-sqlplus/
----------- -------------------- -------------------------
100 Steven King
101 Neena Kochhar
102 Lex De Haan
103 Alexander Hunold
104 Bruce Ernst
105 David Austin
106 Valli Pataballa
107 Diana Lorentz
Comme vous pouvez le voir maintenant en haute de chaque page mon titre s'affiche ainsi que la date du
jour et le numro de la page.
Pour arrter l'affichage du titre utilisez la commande suivante :
SQL> TTITLE OFF
Dans le mme esprit on peut ajouter du texte la fin d'une page :
BTITLE 'Fin de page'
Retour :
EMPLOYEE_ID FIRST_NAME LAST_NAME
----------- -------------------- -------------------------
100 Steven King
101 Neena Kochhar
102 Lex De Haan
103 Alexander Hunold
104 Bruce Ernst
105 David Austin
106 Valli Pataballa
107 Diana Lorentz
108 Nancy Greenberg

Fin de page
Comment crer des rapports HTML ?
Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester
Il est possible avec SQL*Plus de gnrer des fichiers HTML pour afficher le rsultat d'une requte.
Pour se faire, crez un fichier avec le code suivant et excutez le avec la commande
SQL> @generateReport.sql
SET MARKUP HTML ON SPOOL ON PREFORMAT OFF ENTMAP ON HEAD "<TITLE>Rapport 1</
TITLE> <style>th {background-color: #7FCF00;} td {background-color:#FFEE9F;}</style>"
BODY "><div>Mon premier rapport</div"
spool c:\rapport01.html

TTITLE "- Liste des employs -"

SELECT *
FROM employees;
/

La FAQ SQL*Plus
- 20 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation
constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC.
Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://oracle.developpez.com/faq/faq-sqlplus/
SET markup html off spool off
spool off
Explications :
SET MARKUP HTML : active les rapports HTML
SPOOL ON : active la sortie vers un fichier
PREFORMAT OFF : dsactive le prformatage du rsultat de la requte
ENTMAP ON : remplace les caractres spciaux tel que &, >, <... par leur code html
HEAD : dfinit le code l'intrieur des balises <head></head> ; le code qui suit, sera insr entre
ces balise. On peut alors inclure des fichiers styles, du javascript...
BODY : dfinit les paramtres des balises body ; par exemple si j'avais mis
BODY " bgcolor='red' "
le fond de mon rapport aurait t en rouge. C'est pour cela que dans mon exemple j'ai d'abord ferm la
balise <body> pour afficher un bloque <div> la suite et que je n'ai pas termin ma balise </div car SQL*Plus
s'en chargera quand il gnrera le rapport.
spool filename : cre le rapport dans le fichier qui suit
TTITLE : dfinit le titre du rapport
la requte
set markup html off spool off spool off : on rinitialise toutes les variables SQL*Plus
Vous pourrez voir l'exemple de rapport cr en cliquant sur ce lien.