2010-04-06 69 views
6

Estoy tratando de alinear a la derecha la salida de algún código PL/SQL, pero dbms_output.put_line está recortando el espacio en blanco inicial de mis cadenas. ¿Cómo lo hago parar? ¿O hay una mejor manera de producir cadenas con espacio en blanco inicial?Cómo evitar que dbms_output.put_line recorte los espacios en blanco iniciales?

dbms_output.put_line(lpad('string', 30, ' ')); 

salidas:

string 

en lugar de:

     string 

Respuesta

14

El problema no es con dbms_output pero con SQL * Plus.

Uso

SET SERVEROUTPUT ON FORMAT WRAPPED 

o

SET SERVEROUTPUT ON FORMAT TRUNCATED 

para preservar los espacios.


Desde el documentation (PDF) de SET SERVEROUT WORD_WRAPPED (que es el estándar):

SQL * Plus justifica a la izquierda de cada línea, saltándose todos los espacios iniciales.

3

Podría agregar que si desea conservar los espacios iniciales pero recortar los espacios finales use: configure trimspool en su sql. De esta forma, los espacios iniciales se conservarán, pero la longitud de la línea estará determinada por la longitud real del texto en la salida.

Cuestiones relacionadas