ORA-06508 PL/SQL: could not find program unit being called
Cuando buscas este error en internet, encontrarás la siguiente información:
Causa: Se ha realizado una llamada a un procedimiento que no ha podido ser localizado. El programa puede haber sido borrado, modificado, o haberse compilado con errores.
Acción: Chequea que todos los programas referenciados, incluyendo los cuerpos de los paquetes, existen y son válidos.
A veces tenemos muchos objetos que dependen muchos unos de otros. Necesitamos más información para solucionar el problema. Si te encuentras con este error, lo más seguro es que estés utilizando las sentencias SQLCODE y SQLERRM en tu bloque de excepción de código PL/SQL:
BEGIN NULL; EXCEPTION WHEN OTHERS THEN ROLLBACK; INSERT_LOG(SQLCODE, SQLERRM); END; |
No te aconsejo que controles los errores de esta manera. La mejor manera de controlar esto es gracias al paquete DBMS_UTILITY:
BEGIN NULL; EXCEPTION WHEN OTHERS THEN ROLLBACK; INSERT_LOG(SQLCODE, DBMS_UTILITY.FORMAT_ERROR_STACK || '@' || DBMS_UTILITY.FORMAT_CALL_STACK); END; |
Ahora no obtendremos el error ORA-06508. Si no que obtendremos la explicación al mismo:
ORA-04045: errors during recompilation/revalidation OF SIM.PKXXX ORA-04052: error occurred WHEN looking up remote object TCLCM.PRC_XX@ERP_APPS.WORLD @----- PL/SQL Call Stack ----- object line object handle NUMBER name 3dc3a9010 1565 package body SIM.PK_XXX 3d9571de8 3 anonymous block |
Visto aquí
Muchas Gracias por tu aportación con
INSERT_LOG(SQLCODE,
DBMS_UTILITY.FORMAT_ERROR_STACK || ‘@’ ||
DBMS_UTILITY.FORMAT_CALL_STACK); Me ha sido muy valiosa para tener mas detalle sobre las excepciones y especificamente sobre este error ORA-06508 que ya tengo varios dias batallando.