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

时间:2018-07-25 14:26:17

标签: java oracle spring-boot jdbc

当我尝试从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();
}

1 个答案:

答案 0 :(得分:0)

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

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