我的 oracle 实例上有几个包。当我从头开始重新创建数据库时,我得到零个无效对象,并且没有来自 liquibase 的警告。
然后,当我调用包方法时,如下所示:
new SimpleJdbcCall(jdbcTemplate).withCatalogName(packageName).withProcedureName(storedProcedureName).execute(parameterMap);
它给了我以下错误:
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
再次检查无效对象一无所获。再次编译 CALENDAR_MANAGEMENT 正常完成,没有错误。
我尝试了完整的架构重新编译,但没有奏效。
当我从 SQLDeveloper 调用它时,它可以正常工作。