У меня есть пакет Oracle, который часто пересматривается. Когда я вызываю этот пакет после редактирования пакета, Oracle бросает ORA-04068: существующее состояние пакетов было отброшено. Хотя он работает нормально при последующих вызовах, это раздражает. Есть ли способ избежать этого сообщения, которое бросается на первый вызов пакета, который был скомпилирован.
Я вызываю пакет через WCF/ODP.NET 4.121.1.0, подключенный к Oracle 11G.
Если у вас есть переменные пакета, которые необходимы только для одного вызова, и вам не нужно сохранять значения между вызовами, вы можете использовать SERIALLY_REUSABLE Pragma. Вы можете найти здесь: http://docs.oracle.com/cd/B14117_01/appdev.101/b10807/13_elems046.htm
Если вам нужно отредактировать логику пакета, но типы и имена переменных остаются постоянными, вы можете просто поместить их в другой пакет. Это не битфул, а работает.