Tutorial :How to prevent dbms_output.put_line from trimming leading whitespace?



Question:

I am trying to right-align the output of some PL/SQL code, but dbms_output.put_line is trimming the leading whitespace from my strings. How do I make it stop? Or is there a better way to output strings with leading whitespace?

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

outputs:

string  

instead of:

                        string  


Solution:1

The problem is not with dbms_output but with SQL*Plus.

Use

SET SERVEROUTPUT ON FORMAT WRAPPED  

or

SET SERVEROUTPUT ON FORMAT TRUNCATED  

to preserve the spaces.


From the documentation (PDF) of SET SERVEROUT WORD_WRAPPED (which is the standard):

SQL*Plus left justifies each line, skipping all leading whitespace.


Solution:2

Might add that if you want to preserve the leading spaces but trim the trailing spaces use:

set trimspool on  

This way the leading spaces will be preserved but the line length will be determined by the actual length of text in the output.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »