После альтера в кеше находится две версии процедуры, если на старую были ссылки в кеше. В этом случае старые запросы, есс-но, будут работать со старой версией процедуры, а новые подхватывать новую версию. Если же не было ссылок на момент альтера, то старая версия удаляется из кеша и остается только новая.


Лично для меня это никак не проясняет вопрос почему после возникновения ситуации с двумя версиями процедуры:

1) Не помогает вызов процедуры в новой транзакции
2) Не помогает перекомпилляция процедуры


Вот я вот щас дома словил описанную ситуацию, открыл в редакторе процедуру В - текст в ней изменённый. Беру и в этом же соединении перекомпиллирую её ещё раз и сновы вызываю и опять вызывается старая версия. Как-то это очень и очень странно.

У тебя это воспроизводится или нет?

Ответить