Datamart Extraction job throws 'ORA-06508: PL/SQL: could not find program unit being called' error

Document ID : KB000020601
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

When running the Datamart Extraction job, the following error occurs in both the bg-ca.log file and in sql query tool when running the stored procedure directly against the database: 'ORA-06508: PL/SQL: could not find program unit being called'.

The full error message is:

PMD application error java.sql.SQLException: [CA Clarity][Oracle JDBCDriver][Oracle]
ORA-20000: Error in NBI_EXTRACT_SP - Calling NBI_EXTR_RF_SP:
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at "CLARITYPROD.NBI_EXTRACT_SP", line 375
ORA-06512: at line 1

Solution:

This error is usually caused when the shared memory is too low.

If the shared pool is out of memory,

  1. Use the DBMS_SHARED_POOL package to pin large packages
  2. Reduce your use of shared memory
  3. Or increase the amount of available shared memory by increasing the value of the initialization parameters SHARED_POOL_RESERVED_SIZE and SHARED_POOL_SIZE
  4. If the large pool is out of memory, increase the initialization parameter LARGE_POOL_SIZE. Check with your Database Administrator (DBA).

If the error occurs because of invalid database objects, then the resolution is to have the DBA check for invalid database objects in the database. If any invalid database objects are found, the DBA can recompile the objects to make them valid again.

Use the following Oracle command:

EXEC DBMS_UTILITY.compile_schema(schema => 'CLARITYPROD')

Note: Where CLARITYPROD is the schema name of the specific instance for the customer'sĀ CA PPMĀ database.