Добавление по поводу sqlplus для запроса. Вопрос к знатокам.
вот пример файла .sql, подсовываемого в sqlplus для вывода значения в файл:
------
rem готовимся к выводу данных
SET echo off newpage 0 space 0 pagesize 0 feedback off head off trimspool on linesize 1000
rem открываем файл на запись
SPOOL %_filename%.csv
rem 1. дата, продажа-возвраты, число чеков, средний чек
SELECT trunc((Z.CheckDate)) as Field1,round((SUM((decode(Z.IsSale,'1',Z.TotalSum,0))-(decode(Z.IsSale,'1',0,Z.TotalSum)))),4) as Field6,round((SUM(decode(Z.OpCode,1,1,-1))),4) as Field5,round((round((SUM((decode(Z.IsSale,'1',Z.TotalSum,0))-(decode(Z.IsSale,'1',0,Z.TotalSum)))),4)/round((SUM(decode(Z.OpCode,1,1,-1))),4)),4) as Field7
FROM SVAnalyticsCheck Z
WHERE Z.CheckDate between to_date('13.05.2014','DD.MM.YYYY') and to_date('18.05.2014','DD.MM.YYYY')
GROUP BY trunc((Z.CheckDate));
rem закрываем файл
SPOOL off
exit
---------
Сам запрос взяли из бизнес анализа, впрочем, не суть.
получаем в файле информацию типа:
---
16-MAY-14 252584.1 279 905.3194
18-MAY-14 287449 315 912.5365
---
Вопрос - как сделать разделителем символ с каким нибудь кодом (типа CHR(149)) и избавиться от лишних пробелов ?
нагуглив нашел сист. переменную COLSEP
COLSEP <текст> Задает текст, который будет выдаваться между выбранными столбцами. Если текст содержит пробелы или символы пунктуации, его необходимо брать в апострофы. По умолчанию используется один пробел.
используем colsep #
SET echo off newpage 0 space 0 pagesize 0 feedback off head off trimspool on linesize 1000 colsep #
получаем:
---
16-MAY-14# 252584.1# 279# 905.3194
18-MAY-14# 287449# 315# 912.5365
---
а хотелось бы без пробелов:
---
16-MAY-14#252584.1#279#905.3194
18-MAY-14#287449#315#912.5365
---
Можно ли так сделать ?