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


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



Как увеличить уровень каскадирования? В общих параметрах БД полазил - не нашел %(
...
Рейтинг: 0 / 0
05.07.2006, 17:41
    #33833710
Dmitry Y.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
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
05.07.2006, 18:37
    #33833911
Nikolay Kulikov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
А зачем?
...
Рейтинг: 0 / 0
07.07.2006, 13:50
    #33838335
Dmitry Y.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
Вызов такой процедуры обрабатывает запись определенным образом. Но результат обработки записи может повлечь необходимость обработать другую запись или записи. На поверхности лежало решение рекурсивного вызова процедуры. НО.... оказывается есть ограничение на рекурсию, всего 16 вызовов. Это неприемлимо. Придется искать другое решение. А жаль %(
...
Рейтинг: 0 / 0
07.07.2006, 13:52
    #33838344
Nikolay Kulikov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
А рекурсивным запросом или функциями обойтись никак?
Кстати в viper ограничение 32
...
Рейтинг: 0 / 0
07.07.2006, 13:58
    #33838375
Dmitry Y.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
Я не понимаю как тут можно применить рекурсивный запрос.

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

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

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


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


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

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


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