Я пытаюсь выровнять вывод некоторого кода PL / SQL по правому краю, но dbms_output.put_line обрезает начальные пробелы в моих строках. Как мне это остановить? Или есть лучший способ для вывода строк с пробелами?
dbms_output.put_line(lpad('string', 30, ' '));
выходы:
string
вместо:
Проблема не в dbms_output, а в SQL * Plus.
dbms_output
Используйте
SET SERVEROUTPUT ON FORMAT WRAPPED
или
SET SERVEROUTPUT ON FORMAT TRUNCATED
для сохранения пробелов.
Из документации (PDF) из SET SERVEROUT WORD_WRAPPED (что является стандартом):
SET SERVEROUT WORD_WRAPPED
SQL * Плюс слева выравнивает каждую строку, пропуская все начальные пробелы.
Можно добавить, что если вы хотите сохранить начальные пробелы, но обрезать завершающие пробелы, используйте:
set trimspool on
Таким образом, первые пробелы будут сохранены, но длина строки будет определяться фактической длиной текста в выводе.