0

我已经分析了应用程序实现 Java SE (Spring) 和 Oracle 11g 的代码。在 XXXDaoImpl 类中有许多查询写为

select * from PREFIX.TableName

我通过 Oracle SQL Developer 在 oracle 11g 中创建了一个模式并成功导入了所有表。但是,当应用程序尝试调用任何程序时,它会调用 MYPREFIX 扩展让我们说

   select * from MYPREFIX.TableName

我想知道如何在 SQL Developer 中更改 MYPREFIX 名称以使代码和新创建的模式彼此相似,以便正确运行应用程序。

我目前有以下错误。

ERROR 30 May 2013 18:06:02,036 [ChangeDeleteMHandler] [ChangeDeleteMHandler]: Error during change/delete msisdn procedure call
org.springframework.jdbc.UncategorizedSQLException: CallableStatementCallback; uncategorized SQLException for SQL [{call TABLENAME.changeM()}]; SQL state [72000]; error code [4063]; ORA-04063: package body "PREFIX.TABLENAME" has errors
ORA-06508: PL/SQL: could not find program unit being called: "PREFIX.TABLENAME"
ORA-06512: at line 1
; nested exception is java.sql.SQLException: ORA-04063: package body "PREFIX.TABLENAME" has errors
ORA-06508: PL/SQL: could not find program unit being called: "PREFIX.TABLENAME"
ORA-06512: at line 1

    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:969)
    at org.springframework.jdbc.core.JdbcTemplate.call(JdbcTemplate.java:1003)
    at org.springframework.jdbc.object.StoredProcedure.execute(StoredProcedure.java:125)
4

1 回答 1

0

很有可能是 Oracle Schema 用户PREFIXMYPREFIX因此在您的场景中,您的应用程序正在访问该PREFIX模式下的表,并且您已经创建了一个新MYPREFIX模式。如果是这种情况,您可以通过在以下命令下运行来授予架构权限PREFIX

GRANT SELECT, INSERT, UPDATE, DELETE ON YOUR_TABLE
TO MYPREFIX;
于 2013-05-30T15:26:44.827 回答