Это нормальное поведение для пакетов с состоянием, то есть с переменными тела.Когда пакет скомпилирован, необходимо сбросить существующее состояние, и все сеансы, которые использовали пакет до этого, получают ошибку ORA-04068 (кроме той, которая скомпилировала пакет).
Поскольку у вас есть веб-приложениеЯ предполагаю, что он использует пул соединений, который поддерживает сеанс.Таким образом, все они будут затронуты, если они использовали пакет ранее.
Один из обходных путей - вызвать DBMS_SESSION.RESET_PACKAGE
, который отбрасывает состояние всех пакетов текущего сеанса.Другой способ - проверить, можно ли избавиться от состояния сеанса, что несколько проблематично в сочетании с пулом соединений.