Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / listagg / 8 сообщений из 8, страница 1 из 1
29.05.2017, 08:44
    #39461228
Bauer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
listagg
Всем привет.

Код: plsql
1.
SELECT LISTAGG(table_name, ';') WITHIN GROUP (ORDER BY table_name) tb_name FROM all_tables;-- where rownum =1;



Код: sql
1.
ORA-01489: result of string concatenation is too long



Пожалуйста, подскажите, как получить на выходе по десять записей в строке?

Спасибо.

Best Regards, Bauer.
...
Рейтинг: 0 / 0
29.05.2017, 08:55
    #39461236
listagg
Bauer,

разбить всё множество исходных данных на группы по 10 строк и сделать агрегацию?
...
Рейтинг: 0 / 0
29.05.2017, 09:04
    #39461245
Bauer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
listagg
Добрый Э - Эх,

Разбить выходные данные на строчки в каждой из которых по десять записей...
т.е. что бы получилось так:

Код: sql
1.
2.
3.
4.
ICOL$ CON$ UNDO$ PROXY_ROLE_DATA$ FILE$ UET$ IND$ SEG$ COL$ CLU$ 
PROXY_DATA$ TS$ BOOTSTRAP$ FET$ CCOL$ USER$ OBJ$ TAB$ CDEF$ OBJERROR$ 
OBJAUTH$ HISTGRM$ HIST_HEAD$ FIXED_OBJ$ TAB_STATS$ IND_STATS$ OBJECT_USAGE PARTOBJ$ DEFERRED_STG$ DEPENDENCY$ 
ACCESS$.......................................
...
Рейтинг: 0 / 0
29.05.2017, 09:09
    #39461250
listagg
Bauer,

Код: plsql
1.
2.
3.
4.
SELECT ceil(rownum/10) x_num
     , LISTAGG(table_name, ';') WITHIN GROUP (ORDER BY table_name) tb_name
  FROM all_tables
group by ceil(rownum/10);


если требуется детерминированный по сортировке результат, то предварительно отсортировать и перенумеровать посредством row_number() over()
...
Рейтинг: 0 / 0
29.05.2017, 09:13
    #39461251
Bauer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
listagg
Добрый Э - Эх,

Оно...

Спасибо!
...
Рейтинг: 0 / 0
29.05.2017, 14:38
    #39461604
Alex__kK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
listagg
Написать свою функцию, которая будет возвращать clob
...
Рейтинг: 0 / 0
30.05.2017, 19:53
    #39462651
Ozornitca
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
listagg
конечно, тупое решение, но нельзя ли найти десятое повторение символа ';' и по нему сабстром ?:)

regexp сабстром))))
...
Рейтинг: 0 / 0
31.05.2017, 07:36
    #39462796
MaximaXXL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
listagg
Ozornitca,

Можно, но для этого надо сформировать строку для поиска, а при ее формировании выдает

ORA-01489: result of string concatenation is too long
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / listagg / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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