Il ne suffit pas de forcer sqlplus à ne pas envelopper de lignes. Il est également nécessaire d'indiquer à la visionneuse que vous utilisez pour afficher le fichier de spool afin de ne pas envelopper les lignes. Si votre lecteur est less
alors -S
l'option que vous devez utiliser conformément à
https://superuser.com/questions/272818/how-to-turn-off-word-wrap-in-less . Sous Unix / Linux, vous pouvez utiliser head -1 output.txt
pour obtenir la première ligne d’un fichier et vérifier si le résultat est od -c output.txt|head
conforme aux attentes. Vous pouvez également savoir où sont placés les sauts de ligne dans votre fichier de sortie.
Si vous affichez les colonnes LONG et que leurs valeurs contiennent des sauts de ligne, plusieurs lignes seront imprimées pour ces valeurs de colonne et vous ne pourrez pas remplacer cela par des paramètres sqlplus.
Les commandes sqlplus suivantes peuvent être utiles:
SET LINESIZE linesize
la longueur de la ligne. Dans la plupart des cas, la valeur maximale pour linesize
est 32767. Vous pouvez connaître votre valeur maximale si vous définissez LINESIZE sur une valeur non valide et vérifier le message d'erreur pour SET LINESIZE 0
pouvoir donner SP2-0267: linesize option 0 out of range (1 through 32767)
(1)
SET TRIMSPOOL ON
sinon, chaque ligne du fichier spool est remplie avec des blancs jusqu'à ce que la taille de la ligne soit atteinte.
SET TRIMOUT ON
sinon, chaque ligne de la sortie est remplie avec des blancs jusqu'à ce que la taille de la ligne soit atteinte.
SET WRAP OFF
Tronque la ligne si elle est plus longue que LINESIZE. Cela ne devrait pas arriver si lineize est suffisamment grand.
SET TERMOUT OFF
supprime l'impression des résultats à la sortie. Les lignes sont toujours écrites dans le fichier spool. Cela peut accélérer beaucoup le temps d'exécution d'une déclaration.
SET PAGESIZE 0
définir une taille de page infinie et éviter les en-têtes, les titres, etc.
- Il existe d'autres
SET
paramètres concernant la sortie (NUMWIDTH, NUMFORMAT, LONG, COLSEP) et les performances (ARRAYSIZE, LONGCHUNKSIZE).
Vous devez utiliser la COLUMN
commande pour formater des colonnes individuelles.
Par exemple column name format a30
, formatera la colonne name
dans la sortie avec une longueur maximale de 30 caractères.
Si vous voulez que la taille d'affichage ne soit pas fixe mais qu'elle soit égale à la taille de la valeur réelle des colonnes d'une rangée, le seul moyen que je connaisse est de modifier la clause select de votre instruction pour obtenir le résultat souhaité et l'utiliser. l'opérateur de concaténation de chaîne ||
, p.ex.
select emp_id||' '||first_name||' '||last_name
from emp;
Vous trouverez une description complète de toutes les variables dans le Guide de l'utilisateur et de référence de SQL * Plus .
Si vous souhaitez réutiliser certains paramètres (ou définitions COLUMN), vous pouvez les stocker dans un fichier et exécuter ce fichier lorsque vous en avez de nouveau besoin. Vous pouvez même exécuter ce fichier automatiquement si vous démarrez sqlplus.
(1) "Comment trouver la valeur maximale LINESIZE (dépend du système) (ID de document 1547262.1)"