powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
16 сообщений из 16, страница 1 из 1
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
    #33833656
Dmitry Y.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
После 50 (или около того) рекурсивных вызов процедуры выдает ошибку:


The activation of "DB2.CART2_CF2" of type "PROCEDURE " would exceed the
maximum level of indirect SQL cascading. SQLSTATE=54038



Как увеличить уровень каскадирования? В общих параметрах БД полазил - не нашел %(
...
Рейтинг: 0 / 0
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
    #33833710
Dmitry Y.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Explanation:
Cascading of indirect SQL occurs whn a trigger, user-defined function, or stored procedure invokes another trigger, user-defined function, or stored procedure which in turn invokes another. The activation of some of the triggers in this chain might be due to the enforcement of referntial constraint delete rules. The depth of this cascading is limited to 16.




16 - это несерьезно.
...
Рейтинг: 0 / 0
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
    #33833911
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем?
...
Рейтинг: 0 / 0
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
    #33838335
Dmitry Y.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вызов такой процедуры обрабатывает запись определенным образом. Но результат обработки записи может повлечь необходимость обработать другую запись или записи. На поверхности лежало решение рекурсивного вызова процедуры. НО.... оказывается есть ограничение на рекурсию, всего 16 вызовов. Это неприемлимо. Придется искать другое решение. А жаль %(
...
Рейтинг: 0 / 0
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
    #33838344
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А рекурсивным запросом или функциями обойтись никак?
Кстати в viper ограничение 32
...
Рейтинг: 0 / 0
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
    #33838375
Dmitry Y.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не понимаю как тут можно применить рекурсивный запрос.

Например один из вариантов обработки - порождает новую запись, которую тоже надо обработать. И так может быть неопределенное кол-во раз, пока не достигается некое условие.
...
Рейтинг: 0 / 0
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
    #33838586
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Y.Я не понимаю как тут можно применить рекурсивный запрос.

Например один из вариантов обработки - порождает новую запись, которую тоже надо обработать. И так может быть неопределенное кол-во раз, пока не достигается некое условие.

Вообще-то это просто цикл... Вы всегда циклы рекурсиями реализуете?...
...
Рейтинг: 0 / 0
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
    #33838631
Dmitry Y.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не вижу тут цикла. Откиньте последнюю фразу, она видимо вводит в заблужедение:


Например один из вариантов обработки - порождает новую запись, которую тоже надо обработать.
...
Рейтинг: 0 / 0
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
    #33838938
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К окулисту!...
...
Рейтинг: 0 / 0
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
    #33839112
Dmitry Y.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мде... как обычно. Как насчет поглубже вникнуть?
...
Рейтинг: 0 / 0
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
    #33839225
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но ведь и правда, обычно рекурсию можно заменить циклом (кажется даже, они теоретически эквивалентны).
...
Рейтинг: 0 / 0
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
    #33839246
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правда, примеры конверсии рекурсии в цикл, которые я видел, обычно предполагали использование безразмерного массива (в DB2 это проэмулируется временной таблицей), что фактически эмулировало стек вызовов (разумеется, в данном контексте в стеке нас интересуют только локальные переменные, а не адреса возврата) при рекурсии.
...
Рейтинг: 0 / 0
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
    #33839247
Dmitry Y.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В принципе да. Но рекурсия все таки не совсем цикл. Кто нибудь деревья циклами обрабатывает?
...
Рейтинг: 0 / 0
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
    #33839254
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё непонятно, что есть "обработать" и что в итоге должно получиться. Быть может, хватит простого рекурсивного запроса на выборку, типа описанных в кулинарной книжке.
...
Рейтинг: 0 / 0
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
    #33839296
Dmitry Y.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обработка - выборка+изменения ряда записей в разных таблицах+вызовы других процедур в том числе, которые могут вызвать эту же обработку+всевозможная логика.


Вот сижу и программой верхнего уровня обхожу рекурсию. Тоскливо.
...
Рейтинг: 0 / 0
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
    #33839501
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроме эмуляции рекурсии циклом, о которой я говорил, интересно подумать над написанием кода не на SQL PL, а на каком-то другом языке. Например, если писать SP на Java, то ведь одну SP на Java из другой SP на Java можно вызвать не только CALL, но и просто позвать её по-Java'овски, и ограничения в 16 не будет.

Хотя я прежде всего попытался бы изменить порядок обработки. Чтобы сперва получить выборку рекурсивным SQL-запросом, а потом уже, используя её, производить где-то какие-то изменения.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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