"У меня есть заявление, подобное приведенному ниже, но оно дополнено для выполнения 1000 вызовов
за один раз "
Это очень плохая стратегия программирования. Писать одно и то же несколько раз - запах кода. Каждый раз, когда мы обнаруживаем, что программируем с помощью cut'n'paste, а затем немного редактирования - это время, когда мы должны остановиться и спросить себя: «Хммм, есть ли лучший способ сделать это?»
«Параметры разные для каждого вызова хранимой процедуры»
Да, но параметры должны прийти откуда-то. Предположительно в данный момент вы жестко их кодируете тысячу раз. Тьфу.
Лучшим решением было бы хранить их в таблице. Тогда вы могли бы написать простой цикл. Как это:
for prec in ( select p1, p2 from my_parameters
order by id -- if ordering is important
)
loop
sp_myprocedure(prec.p1, prec.p2);
end loop;
Поскольку вы сохраняете параметры в таблице, у вас может быть столько обращений к этому процессу, сколько вам нужно, и вы не связаны лимитом узла Diana.
Правда, вам придется перенести значения параметров в таблицу, но хранить данные в таблице не сложнее, чем поддерживать жестко закодированные значения в исходном коде.