Настройки SQLPlus для создания файла данных, разделенных табуляцией - PullRequest
16 голосов
/ 20 сентября 2008

У кого-нибудь есть хороший набор директив конфигурации sqlplus, чтобы помочь преобразовать данный запрос sql в красиво разделенный табуляцией вывод для извлечения в электронную таблицу или дальнейшей обработки?

Ответы [ 4 ]

9 голосов
/ 15 августа 2011

Как указал Джастин в своей ссылке, использование функции SQLPlus set colsep позволяет сохранить разделитель для каждого столбца.

Но для табуляции с разделителями set colsep Chr(9) не будет работать.

Для UNIX или LINUX используйте set colsep ' ' с пробелом между одинарными кавычками в виде печатной вкладки.

Для Windows используйте следующие настройки:

col TAB# new_value TAB NOPRINT
select chr(9) TAB# from dual;
set colsep "&TAB"

select * from table;
3 голосов
/ 20 сентября 2008

Один конкретный скрипт, который я украл несколько раз, происходит из потока AskTom в , извлекающего данные в плоский файл . Если бы мне нужен быстрый и грязный плоский файл из SQL * Plus. Однако я бы предпочел использовать функцию DUMP_CSV, которую Том ранее разместил в этом потоке, для любого продолжающегося процесса.

1 голос
/ 26 декабря 2014

Я получил глупое решение. Это сработало очень хорошо.

Решение

SELECT column1 || CHR(9) || column2 || CHR(9) || column3 ... ...
FROM table

принцип, стоящий за

На самом деле, это просто конкатенация строк .

CHR (9) -> '\ t'

column1 || CHR (9) || column2 -> concat (column1, '\ t', column2)

0 голосов
/ 20 сентября 2008

Ознакомьтесь с документацией Oracle:

Вы можете создать вкладку в Oracle, используя значение ASCII вкладки 9 и функцию chr:

select chr(9) from dual;
...