欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

java执行sql列名无效_嵌套异常是java.sql.SQLException:无效的列名ORACLE

发布时间:2023/12/10 数据库 32 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java执行sql列名无效_嵌套异常是java.sql.SQLException:无效的列名ORACLE 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

我尝试在

Java中使用JdbcTemplate执行以下oracle查询:

select RESOURCE_ID

from REPRO_PRINTING_JOB

where (USER_ID=? and PRINTING_CENTER_ID=?)

group by RESOURCE_ID

union all

select RESOURCE_ID

from REPRO_PRINTING_JOB_OLD

where (USER_ID=? and PRINTING_CENTER_ID=? and STATE='CM')

group by RESOURCE_ID

该查询在oracle查询浏览器中完美运行,但在java执行期间无效.可能是这个问题的根源是什么?我听说过一些关于Jdbc无法处理区分大小写的事情.这是真的?

添加JAVA代码(已更正):

我使用getStatement()调用查询,该调用从外部源(属性文件)检索查询,如下所示:

public List getPrintingJobsByCreatedUserId(String createdUserId, String userId) {

if(log.isDebugEnabled()) {

log.debug("getReportItemsByUserId(" + createdUserId + "," + userId + ")");

}

try {

System.out.println("getPrintingJobsByResourceId : createdUserId :"+createdUserId+",userId : "+userId);

return getJdbcTemplate().query(getStatement("gen.report.userid"),

new Object[]{createdUserId, userId, createdUserId, userId},

new PrintingJobMapper());

} catch (DataAccessException ex) {

log.error("Error executing query: " + ex.getClass() + ":" + ex.getMessage());

return null;

}

}

最佳答案 您收到此错误的原因是因为它是来自JDBC驱动程序或java.sql API的错误,而不是来自数据库的错误.请注意异常消息中缺少ORA-XXXXX.如果它包含,那么它将与语法,无效名称或在数据库服务器端出错的东西有关.

对于与SQL api相关的任何内容,抛出SQLExceptions,而不仅仅是通过连接发送语句时发生的错误…在这种情况下,查询实际上可能正确运行但结果集API正在给出你的错误(rs.getLong(“blah”),你的选择中不存在列“blah”)导致问题.

创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖

总结

以上是生活随笔为你收集整理的java执行sql列名无效_嵌套异常是java.sql.SQLException:无效的列名ORACLE的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。