oracle 数据库导入,运行项目报:ORA-00942 表或视图不存在

来源:互联网 发布:js鼠标跟随特效 编辑:程序博客网 时间:2024/05/22 07:55
 

现在做一项目,之前连的别人的机器的数据,后来我把数据导入到本地数据库中运行,出错,如下:
Hibernate: select sum(rdb_alert_0_.EVENT_COUNT) as col_0_0_ from EAPSOFT.NEW_TOPICES rdb_alert_0_
- SQL Error: 942, SQLState: 42000
- ORA-00942: 表或视图不存在

把该SQL语句在PLSQL Develop中运行也出错,把上述语句中的"EAPSOFT."删除,则运行成功;

分析Oracle中的SQL语句可以发现:
1).select sum(rdb_alert_0_.EVENT_COUNT) as col_0_0_ from EAPSOFT.NEW_TOPICES rdb_alert_0_
该语句查询的是用户"EAPSOFT"所拥有的数据,前缀代表的就是某个用户,而在我本地,我没有创建名叫"EAPSOFT"的用户,当然它也没有相关的数据,所以它查询失败。

2).为什么Hibernate会在此语句中加上"EAPSOFT"前缀呢?
分析发现:名叫NEWTOPICES.hbm.xml的文件中,有如下语句:
<hibernate-mapping package="com.eap.biz.domain.NewTopices">
<class name="NewTopices" table="NEW_TOPICES" lazy="false" schema="EAPSOFT">

..............

</class>
</hibernate-mapping>
该文件的书写者在<class>中加了属性schema="EAPSOFT",在oracle中它就表示的某个用户;

3).该问题分析到此结束,主要问题就在于hibernate和Oracle结合使用,有关schema属性的问题。

schema="EAPSOFT"删掉或者改成你当前的用户即可。

原创粉丝点击