Настройки SQLPlus для создания файла данных, разделенного табуляцией

StackOverflow https://stackoverflow.com/questions/106323

  •  01-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

select chr(9) from dual;

Другие советы

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

Но для разделенных табуляцией, 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;

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

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

Решение

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

принцип, лежащий в основе

На самом деле, это всего лишь объединение строк.

CHR(9) -> ' '

столбец 1 || CHR(9) || столбец 2 -> concat(столбец 1, ' ', столбец 2)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top