sql >> Database >  >> RDS >> Oracle

ORA-04068:bestaande staat van pakketten is verwijderd ORA-04065:niet uitgevoerd, gewijzigd of verwijderd opgeslagen procedure

De sessie waarin het pakket momenteel wordt aangeroepen, behoudt die status van het pakket. Als u het pakket opnieuw compileert, krijgt u deze fout op het moment dat het pakket opnieuw wordt aangeroepen in die sessie.

  1. U kunt DBMS_SESSION.RESET_PACKAGE; uitvoeren om het geheugen, de cursors en de pakketvariabelen vrij te maken na de PL/SQL-aanroep die ervoor zorgde dat de aanroep werd uitgevoerd.

  2. U kunt alle bestaande sessies sluiten en opnieuw uitvoeren.

  3. Je zou het pakket kunnen maken, SERIALLY_REUSABLE-pakketten door PRAGMA SERIALLY_REUSABLE; . te gebruiken uitspraak. Als een pakket SERIALLY_REUSABLE . is , wordt de pakketstatus opgeslagen in een werkgebied in een kleine pool in het globale systeemgebied (SGA). De pakketstatus blijft alleen bestaan ​​voor de duur van een serveroproep.




  1. Is er een mechanisme om invoegen in tabel uit te schakelen?

  2. SELECT INTO OUTFILE gebruiken in MySQL

  3. Hiaten in mysql-tabelrij-ID repareren nadat we er enkele hebben verwijderd

  4. SQL Server 2008 - Wordt een trigger uitgevoerd met dezelfde machtigingen als de login/gebruiker?