
FAQ OracleConsultez toutes les FAQ
Nombre d'auteurs : 16, nombre de questions : 138, dernière mise à jour : 16 février 2013
Sommaire→Outils→SQL*PlusIl 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 :
-- 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 :
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.
& 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 :
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 :
SET DEFINE OFF
Ainsi on obtient :
SQL > set define off
SQL > select 'toi & moi' from dual;
'TOI&MOI'
---------
toi & moi
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 :
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 :
SET VERIFY OFF
Ainsi on obtient le résultat suivant :
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



