【发布时间】:2013-10-21 22:01:00
【问题描述】:
由于某种原因,当调用updateRow(我也在插入和删除行)时,Oracle JDBC 驱动程序可能会将ResultSet 游标移动到其他位置(不是到同一行,也不是到下一行)。我怎样才能避免这个问题?
注意:结果按表的主键排序(我已在 SQL 中指定)。但我越来越怀疑“order by”子句不能正常工作。
【问题讨论】:
-
要将光标重置到哪里?
-
只是一个想法:你选择
for update吗?我知道代码示例没有显示它,但在 PL/SQL 或通过其他 API 中使用的方法是将游标打开为 selectfor update,然后更新where current of <cursor>。我会假设甲骨文“在幕后”这样做。 -
“下一行”由您的 order by 子句定义。你能设置一个简单的 pl/sql 块来打开游标并循环遍历行吗?您应该会发现结果与通过 jdbc 驱动程序的顺序相同(至少很容易对此进行测试)。如果您需要示例 pl/sql 代码,请告诉我