Oracle 11g架构选择

时间:2013-05-30 15:07:59

标签: java spring oracle11g

我已经分析了实现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)

1 个答案:

答案 0 :(得分:0)

作为Oracle架构用户可能是PREFIXMYPREFIX,因此在您的方案中,您的应用程序正在访问PREFIX架构下的表,并且您已创建了新的MYPREFIX架构。如果是这种情况,您可以通过在PREFIX

下运行来为您的架构授予权限
GRANT SELECT, INSERT, UPDATE, DELETE ON YOUR_TABLE
TO MYPREFIX;