ORA-06508: PL/SQL: could not find program unit being calledAll database objects are compiled, and the program unit that 'cannot be found' exists on the same database as a public procedure in a package. The problem is intermittent, and if I exit the calling application (32-bit Windows app) and start it again, then the problem no longer exists for some amount of time... Can you shed some light on this?
There are a couple of problems that could be causing the ORA-6508 error. Normally, this error message is issued in conjunction with other error messages. So try to find out if you have other error messages. This can lead you to your solution.
Another cause is that your package or procedure needs a dependant object which has become invalid. Compiling the dependent object and this object can fix the problem. DDL statements against the dependent object are the leading cause of the INVALID status.
Just to clarify, make sure that you specify the object in question with the SCHEMA-DOT notation, i.e. preceed the object name with "username.".
For More Information
- Dozens more answers to tough Oracle questions from Brian Peasland are available.
- The Best Oracle Web Links: tips, tutorials, scripts, and more.
- Have an Oracle or SQL tip to offer your fellow DBAs and developers? The best tips submitted will receive a cool prize. Submit your tip today!
- Ask your technical Oracle and SQL questions -- or help out your peers by answering them -- in our live discussion forums.
- Ask the Experts yourself: Our PL/SQL, database administration and data warehousing gurus are waiting to answer your toughest questions.
This was first published in July 2003