Я создал процедуру (p1).Эта процедура открывает курсор (c1).И я вызываю другую процедуру (p2) в цикле для каждой строки курсора.Процедура занимает от 22 до 120 секунд.В процедуре P1 я открываю, закрываю и освобождаю курсор c1.Это работает нормально.
Теперь процедура P1 имеет вход.Итак, я написал другую процедуру (p3) с курсором (c2).Курсор c2 получает ввод для p1.Теперь число строк для C2 равно 1403. Поэтому я звоню P1, 1403 раза из P3.И это создает ошибку:
Ошибка: курсор, пытающийся открыть C1, уже открыт.
Я понимаю, что сервер Sql пытается запустить P1 одновременно для многих строк в C2,А так как С1 уже открыт, значит, приходит ошибка.
Любая идея, как я могу ограничить P3 для выполнения P1 по одному.