Saltar al contenido

¿Cómo hacer que la salida de sqlplus aparezca en una línea?

Recuerda que en la informática un problema suele tener diversas resoluciones, por lo tanto enseñaremos la mejor y más eficiente.

Solución:

No es suficiente obligar a sqlplus a no envolver líneas. También es necesario decirle al espectador que utiliza para ver el archivo de spool, no para ajustar las líneas. Si tu espectador es less después -S la opción que debe usar de acuerdo con https://superuser.com/questions/272818/how-to-turn-off-word-wrap-in-less . En Unix/Linux puedes usar head -1 output.txt para obtener la primera línea de un archivo y así verificar si esto es como se esperaba o puede usar od -c output.txt|head
para ver dónde se colocan realmente los saltos de línea en el archivo de salida.

Si muestra columnas LARGAS y sus valores contienen saltos de línea, se imprimirán varias líneas para estos valores de columna y no puede anular esto con la configuración de sqlplus.


Los siguientes comandos sqlplus pueden ser útiles:

  • SET LINESIZE linesize la longitud de la línea. En la mayoría de los casos, el valor máximo de linesize es 32767. Puede averiguar su valor máximo si establece TAMAÑO DE LÍNEA en un valor no válido y verifica el mensaje de error para que SET LINESIZE 0 puede dar SP2-0267: linesize option 0 out of range (1 through 32767) (1)
  • SET TRIMSPOOL ON de lo contrario, cada línea en el archivo spool se llena con espacios en blanco hasta que se alcanza el tamaño de línea.
  • SET TRIMOUT ON de lo contrario, cada línea en la salida se llena con espacios en blanco hasta que se alcanza el tamaño de línea.
  • SET WRAP OFF Trunca la línea si es más larga que LINESIZE. Esto no debería suceder si el tamaño de línea es lo suficientemente grande.
  • SET TERMOUT OFF suprime la impresión de los resultados en la salida. Las líneas todavía se escriben en el archivo de cola. Esto puede acelerar mucho el tiempo de ejecución de una declaración.
  • SET PAGESIZE 0 para establecer un tamaño de página infinito y evitar encabezados, títulos, etc.
  • Hay algunos otros SET parámetros relacionados con la salida (NUMWIDTH, NUMFORMAT, LONG, COLSEP) y el rendimiento (ARRAYSIZE, LONGCHUNKSIZE).

Tienes que usar el COLUMNComando para dar formato a columnas individuales.

P.ej column name format a30 formateará la columna name en la salida a una longitud máxima de 30 caracteres.

Si desea que el tamaño de la pantalla no sea fijo, pero debe ser igual al tamaño del valor real de una columna en una fila, entonces la única forma que conozco es que cambie la cláusula de selección de su declaración para obtener el resultado deseado y usar la
string operador de concatenación || p.ej

select emp_id||' '||first_name||' '||last_name
from emp;

Puede encontrar una descripción completa de todas las variables en la Guía y referencia del usuario de SQL*Plus.

Si desea reutilizar algunas configuraciones (o definiciones de COLUMNA), puede almacenarlas en un archivo y ejecutar este archivo cuando las necesite nuevamente. Incluso puede ejecutar este archivo automáticamente si inicia sqlplus.

(1) “Cómo encontrar el valor máximo de LINESIZE (depende del sistema) (Doc ID 1547262.1)”

Debe configurar lo siguiente:

SET WRAP OFF

puedes configurar así

SET WRAP OFF

SET PAGESIZE 0

Reseñas y calificaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *