【发布时间】:2016-11-04 14:57:33
【问题描述】:
以下删除语句在 SQL 开发人员中运行良好,但使用 JDBC api executeUpdate() 执行时不起作用。
删除 where 子句后,它的工作正常。
Delete from Tab1
where TRUNC(CREATED_TS) <= TRUNC(ADD_MONTHS(SYSDATE,-3))
我无法找出问题所在,因为没有打印异常或错误。只有代码执行在 executeUpdate() 方法处被挂起。
数据库:Oracle 11g Java:1.6
【问题讨论】:
-
您在数据库中看到了什么?数据库会话是否处于活动状态?是不是被什么东西挡住了?它在阻止什么?
-
不...我已经在我的帖子中提到过。我无法提供太多信息,因为我没有任何错误/堆栈跟踪
-
向我们展示您的 Java 代码。如果您已经从 SQL Developer 中删除了这些行,那么当从您的应用程序运行时,该语句不再删除某些内容,我并不感到惊讶。
-
在运行 Java 代码之前,您在 SQLDeveloper 中发出的
ROLLBACK是否是DELETE?如果没有,您在 SQLDeveloper 中的活动事务正在锁定您尝试使用executeUpdate()更新的相同行。