表或视图不存在

Posted

技术标签:

【中文标题】表或视图不存在【英文标题】:table or view does not exist 【发布时间】:2016-05-18 15:01:33 【问题描述】:

使用mybatis进行数据库查询和

抛出以下错误,

### Error querying database.  Cause: java.sql.SQLException: ORA-00942: table or view does not exist
### The error may exist in com/pulse/jdbcservices/cob/pulset24user/PulseT24UserMapper.java (best guess)
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT userid,username,classification,attributes from PULSET24USER
### Cause: java.sql.SQLException: ORA-00942: table or view does not exist

而我的映射器类代码是

@Select("SELECT userid,username,classification,attributes from PULSET24USER")
public List<PulseT24User> getAllRecords();

请给我任何解决这个问题的方法

【问题讨论】:

您检查过数据库是否存在 PULSET24USER 表吗?如果您在数据库客户端中运行查询会发生什么? 检查表 PULSET24USER 是否存在于您的代码连接到的 db 模式中,或者该表的同义词是否存在。确保 db 用户对该表具有 select 权限。如果某些条款对您来说是双重荷兰语,请让您的 dba 或同事为您提供帮助。 你要连接什么数据库。 【参考方案1】:

您可能错过了为视图或表 PULSET24USER 设置正确的权限。请同时检查拼写是否正确。

【讨论】:

SQL 开发人员中的相同查询工作 ...请重新检查您是否连接到正确的数据库实例。 是的,我已经连接到正确的数据库,并且其他查询在同一个数据库中成功执行,但在不同的表中【参考方案2】:

1- 验证您的表是否存在于 SQL Developerper 中(可以通过简单的选择...)多种方式来做到这一点。

select * from PULSET24USER;

2- 我怀疑您在 SQL Developper 中使用的用户与 Java 程序中的用户不同,然后错误是由缺少同义词/模式名称引起的。

来自 ora-code 网站:

ORA-00942: 表或视图不存在 原因:输入的表或视图不存在,使用了此处不允许的同义词,或者在需要表的地方引用了视图。通过查询数据字典可以列出现有的用户表和视图。可能需要某些特权才能访问该表。如果应用程序返回此消息,则表明应用程序尝试访问的表在数据库中不存在,或者应用程序无权访问它。 行动:检查以下各项: 表或视图名称的拼写。 在需要表格的地方没有指定视图。 存在现有的表或视图名称。 如果需要创建表或者需要用户或应用程序权限来访问表,请联系数据库管理员。

此外,如果尝试访问另一个模式中的表或视图,请 确定引用了正确的模式并且访问了对象 被授予。

希望对你有所帮助。

【讨论】:

以上是关于表或视图不存在的主要内容,如果未能解决你的问题,请参考以下文章

ORA-00942: 表或视图不存在,即使它存在

表或视图不存在

Oracle ORA-00942:表或视图存在时不存在 [重复]

ORA-00942: 表或视图不存在解决方法

SQL 错误:ORA-00942 表或视图不存在

ORA-00942: 使用 iBatis 的表或视图不存在