Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
|
|||
|---|---|---|---|
|
#18+
После 50 (или около того) рекурсивных вызов процедуры выдает ошибку: The activation of "DB2.CART2_CF2" of type "PROCEDURE " would exceed the maximum level of indirect SQL cascading. SQLSTATE=54038 Как увеличить уровень каскадирования? В общих параметрах БД полазил - не нашел %( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 17:25 |
|
||
|
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
|
|||
|---|---|---|---|
|
#18+
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 - это несерьезно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 17:41 |
|
||
|
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
|
|||
|---|---|---|---|
|
#18+
А зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 18:37 |
|
||
|
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
|
|||
|---|---|---|---|
|
#18+
Вызов такой процедуры обрабатывает запись определенным образом. Но результат обработки записи может повлечь необходимость обработать другую запись или записи. На поверхности лежало решение рекурсивного вызова процедуры. НО.... оказывается есть ограничение на рекурсию, всего 16 вызовов. Это неприемлимо. Придется искать другое решение. А жаль %( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2006, 13:50 |
|
||
|
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
|
|||
|---|---|---|---|
|
#18+
А рекурсивным запросом или функциями обойтись никак? Кстати в viper ограничение 32 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2006, 13:52 |
|
||
|
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
|
|||
|---|---|---|---|
|
#18+
Я не понимаю как тут можно применить рекурсивный запрос. Например один из вариантов обработки - порождает новую запись, которую тоже надо обработать. И так может быть неопределенное кол-во раз, пока не достигается некое условие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2006, 13:58 |
|
||
|
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
|
|||
|---|---|---|---|
|
#18+
Dmitry Y.Я не понимаю как тут можно применить рекурсивный запрос. Например один из вариантов обработки - порождает новую запись, которую тоже надо обработать. И так может быть неопределенное кол-во раз, пока не достигается некое условие. Вообще-то это просто цикл... Вы всегда циклы рекурсиями реализуете?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2006, 14:46 |
|
||
|
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
|
|||
|---|---|---|---|
|
#18+
Не вижу тут цикла. Откиньте последнюю фразу, она видимо вводит в заблужедение: Например один из вариантов обработки - порождает новую запись, которую тоже надо обработать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2006, 15:02 |
|
||
|
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
|
|||
|---|---|---|---|
|
#18+
К окулисту!... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2006, 16:17 |
|
||
|
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
|
|||
|---|---|---|---|
|
#18+
Мде... как обычно. Как насчет поглубже вникнуть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2006, 16:52 |
|
||
|
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
|
|||
|---|---|---|---|
|
#18+
Но ведь и правда, обычно рекурсию можно заменить циклом (кажется даже, они теоретически эквивалентны). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2006, 17:19 |
|
||
|
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
|
|||
|---|---|---|---|
|
#18+
Правда, примеры конверсии рекурсии в цикл, которые я видел, обычно предполагали использование безразмерного массива (в DB2 это проэмулируется временной таблицей), что фактически эмулировало стек вызовов (разумеется, в данном контексте в стеке нас интересуют только локальные переменные, а не адреса возврата) при рекурсии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2006, 17:24 |
|
||
|
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
|
|||
|---|---|---|---|
|
#18+
В принципе да. Но рекурсия все таки не совсем цикл. Кто нибудь деревья циклами обрабатывает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2006, 17:24 |
|
||
|
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
|
|||
|---|---|---|---|
|
#18+
Ещё непонятно, что есть "обработать" и что в итоге должно получиться. Быть может, хватит простого рекурсивного запроса на выборку, типа описанных в кулинарной книжке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2006, 17:26 |
|
||
|
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
|
|||
|---|---|---|---|
|
#18+
Обработка - выборка+изменения ряда записей в разных таблицах+вызовы других процедур в том числе, которые могут вызвать эту же обработку+всевозможная логика. Вот сижу и программой верхнего уровня обхожу рекурсию. Тоскливо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2006, 17:36 |
|
||
|
Рекурсивный вызов процедуры и exceed the maximum level of indirect SQL cascading
|
|||
|---|---|---|---|
|
#18+
Кроме эмуляции рекурсии циклом, о которой я говорил, интересно подумать над написанием кода не на SQL PL, а на каком-то другом языке. Например, если писать SP на Java, то ведь одну SP на Java из другой SP на Java можно вызвать не только CALL, но и просто позвать её по-Java'овски, и ограничения в 16 не будет. Хотя я прежде всего попытался бы изменить порядок обработки. Чтобы сперва получить выборку рекурсивным SQL-запросом, а потом уже, используя её, производить где-то какие-то изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2006, 18:37 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=33838335&tid=1605247]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 222ms |
| total: | 388ms |

| 0 / 0 |
