7
私のOracleインスタンスにはいくつかのパッケージがあります。データベースをゼロから再作成すると、無効なオブジェクトがゼロになり、liquibaseからの警告は表示されません。その後Oracle 10gでは、パッケージ本体にエラーがあると主張しています。
、私はパッケージメソッドを呼び出し、そのよう:
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から呼び出すと、正常に動作します。
JavaとSQLDeveloperの同じアカウントを使用して実行していますか? –
はい。両方のアカウントは同じです。違いがないように、私はシステムとしてログインし、 'show errors package ETPDEV.CALENDAR_MANAGEMENT'も実行しました。エラーはありません。 –
あなたは両方のアカウントが同じだと言っていますが、どちらも同じユーザーとしてログインしていますか?これは古典的な権限の問題のようです。 – Ollie