Oracle8i has introduced database-level and system-level triggers. They can track events in the database such as logon/logoff from a schema, startup and shutdown of a database, and response to a server error. We will use these triggers to cache the frequently used packages in the memory during database startup.
Before Oracle8i, you had to set up a script to run after the database started. Now you can use the STARTUP trigger to load the packages into the shared memory. The following is a very simple code to do so:
create or replace trigger load_package after startup on database begin DBMS_SHARED_POOL.KEEP(