次のようなスタックの最後のエラーのみを報告していると思われます。
ORA-04068: existing state of packages has been discarded
ORA-04061: existing state of package body "schema.package" has been invalidated
ORA-04065: not executed, altered or dropped package body "schema.package"
ORA-06508: PL/SQL: could not find program unit being called: "schema.package"
もしそうなら、それはあなたのパッケージがステートフルだからです:
パッケージが (仕様または本体のいずれかで) 宣言する変数、定数、およびカーソルの値は、そのパッケージの状態を構成します。PL/SQL パッケージで少なくとも 1 つの変数、定数またはカーソルが宣言されている場合、そのパッケージはステートフルです。それ以外の場合は、ステートレスです。
再コンパイルすると、状態が失われます。
インスタンス化されたステートフル・パッケージの本体が(「ALTER PACKAGE文」を使用して明示的に、または暗黙的に)再コンパイルされた場合、パッケージ内のサブプログラムが次に起動されると、Oracle Databaseは既存のパッケージ状態を破棄し、例外ORAを発生させます。 -04068.
PL/SQLが例外を発生させた後、パッケージへの参照により、Oracle Databaseはパッケージを再インスタンス化し、パッケージを再初期化します...
パッケージに状態がある場合、これを避けることはできません。ただし、パッケージがステートフルであることが本当に必要になることはかなりまれだと思います。そのため、パッケージ内で関数またはプロシージャの外で宣言したものを再検討して、そのレベルで本当に必要かどうかを確認する必要があります。ただし、10g を使用しているため、変数やカーソルだけでなく、定数も含まれます。
ただし、引用されたドキュメントの最後の段落は、同じセッションで次にパッケージを参照するときにエラーが発生せず、通常どおりに動作することを意味します (再コンパイルするまで)。