выходной формат CSV из sqlplus запускается в сценарии Unix - PullRequest
0 голосов
/ 10 ноября 2009

Мне нужно отформатировать выходной файл CSV из запроса sqlplus. Поля вывода char и varchar имеют максимальный размер столбца в таблице, что означает, что многие столбцы имеют дополнительные пробелы, плюс разделитель запятых. Как я могу избавиться от лишних пробелов в моем CSV-файле? Также, как я могу получить "" вокруг числовых полей?

Ответы [ 2 ]

2 голосов
/ 19 августа 2010

Вам нужно будет объединить поля вместе и сами добавить кавычки. Кроме того, не забывайте избегать двойных кавычек в ваших данных. Двойные кавычки не являются строго необходимыми, если ваши данные не содержат запятых или двойных кавычек, но добавлять их не вредно.

SELECT '"' || numcol || '",',
       '"' || REPLACE(strcol0, '"', '""') || '",',
       '"' || REPLACE(strcol1, '"', '""') || '"'
  FROM some_table;

Перед тем, как вы запустите это, вы, вероятно, захотите отключить заголовки и обратную связь, а затем спулфить в файл.

SQL> set heading off
SQL> set feedback off
SQL> set pagesize 0
SQL> spool output.csv
SQL> SELECT ... FROM ...;
SQL> spool off
0 голосов
/ 06 января 2010

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

http://www.adp -gmbh.ch / ора / SQL / trim.html

SELECT TRIM(col) FROM table;

Не уверен, почему вы получаете кавычки вокруг числовых полей: возможно, что-то связано с тем, как вы объединяете столбцы?

Как спросил Д. Шоули, было бы полезно, если бы вы опубликовали здесь пример SQL, который вы используете для генерации CSV.

...