powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-01489: result of string concatenation is too long
7 сообщений из 7, страница 1 из 1
ORA-01489: result of string concatenation is too long
    #39956488
Фотография Frequency
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите пжт как обойти данную ошибку ?

в LISTAGG нужны все данные !
...
Рейтинг: 0 / 0
ORA-01489: result of string concatenation is too long
    #39956520
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frequency
Скажите пжт как обойти данную ошибку ?

в LISTAGG нужны все данные !


XMLAGG:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
select  substr(xmlcast(xmlagg(xmlelement(last_name,',' || last_name) order by last_name) as clob),2) list
  from  hr.employees
/

LIST
--------------------------------------------------------------------------------
Abel,Ande,Atkinson,Austin,Baer,Baida,Banda,Bates,Bell,Bernstein,Bissot,Bloom,Bul
l,Cabrio,Cambrault,Cambrault,Chen,Chung,Colmenares,Davies,De Haan,Dellinger,Dill
y,Doran,Ernst,Errazuriz,Everett,Faviet,Fay,Feeney,Fleaur,Fox,Fripp,Gates,Gee,Geo
ni,Gietz,Grant,Grant,Greenberg,Greene,Hall,Hartstein,Higgins,Himuro,Hunold,Hutto
n,Johnson,Jones,Kaufling,Khoo,King,King,Kochhar,Kumar,Ladwig,Landry,Lee,Livingst
on,Lorentz,Mallin,Markle,Marlow,Marvins,Matos,Mavris,McCain,McEwen,Mikkilineni,M
ourgos,Nayer,OConnell,Olsen,Olson,Ozer,Partners,Pataballa,Patel,Perkins,Philtank
er,Popp,Rajs,Raphaely,Rogers,Russell,Sarchand,Sciarra,Seo,Sewall,Smith,Smith,Sti
les,Sullivan,Sully,Taylor,Taylor,Tobias,Tucker,Tuvault,Urman,Vargas,Vishney,Voll
man,Walsh,Weiss,Whalen,Zlotkey


SQL>



SY.
...
Рейтинг: 0 / 0
ORA-01489: result of string concatenation is too long
    #39956521
Фотография AlexFF__|
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frequency,

Опять кто-то хочет впихнуть невпихуемое...

Если что-то не лезет куда-то, то есть 3 варианта:
1. Расширить "куда-то" : max_string_size=extended
2. Обрезать "что-то" : on overflow truncate
3. Сменить тип "куда-то" : clob, xmlagg, UDF
...
Рейтинг: 0 / 0
ORA-01489: result of string concatenation is too long
    #39956534
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexFF__|,

Есть и 4-й, самый важный, вариант.

4. Подумать, а действительно ли оно нужно в ТАКОМ виде? Потому как (в данном случае) перечисление списком множества коротких (или немножества длинных) строк имеет мало смысла (как для выдачи напрямую юзеру, так и для внутренней обработки). Всегда можно обойтись без такого.
...
Рейтинг: 0 / 0
ORA-01489: result of string concatenation is too long
    #39956537
Фотография Frequency
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за быстрый ответ )))
...
Рейтинг: 0 / 0
ORA-01489: result of string concatenation is too long
    #39956559
Фотография Frequency
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexFF__|
Frequency,

Опять кто-то хочет впихнуть невпихуемое...

Если что-то не лезет куда-то, то есть 3 варианта:
1. Расширить "куда-то" : max_string_size=extended
2. Обрезать "что-то" : on overflow truncate
3. Сменить тип "куда-то" : clob, xmlagg, UDF



Кстати ON OVERFLOW TRUNCATE в 12 версии не катит вроде да ?

Код: plsql
1.
2.
3.
4.
5.
6.
SELECT deptno, LISTAGG(ename, ',' ON OVERFLOW TRUNCATE '~~~') WITHIN GROUP (ORDER BY ename) AS employees
FROM   emp
       CROSS JOIN (SELECT level FROM dual CONNECT BY level <= 1000)
WHERE  deptno = 30
GROUP BY deptno
ORDER BY deptno;




Написал но не принял
Код: plsql
1.
ON OVERFLOW TRUNCATE
...
Рейтинг: 0 / 0
ORA-01489: result of string concatenation is too long
    #39956566
Фотография AlexFF__|
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frequency,

Release 12.2
Неужели тяжело детали в доке посмотреть?
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/LISTAGG.html#GUID-B6E50D8E-F467-425B-9436-F7F8BF38D466
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-01489: result of string concatenation is too long
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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