我在Java中有一个生产者线程,每隔n毫秒从Oracle表中拉出一次项。当前的实现依赖于Java时间戳来检索数据,并且再也不会重新检索它们。
我的目标是摆脱时间戳模式,直接更新我从数据库中提取的相同项。
有没有办法选择一组项目并同时更新它们,以将它们标记为“正在处理”?
如果不是,依赖于IN子句的单独UPDATE查询是否会对性能造成重大影响?为此,我尝试使用临时表,但我发现性能受到了严重影响。
不知道它是否有帮助,但应用程序正在使用iBatis。
发布于 2011-12-24 22:50:34
如果使用的是oracle 10g或更高版本,则可以使用update语句的RETURNING子句。如果希望检索多行,可以使用BULK COLLECT语句。
下面是一些示例的链接;http://psoug.org/snippet/UPDATE-with-RETURNING-clause_604.htm
https://stackoverflow.com/questions/8626204
复制相似问题