Ho alcuni pacchetti sulla mia istanza di Oracle. Quando ricreavo il mio database da zero, ottengo zero oggetti non validi e nessun avviso da parte di Liquibase.Oracle 10g che afferma che un corpo del pacchetto ha errori quando non è
Poi, quando chiamo un metodo di pacchetto, in questo modo:
new SimpleJdbcCall(jdbcTemplate).withCatalogName(packageName).withProcedureName(storedProcedureName).execute(parameterMap);
Mi dà il seguente errore:
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
Controllo per gli oggetti non validi gira di nuovo a nulla. La compilazione di CALENDAR_MANAGEMENT si completa di nuovo normalmente senza errori.
Ho provato a ricompilare uno schema completo, ma non ha funzionato.
Quando lo chiamo da SQLDeveloper, funziona normalmente.
Lo stai usando usando lo stesso account in Java e SQLDeveloper? –
Sì. Entrambi i conti sono uguali. Per garantire che non ci fossero differenze, ho effettuato il login come sistema e ho eseguito anche il pacchetto 'show errors ETPDEV.CALENDAR_MANAGEMENT'. Nessun errore –
Hai detto che entrambi gli account sono uguali ma stanno entrambi effettuando l'accesso esattamente come lo stesso utente? Questo sembra un classico problema di permessi. – Ollie