The Oracle package setup with the "PRAGMA SERIALLY_REUSABLE;" feature is "stateless" in Oracle 11gR2 (release 11.2.0.2 and higher), which means packages can be recompiled without getting ORA-04068 error ("existing state of packages … has been discarded"). The package state gets stored in a small pool in the system global area (SGA), thereby the state of the package persists only for the life of the server call or the session. The benefits of this feature are better memory management and improved scalability. The ceveat is that, procedure in SERIALLY_REUSABLE package cannot be used in a database trigger or in a PL/SQL subprogram invoked by a SQL statement. Packages not using this feature get stored in user global area (UGA) for each user resulting in UGA memory consumption linearly with multiple users thus limiting application scalability. Other features are: Constrainted Datatype - SIMPLE_INTEGER Constrainted Datatype - SIMPLE_FLOAT Dynamic SQL - Execute Immediate CLOB Caching Function Results - Results_Cache Loop Forward With - CONTINUE
17622