SQLPLUS Удалить r n t От катушки
Вопрос
Есть ли команда SQL * PLUS для удаления \r
\n
а также\t
Из набора результатов, который выходит в файл катушки? То есть «обрезать» каждую запись?
Мы использовали set trim on
В прошлом, но это не так, кажется, не в том, что нам нужно прямо сейчас. Я пытаюсь избежать перевода Oracle, функции CHR в запросе SQL.
Например,
set termout off
set spool somefile.dat
set lin 600
select data from mytable;
set spool off;
exit;
Мой запрос возвращает это
|DATA|
|\n \t\t\t\t\t thisistheactualdata \t\t\t\t\t\t\n|
И я хотел бы сохранить это в мошенничестве
thisistheactualdata
Обновить
Ну, мы закончили что-то подобное.
set tab off;
spool /home/oracle/out.dat
set linesize 20
set termout off
set trim on
select regexp_replace(l,'(\t|\n)','') from test;
spool off;
exit;
Но получили несколько плохих новостей: нам нужно запустить это в Oracle 8, и Regexp_replace, похоже, не доступен. :(
Заранее спасибо.
Решение
Я не думаю, что вы сможете сделать это с SQLПлюс Директива. SQL.Plus - довольно тонкий клиент и не предназначен, чтобы коснуться данных из результата настроен.
Если вы не хотите использовать встроенные функции SQL, чтобы изменить выходные данные, я думаю, что вы застряли с постобработным файлом на буфер.
Редактировать по DCoodie: поскольку я пропустил оригинальный запрос OP для решения на основе неперевозок / CHR (я сосредоточился на плачете OP, что они застряли с 8i), в справедливости до DPbradley я собираюсь отозвать мой ответ и включить его Как часть этого, так как это было четко рассмотрено. Вот что я писал:
Вы можете попробовать функцию Translate для вашей ситуации Oracle 8:
SELECT TRANSLATE(L,'A'||CHR(10)||CHR(9)||CHR(13),'A') FROM test;
Другие советы
Не пытаясь это, делает
SET TAB OFF
иметь желаемый эффект?