Oracle
 sql >> Datenbank >  >> RDS >> Oracle

ORA-04068:Vorhandener Status von Paketen wurde verworfen. ORA-04065:Nicht ausgeführte, geänderte oder gelöschte gespeicherte Prozedur

Die Sitzung, in der das Paket gerade aufgerufen wird, behält diesen Zustand des Pakets bei. Wenn Sie das Paket neu kompilieren, erhalten Sie in dem Moment, in dem das Paket in dieser Sitzung erneut aufgerufen wird, diesen Fehler.

  1. Sie können DBMS_SESSION.RESET_PACKAGE; ausführen um Speicher, Cursor und Paketvariablen freizugeben, nachdem der PL/SQL-Aufruf, der den Aufruf ausgeführt hat, beendet wurde.

  2. Sie könnten alle bestehenden Sitzungen schließen und erneut ausführen.

  3. Sie könnten das Paket SERIALLY_REUSABLE Packages durch Verwendung von PRAGMA SERIALLY_REUSABLE; Aussage. Wenn ein Paket SERIALLY_REUSABLE ist , wird sein Paketstatus in einem Arbeitsbereich in einem kleinen Pool im System Global Area (SGA) gespeichert. Der Paketstatus bleibt nur für die Dauer eines Serveraufrufs bestehen.