Recompiling PL/SQL


If you're using multiple PL/SQL engines (for example, using PL/SQL in Oracle Forms and concurrently using server-based PL/SQL routines), then the database needs to know when changes have occurred on the remote node.

The 'remote_dependencies_mode' parameter is designed to assist with this. In earlier versions of Oracle, timestamps were used to identify when objects had changed, and signatures can be used from 7.2 onwards. However, there are some issues with using signatures - refer to the Application Developers guide for more detail.

You can recompile PL/SQL objects without altering the timestamp using some undocumented syntax (that is used in export and import, so I doubt it will disappear anytime soon).

alter procedure MY_PROCEDURE compile timestamp 'xxx';

where xxx is the timestamp from the USER_OBJECTS view.