我已经分析了实现Java SE(Spring)和Oracle 11g的应用程序代码。在XXXDaoImpl类中,有许多查询写为
select * from PREFIX.TableName
我已经通过Oracle SQL Developer在oracle 11g中创建了一个模式,并成功导入了所有表。 但是当一个应用程序试图调用任何程序时,它调用MYPREFIX extention就可以说
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)
答案 0 :(得分:0)
作为Oracle架构用户可能是PREFIX
和MYPREFIX
,因此在您的方案中,您的应用程序正在访问PREFIX
架构下的表,并且您已创建了新的MYPREFIX
架构。如果是这种情况,您可以通过在PREFIX
:
GRANT SELECT, INSERT, UPDATE, DELETE ON YOUR_TABLE
TO MYPREFIX;