java - 尝试按日期删除时,查询不会产生结果集。
问题描述
我正在尝试在 java 中创建一个方法,该方法将在某个日期之前删除数据库中的所有记录。现在我得到这个 SQLException: Query or procedure does not return a result set。
这是我的单元测试用来填充数据库的插入语句之一。
INSERT INTO C35_6 ( xIndex, xcSource, dTimeOn, dTimeOff, bSuccessful )
VALUES (74013, 1, '05/01/1972 00:00:00.000', '05/02/1972 00:00:00.000', 1 )
这是删除语句
DELETE FROM C35_6 WHERE dTimeOff <= '12/31/1975 00:00:00.000'
我可以在日志文件中看到这些语句以正确的顺序运行,一个接一个。这些语句是使用 setDate() 使用 javapreparedStatement 创建的。
似乎 sql 由于某种原因无法比较这些日期。
解决方案
我认为您设置日期的事实无关紧要。异常消息说“查询不返回结果集”。这是真实的。您的两个查询都不返回结果。
这意味着您以错误的方式执行它们。我的猜测是您运行它们preparedStatement.executeQuery()
(用于SELECT
查询并期望返回 a ResultSet
)而不是preparedStatement.execute()
可以用于任何类型的查询。
推荐阅读
- mql4 - 斐波那契回撤(线缺失)
- java - 如何在 Jquery UI 选项卡中的同一 jsp 上传输值
- odbc - 为什么 SQL Anywhere16 32 位 odbc 驱动程序在发布模式下无法连接到 32 位应用程序?
- scala - Spark 2.2 数据框 [scala]
- python - Plotly 图表上的次要/平行 X 轴(python)
- multithreading - 在调用堆栈中搜索
- kdb - 从python调用的q函数中的并行处理
- sparql - 如何使用 RDFSharp 连接到 SPARQL 端点?
- docker - docker-compose:绑定挂载时的目录权限错误
- c - If else语句c程序中的多个条件