powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / result of string concatenation is too long
13 сообщений из 13, страница 1 из 1
result of string concatenation is too long
    #39728002
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, есть sql запрос
Код: sql
1.
where instr(','|| :BinID ||',',','||c.binid||',') > 0



Значение которое передается в :BinID
Код: plsql
1.
50000102,50000051,50000079,50000080,50000081,50000082,50000083,50000084,50000085,50000086,50000087,50000089,50000090,50000093,50000094,50000095,50000097,50000098,50000100,50000101,50000103,50000105,50000119,50000123,50000128,50005191,50005503,50006535,50006591,50006594,50006595,50037629,50058286,50061654,50066417,50069376,50096905,50005184,50142304,50232537,50269197,50461675,50000052,50000058,50000059,50000060,50000061,50000062,50000063,50000064,50000065,50000066,50000070,50000071,50000072,50000073,50000076,50000131,50000154,50000161,50000164,50000169,50000172,50000175,50000186,50000190,50000192,50000193,50000198,50000354,50000361,50000363,50000464,50000769,50000896,50004806,50006572,50057634,50058715,50061355,50064198,50066248,50127096,50000756,50127103,50000053,50000428,50000429,50000431,50000432,50000434,50000439,50000441,50000446,50000451,50000457,50000461,50000480,50000531,50000532,50000534,50000536,50000539,50000552,50000561,50000563,50000564,50000761,50000771,50142280,50000777,50000815,50000822,50000826,50000904,50006579,50006581,50006582,50006583,50006584,50006585,50006587,50007375,50058953,50066114,50096760,50122014,50134873,50135149,50000055,50000202,50000353,50000355,50000357,50000359,50000422,50000426,50000430,50000433,50000435,50000436,50000437,50000755,50000764,50142296,50000780,50000897,50006602,50006603,50006609,50006614,50006615,50006616,50276318,50000056,50000151,50000153,50000155,50000156,50000157,50000158,50000160,50000162,50000163,50000166,50000171,50000173,50000174,50000176,50000178,50000179,50000189,50000194,50000196,50005132,50005142,50005145,50005153,50126170,50005197,50006338,50006548,50006549,50064817,50069070,50101064,50137975,50000057,50000110,50000111,50000116,50000118,50000120,50000121,50000124,50000129,50000130,50000132,50000133,50000135,50000136,50000137,50000138,50000139,50000141,50000142,50000143,50000144,50000146,50000148,50000149,50000150,50000795,50000908,50059650,50059651,50065097,50000749,50000759,50000767,50000773,50126214,50065889,50130103,50000104,50000010,50000270,50103901,50375365,50000271,50000272,50037832,50416433,50416435,50416439,50416446,50519005,50000350,50000371,50000382,50057524,50000566,50002458,50002464,50002465,50125674,50514304,50002477,50002478,50002480,50061605,50116713,50068662,50068700,50006655,50006776,50006780,50007351,50007354,50007356,50007361,50007362,50007368,50007369,50007370,50012649,50122890,50462926,50012699,50038154,50006783,50007372,50007374,50007385,50007386,50007387,50007388,50007389,50007390,50007391,50007392,50007393,50007395,50007397,50007399,50007400,50007401,50007402,50007404,50007405,50007407,50012566,50122955,50462932,50012606,50006786,50007413,50007414,50007415,50007417,50007419,50007422,50007424,50007425,50007426,50007427,50007430,50007432,50007434,50007435,50007438,50012653,50122981,50462944,50012701,50007319,50007322,50007325,50007330,50007332,50007335,50007337,50007349,50007441,50007443,50007450,50007451,50007454,50007457,50007459,50007463,50007465,50007469,50007471,50007472,50007473,50007474,50007476,50007478,50007480,50007486,50007487,50007488,50007489,50007490,50007495,50007497,50007498,50008013,50008014,50008015,50008016,50008038,50008081,50008082,50008083,50008084,50008086,50008087,50008088,50008089,50008094,50008098,50008101,50008106,50008109,50008111,50008112,50008121,50008130,50008135,50008140,50010806,50010809,50010810,50011756,50011916,50012347,50012357,50012372,50352087,50012704,50059965,50062099,50068014,50096452,50125474,50462746,50006656,50006799,50012327,50012414,50006803,50012493,50012638,50006806,50012684,50012819,50006817,50013013,50013465,50007525,50007527,50007565,50007570,50007574,50007976,50007992,50008040,50008047,50008065,50008066,50008120,50008123,50008131,50008367,50008371,50008378,50008384,50008391,50008411,50008419,50008422,50008451,50008456,50008510,50008513,50008515,50008603,50008612,50008617,50008635,50008639,50008656,50008657,50008659,50008661,50008667,50008670,50008682,50009253,50009255,50009258,50009260,5000



из за большого количества данных и возникает ошибка, подскажите способы решений проблемы
...
Рейтинг: 0 / 0
result of string concatenation is too long
    #39728006
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpionвозникает ошибкаПеред вызовом отрежь с конца строки ,5000. На пару запятых этого хватит.
...
Рейтинг: 0 / 0
result of string concatenation is too long
    #39728007
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpion,

1) поменять instr на in (select ...)
2) если всегда 5000____ убрать с :BinID,c.binid 5000

.....
stax
...
Рейтинг: 0 / 0
result of string concatenation is too long
    #39728016
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-,

а если нужно значение находится в конце строки, и я его отрежу, как тогда быть ?
Да и значение не всегда может быть такое большое например такое (50000102,50000051,50000079) и отрезать уже не вариант
...
Рейтинг: 0 / 0
result of string concatenation is too long
    #39728017
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
наверное придется менять логику запроса
...
Рейтинг: 0 / 0
result of string concatenation is too long
    #39728031
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpion-2-,

а если нужно значение находится в конце строки, и я его отрежу, как тогда быть ?

судя с примера последние номера и так отрезают (...,50009260,5000), какая разница кто отрежет

ps
чтоб не дописывать ",", заменить in регуляркой

.....
stax
...
Рейтинг: 0 / 0
result of string concatenation is too long
    #39728044
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написал код для удаления
Код: sql
1.
SUBSTR(:DepID, 1, LENGTH(:DepID)-5)


подскажите как сделать проверку есть в конце "5000" или нету, если нету то и смысла удалять нету
...
Рейтинг: 0 / 0
result of string concatenation is too long
    #39728052
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
where DECODE(LENGTH(:BinID), 4000, instr(','|| SUBSTR(:BinID, 1, LENGTH(:BinID )-4) ||',',','||c.BinID ||','), instr(','|| :BinID ||',',','||c.BinID ||',')) >0



написал так, работает без ошибок
вот только правильный ли такой подход ?
...
Рейтинг: 0 / 0
result of string concatenation is too long
    #39728062
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpionвот только правильный ли такой подход ?
проверьте на длине 3999

зы
имхо
если длина больше 3998 то отрезать надо после последней запятой

.....
stax
...
Рейтинг: 0 / 0
result of string concatenation is too long
    #39728063
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpion,

А отчего не написать так?

Код: plsql
1.
where instr(','|| to_clob(:BinID) ||',',','||c.BinID||',') > 0
...
Рейтинг: 0 / 0
result of string concatenation is too long
    #39728070
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximaXXL,
я так понимаю в исходном примере для c.binid:=5000 instr должна вернуть 0

....
stax
...
Рейтинг: 0 / 0
result of string concatenation is too long
    #39728078
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,

Я так понимаю ему ктото на вход ножницами режет по 4к символов, а ТС дописывает еще 2 и у него не влезает.
по поводу хвоста в ,5000 это явный косяк резальщика, т.к. вероятнее 2 пакетом прилетят ID без первых 4 знаков а это потеря одного ID. Может они одумаются и начнут резать более толково, но даже если упруться в 4к коректные деления то to_clob не позволит упасть. Ну или начнут резать умно (до запятой) перестроив на 3998 знаков, с учетом 2-х зпт которые потом прилепливают
...
Рейтинг: 0 / 0
result of string concatenation is too long
    #39728128
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MaximaXXL,

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


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