FAQ OracleConsultez toutes les FAQ

Nombre d'auteurs : 16, nombre de questions : 138, dernière mise à jour : 16 février 2013 

 
OuvrirSommaireOutilsSQL*Plus

Il peut parfois être utile de sauvegarder le résultat de la requête dans un fichier texte sur le disque dur. Pour cela SQL*Plus nous offre la possibilité d'utiliser la commande SPOOL qui fonctionne comme dans l'exemple suivant :

 
Sélectionnez

-- On demande à rediriger l'affichage vers le fichier c:\toto.txt 
SPOOL c:\toto.txt 
-- On execute notre requete 
SELECT SYSDATE FROM DUAL; 
-- On stoppe la redirection 
SPOOL OFF

Voici le contenu de notre fichier :

 
Sélectionnez

SQL> SELECT sysdate
  2  FROM dual;

SYSDATE                                                                         
--------                                                                        
28/06/04                                                                        

SQL> SPOOL OFF

On pourra facilement supprimer les premières et dernières lignes grâce aux commandes de formatages de SQL*Plus.

On peut préciser que jusqu'à la version 9i incluse, le fichier est écrasé s'il existe déjà. En 10g, les options CREATE/REPLACE/APPEND apportent un choix en la matière.

Créé le 2004-11-30  par Helyos

& est un caractère spécial qui permet de préfixer un nom de variable. Or, lorsque l'on veut insérer du texte contenant ce caractère, SQL*Plus demande une valeur à insérer.

Par exemple :

 
Sélectionnez

SQL> select 'toi & moi' from dual;
Entrez une valeur pour moi : 
ancien   1 : select 'toi & moi' from dual
nouveau   1 : select 'toi ' from dual

'TOI
----
toi

Pour éviter ce désagrément il suffit de taper :

 
Sélectionnez

SET DEFINE OFF

Ainsi on obtient :

 
Sélectionnez

SQL > set define off
SQL > select 'toi & moi' from dual;

'TOI&MOI'
---------
toi & moi
Créé le 2006-09-18  par Fred_D

Lorsque l'on utilise des variables SQL*Plus de la forme &nom_variable et que l'on exécute la requête, Oracle rappelle quelle valeur est remplacée de la manière suivante :

 
Sélectionnez

SQL > select '&texte_a_afficher' from dual;
Entrez une valeur pour texte_a_afficher : Bonjour Developpez.com
ancien 1 : select '&texte_a_afficher' from dual
nouveau 1 : select 'Bonjour Developpez.com' from dual

'BONJOURDEVELOPPEZ.COM
----------------------
Bonjour Developpez.com

Pour éviter ces lignes disgracieuses dans un log, il faut désactiver la vérification avec la commande suivante :

 
Sélectionnez

SET VERIFY OFF

Ainsi on obtient le résultat suivant :

 
Sélectionnez

SQL > set verify off
SQL > select '&texte_a_afficher' from dual;
Entrez une valeur pour texte_a_afficher : Bonjour Developpez.com

'BONJOURDEVELOPPEZ.COM
----------------------
Bonjour Developpez.com
Créé le 2006-09-18  par Fred_D
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même 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 intérêts. Cette page est déposée.