Tengo algunos paquetes en mi instancia de Oracle. Cuando recreé mi base de datos desde cero, obtengo cero objetos no válidos y ninguna advertencia de liquibase.Oracle 10g afirmando que un cuerpo de paquete tiene errores cuando no lo hace
Entonces, cuando llamo a un método paquete, así:
new SimpleJdbcCall(jdbcTemplate).withCatalogName(packageName).withProcedureName(storedProcedureName).execute(parameterMap);
Me da el siguiente error:
org.springframework.jdbc.UncategorizedSQLException: CallableStatementCallback; uncategorized SQLException for SQL [{call CALENDAR_MANAGEMENT.CREATE_SUMMARIES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)}]; SQL state [72000]; error code [4063]; ORA-04063: package body "ETPDEV.CALENDAR_MANAGEMENT" has errors
ORA-06508: PL/SQL: could not find program unit being called: "ETPDEV.CALENDAR_MANAGEMENT"
ORA-06512: at line 1;
nested exception is java.sql.SQLException: ORA-04063: package body "ETPDEV.CALENDAR_MANAGEMENT" has errors
ORA-06508: PL/SQL: could not find program unit being called: "ETPDEV.CALENDAR_MANAGEMENT"
ORA-06512: at line 1
Caused by: java.sql.SQLException: ORA-04063: package body "ETPDEV.CALENDAR_MANAGEMENT" has errors
ORA-06508: PL/SQL: could not find program unit being called: "ETPDEV.CALENDAR_MANAGEMENT"
ORA-06512: at line 1
Comprobación de objetos no válidos se vuelve de nuevo a nada. La compilación de CALENDAR_MANAGEMENT se completa normalmente sin errores.
He intentado una recompilación de esquema completo, pero eso no funcionó.
Cuando lo llamo desde SQLDeveloper, funciona normalmente.
¿Lo está ejecutando usando la misma cuenta en Java y SQLDeveloper? –
Sí. Ambas cuentas son iguales. Para asegurarme de que no había diferencia, inicié sesión como sistema y ejecuté el paquete 'show errors ETPDEV.CALENDAR_MANAGEMENT' también. Sin errores. –
Usted dice que ambas cuentas son las mismas pero ¿ambas inician sesión exactamente como el mismo usuario? Esto parece un problema de permisos clásico. – Ollie