【问题标题】:sql query returning 0 rowssql查询返回0行
【发布时间】:2017-12-01 19:28:30
【问题描述】:

我有这个运行良好的 sql 查询,在 sql developer 上运行时返回 3 行,但是当我在 jsp 页面中执行相同的查询时,它可以正常执行但不返回任何行。数据库连接没有问题,因为所有其他查询都可以正常工作。
服务器 - Tomcat 7
数据库 - Oracle 10g

查询 -

select slno from lbk_tab where log_date = to_date('18-06-2017','DD-MM-YYYY')

jsp-

String dtol = "select slno from lbk_tab where log_date = to_date('18-06-2017','DD-MM-YYYY')";
Statement st = connection.createStatement();
ResultSet resultSet = st.executeQuery(dtol);
if (resultSet.next()) {
     out.print(Integer.parseInt(resultSet.getString(1)));
}

表 lbk_tab 具有列 slno 和 log_date。

我该如何解决这个问题?

【问题讨论】:

  • log_date 是日期还是时间戳?
  • @GordonLinoff 抱歉,一个错字已修复
  • @Abihabi87 log_date 是一个日期
  • @litelite,是的,他已经这样做了......再次阅读问题
  • 请检查@APC 的要求。很有可能您已经通过 SQL Developer 插入数据但尚未提交。

标签: java sql oracle jsp


【解决方案1】:

试试这些:

  1. 类文件正在重新生成?清除并重建项目 / 工作区。
  2. 打印查询并尝试运行打印查询。从理论上讲,它看起来与代码相同,但只是为了确定..
  3. 还检查是否在数据库中触发查询,可能是 java 混乱 带有日期对象或日期格式。因此,从 jsp 发射的实际日期在 mysql 点发射时说的是别的东西?调试/日志/打印查询实际上是在 mysql 上触发的 结束。
  4. 这里需要更清楚,查询中引用的“to_date”是 功能 ?什么是列类型。

【讨论】:

  • 试过 1、2 和 3。to_date 是一个将日期转换为特定格式的函数。 log_date 是日期类型。
【解决方案2】:

我认为你需要使用 to_char()

select slno from lbk_tab where log_date = to_char(to_date('18-06-2017','DD-MM-YYYY'))

【讨论】:

  • 什么是返回错误或 0 行,您的 log_date 类型是什么,请您提及。
  • 返回 0 行。 log_date 是日期类型
  • 您在 DriverManager 中为 slno 定义了哪些正确的数据库?我认为这是一个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-15
  • 2017-02-11
  • 2021-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多