Вы можете внедрить символ новой строки, используя его код ASCII (ну, не строго ASCII, но здесь достаточно близко), используя CHR
function, в данном случае с CHR(10)
для представления \n
:
SELECT (case GENDER
when '1' then 'Mr.'
else 'Mrs.'
end ) ||' '||
LNAME ||', '||
FNAME || CHR(10) ||
FUNCTION ||', '|| DEPARTMENT
from EMPLOYEES;
Если вы также хотите возврат каретки, добавьте также CHR(13)
(\r
).
Как отмечено в комментариях, это также вводит пустую строку между строками. Единственный способ избавиться от этого, насколько я могу судить, - несколько неинтуитивно - SET RECSEP OFF
. Новая строка, по-видимому, заставляет SQL*Plus обрабатывать вывод как упакованный, что вы также можете увидеть с помощью команды SET WRAP OFF
или с параметром COLUMN ... TRUNCATE
, оба из которых подавляют вторую строку.
Вы также можете использовать SET TAB OFF
и SET TERMOUT OFF
, если хотите, чтобы данные буферизировались только в файл, а не в терминал.
(До того, как вопрос был отредактирован более подробно)
Если вам просто нужна пустая строка между результатами двух запросов, вы можете использовать команда SQL*Plus PROMPT
без аргументов:
select dummy from dual;
prompt
select dummy from dual;
Из документов:
PRO[MPT] [text]
где text представляет собой текст сообщения, которое вы хотите отобразить.
Отправляет указанное сообщение или пустую строку на экран пользователя. Если вы опустите текст, PROMPT
отобразит пустую строку на экране пользователя.
Вы также можете ознакомиться с разделом по форматированию отчетов SQL*Plus если у вас есть другие особые требования к внешнему виду вывода.
Если у вас есть блок PL/SQL, который производит вывод через вызовы dbms_output
, вы можете использовать NEW_LINE
, чтобы добавить пустую строку между существующим выводом:
dbms_output.put_line('some text');
dbms_output.new_line;
dbms_output.put_line('some more text');
person
Alex Poole
schedule
08.10.2013
dbms_output
? - person Alex Poole   schedule 08.10.2013