表或视图不存在
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: 表或视图不存在 原因:输入的表或视图不存在,使用了此处不允许的同义词,或者在需要表的地方引用了视图。通过查询数据字典可以列出现有的用户表和视图。可能需要某些特权才能访问该表。如果应用程序返回此消息,则表明应用程序尝试访问的表在数据库中不存在,或者应用程序无权访问它。 行动:检查以下各项: 表或视图名称的拼写。 在需要表格的地方没有指定视图。 存在现有的表或视图名称。 如果需要创建表或者需要用户或应用程序权限来访问表,请联系数据库管理员。
此外,如果尝试访问另一个模式中的表或视图,请 确定引用了正确的模式并且访问了对象 被授予。
希望对你有所帮助。
【讨论】:
以上是关于表或视图不存在的主要内容,如果未能解决你的问题,请参考以下文章