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

Posted

技术标签:

【中文标题】ORA-00942: 表或视图不存在,即使它存在【英文标题】:ORA-00942: table or view does not exist even though it does 【发布时间】:2018-07-25 14:26:17 【问题描述】:

当我尝试从 oracle 数据库中读取时出现此错误:

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

但是,我已经在客户端上使用相同的凭据测试了查询,并且它可以正常工作。可能有什么问题。

在下面找到我的连接设置:

@Bean(name="eJDBCDatasource")
@ConfigurationProperties(prefix = "spring.datasourceexample")
public DataSource eJDBCDatasource()
    return DataSourceBuilder.create().build();


@Bean(name="exampleNmpJDBCTemplate")
public NamedParameterJdbcTemplate exampleNmpJDBCTemplate(@Qualifier("eJDBCDatasource") DataSource eJDBCDatasource)
    return new NamedParameterJdbcTemplate(eJDBCDatasource);

和我的配置:

spring.datasourceexample.url=jdbc:oracle:thin:@//X.X.X.X:1521/EXDB
spring.datasourceexample.username=read
spring.datasourceexample.password=readp
spring.datasourceexample.driverClassName=oracle.jdbc.driver.OracleDriver
spring.datasourceexample.max-active=50
spring.datasourceexample.initial-size=20
spring.datasourceexample.max-idle=5
spring.datasourceexample.min-idle=1
spring.datasourceexample.test-while-idle=true
spring.datasourceexample.testOnBorrow=false
spring.datasourceexample.validationQuery=SELECT 1
spring.datasourceexample.time-between-eviction-runs-millis=5000 
spring.datasourceexample.min-evictable-idle-time-millis=60000
spring.datasourceexample.unreturnedConnectionTimeout=30000
spring.datasourceexample.debugUnreturnedConnectionStackTraces=true
spring.datasourceexample.maxIdleTimeExcessConnections=300

和查询:

@Autowired
NamedParameterJdbcTemplate exampleNmpJDBCTemplate;

public Boolean isExample(String Id) 

    SqlParameterSource param = new MapSqlParameterSource()
            .addValue("id", Id);
    List result = (List) exampleNmpJDBCTemplate.queryForList(this.examplesearchQuery, param);
    return !result.isEmpty();

【问题讨论】:

甲骨文不会说谎。如果你在 sqlplus 中使用相同的用户名登录,会发生什么? 它有效。我已经解决了这个问题。谢谢????????? 【参考方案1】:

解决了问题 我在应用程序中有其他数据源连接。因此我需要添加 @Qualifier 注释。

@Autowired
@Qualifier("exampleNmpJDBCTemplate")
NamedParameterJdbcTemplate exampleNmpJDBCTemplate;

【讨论】:

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

ORA-00942: 表或视图不存在(在单独的 sql 中有效,但在 oracle 函数中无效)

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

异常 ORA-00942: 表或视图不存在 - 使用休眠会话插入现有表时

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

ORA-00942:表或视图不存在 低级错误一例

获取 ORA-00942:在 Java 中使用 Blob 的表或视图不存在