Options de formatage des résultats

1. Largeur des colonnes

Un formatage élémentaire consiste à donner une largeur aux colonnes, comme ceci :
set recsep off (pour éviter qu'il n'y ait quelque chose entre chaque ligne, le quelque chose étant défini par la variable recsepchar)
column <nom_de_colonne> format a20 (la colonne aura 20 caractères de large)
puis entrer la requête.

nom_de_colonne est égal au nom des champs qu'on sélectionne.
Quel est l'équivalent du AS sur sql server ?
Réponse : c'est la commande column <ancien nom> heading <nouveau nom>
Par exemple : column doris_key heading exemplaire

2. Largeur des lignes

La commande set linesize <nombre_de_caractères_par_ligne> permet de limiter la largeur de la page.

Attention, il faut que la somme des largeurs de colonnes n'excède pas la largeur de la ligne ! Sinon, sqlplus reprend son formatage par défaut.

Où se trouve le fichier de formatage par défaut ?
Réponse : en tapant la commande show all, on a tout le formatage par défaut.
On peut sauvegarder tous ces paramètres dans un fichier en envoyant la commande store set <nom du fichier>
Voici le contenu de ce fichier.
Au démarrage, sqlplus lit le contenu du fichier glogin.sql.
Voici le contenu de ce fichier.
Ce fichier est dans : oraclev8:app:oracle:product:8.1.7:sqlplus:admin

Si on veut conserver un paramétrage pour toutes les futures utilisations de sqlplus, il faut les enregistrer dans un fichier login.sql placé dans le répertoire de base : à essayer.

3. Longueur des pages

La commande set pagesize <nombre_de_lignes> permet de préciser tous les combiens de lignes va revenir le titre des colonnes. Dans le paramétrage par défaut, cette variable est à 14, c'est pour ça que les noms des colonnes reviennent si souvent !
Pour supprimer tout retour des titres de colonnes, taper set pagesize 0

Formatage pour csv

1. Enregistrer les options de formatage dans un fichier externe qu'on appellera avec @. Voici par exemple le contenu d'un fichier csv.sql :

set LIN 1000
set HEADING OFF
set TRIMSPOOL ON
set PAGESIZE 0
set EMBEDDED OFF
set HEADS OFF
set NEWP NONE
set ECHO OFF
set FEEDBACK OFF
set SPACE 0
set COLSEP " "
set TAB OFF

2. Avant de lancer la requête, faire spool <fichier>.csv (pas besoin d'indiquer tout le chemin si on lance sqlplus dans le même répertoire où l'on veut envoyer le fichier).

3. Appeler le fichier de formatage : @csv.sql

4. Taper la requête en faisant une concaténation des colonnes comme ceci :
select col1||';'||col2 from

5. Taper spool off

Signification des réglages :
TRIMSPOOL ON : suppression des espaces en fin de ligne
TAB OFF : non utilisation des tabulations
EMBEDDED OFF : pas de contrôle sur l'endroit de la page où doit commencer le rapport
HEADING OFF : en-tête du résultat (= nom des colonnes)
PAGESIZE 0 : évite la ligne blanche toutes les 14es lignes