3

我有一个很长的 sql 语句,带有 java derby 数据库,我应该想为用户提供一个“取消”的东西。但我得到:

Caused by: java.sql.SQLException: Feature not implemented: cancel.
    at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)

那么我怎么能用 derby 做这样的事情呢?

谢谢。


编辑 1

我的请求中没有下一个循环;这是我的大 sql 调用:

"DELETE FROM TABLE "
+ "WHERE "
+ "REF_TICKET IN 
+   "(SELECT NTICKET FROM OTHER_TABLE WHERE "
+   "REF_OPEN IN 
+    (SELECT OPEN FROM AGAIN_ANOTHER_TABLE WHERE "
+    "{fn TIMESTAMPDIFF( SQL_TSI_DAY, TIMECLOSE, CURRENT_DATE)} > 365))");

所以这一切都在一个声明中。

4

1 回答 1

1

通常不是 ExecuteQuery() 调用需要很长时间,而是 ResultSet.next() 循环运行了很长时间,获取所有行。因此,只需在您的行获取循环期间检查用户的取消请求,例如每一百行左右。

于 2013-08-19T15:10:14.823 回答