powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Выгрузка из Oracle в CSV
9 сообщений из 9, страница 1 из 1
Выгрузка из Oracle в CSV
    #39671449
Rulezzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго день!

Пытаюсь автоматизировать выгрузку небольшого отчета через sqlplus в csv, но возникла сложность с расстановками || '";"' ||
Никак не могу заставить данные выводиться таблицей. Прошу вашей помощи.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
	SET TRIMSPOOL ON;
	SET ECHO OFF;
	SET TRIMOUT ON;
	SET LINESIZE 50;
	SET PAGESIZE 0; 
	SET FEEDBACK OFF;
	SET colsep '|'
	SET TIMING OFF;
	SET HEADING OFF;
	SET VERIFY OFF;
	SET TERMOUT OFF;
	SPOOL d:/Temp/1/export_file.csv;
	whenever oserror exit 1
	whenever sqlerror exit 2

SELECT *
FROM
     (SELECT to_char(date_of,'yyyy.mm.dd') "Дата", ID_DIVISION, DECODE (amount,'0',operation,amount) as new_amount 
      FROM t_data where 
      DATE_OF >= TO_DATE('01.07.2018 00:00:00','dd.mm.yyyy hh24:mi:ss') 
      AND 
      DATE_OF <= TO_DATE('29.07.2018 23:59:59','dd.mm.yyyy hh24:mi:ss')
     ) PIVOT (count(new_amount) AS "Кол-во",SUM(trunc(new_amount)) AS "Сумма"
              FOR ID_DIVISION IN (2600001000, 2700001000, 100001000
                )
               )
ORDER BY 1;

SPOOL OFF;
exit 0;
...
Рейтинг: 0 / 0
Выгрузка из Oracle в CSV
    #39671456
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторSET colsep '|'

Если это разделитель колонок, то он должен быть ";" или "," для comma separated values, и, конечно, если в данных такое попадается, надо эти символы заменять или, по крайней мере, в кавычки заключать, для строк.
...
Рейтинг: 0 / 0
Выгрузка из Oracle в CSV
    #39671487
Rulezzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, поменял на - SET colsep ';'

если пытаюсь сделать так:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT *
FROM
     (SELECT to_char(date_of,'yyyy.mm.dd') "Дата"||';'|| ID_DIVISION||';'|| DECODE (amount,'0',operation,amount) as new_amount 
      FROM t_data where 
      DATE_OF >= TO_DATE('01.07.2018 00:00:00','dd.mm.yyyy hh24:mi:ss') 
      AND 
      DATE_OF <= TO_DATE('29.07.2018 23:59:59','dd.mm.yyyy hh24:mi:ss')
     ) PIVOT (count(new_amount) AS "Кол-во",SUM(trunc(new_amount)) AS "Сумма"
              FOR ID_DIVISION IN (2600001000, 2700001000, 100001000
             ))
ORDER BY 1;



то выводит ошибку
ORA-00904: "ID_DIVISION": недопустимый
идентификатор
С обычным select-ом у меня все выводится нормально, а вот вместе с pivot, непонятно как данные выводить :(
...
Рейтинг: 0 / 0
Выгрузка из Oracle в CSV
    #39671504
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rulezzz...
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT *
FROM
     (SELECT to_char(date_of,'yyyy.mm.dd') "Дата"||';'|| ID_DIVISION||';'|| DECODE (amount,'0',operation,amount) as new_amount 
      FROM t_data where 
      DATE_OF >= TO_DATE('01.07.2018 00:00:00','dd.mm.yyyy hh24:mi:ss') 
      AND 
      DATE_OF <= TO_DATE('29.07.2018 23:59:59','dd.mm.yyyy hh24:mi:ss')
     ) PIVOT (count(new_amount) AS "Кол-во",SUM(trunc(new_amount)) AS "Сумма"
              FOR ID_DIVISION IN (2600001000, 2700001000, 100001000
             ))
ORDER BY 1;



Что это за поле то такое странное ...
Да и SUM(trunc(new_amount)) по нему точно не сработает
...
Рейтинг: 0 / 0
Выгрузка из Oracle в CSV
    #39671516
Rulezzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну то, что я делаю неправильно, я и сам понял :)
Напишите лучше как правильно?
...
Рейтинг: 0 / 0
Выгрузка из Oracle в CSV
    #39671521
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rulezzz,

markup csv
...
Рейтинг: 0 / 0
Выгрузка из Oracle в CSV
    #39671524
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rulezzz,

Напиши через with t_data - тогда быстро напишут правильный ответ.

Ну или жди коме не лень будет собрать эту табличку за тебя - чтоб написать правильный ответ.

А то пака ORA-00942: table or view does not exist
...
Рейтинг: 0 / 0
Выгрузка из Oracle в CSV
    #39671584
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RulezzzНу то, что я делаю неправильно, я и сам понял :)
Напишите лучше как правильно?
убрать слово автор"Дата"
...
Рейтинг: 0 / 0
Выгрузка из Oracle в CSV
    #39671649
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
проще sqlplus обновить до 12.2 и юзать
-2- markup csv

ну или использовать SQLcl
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Выгрузка из Oracle в CSV
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]