Java 在同一PL/SQL查询中选择和更新
我在Java中有一个生产者线程,每n毫秒从Oracle表中提取一个项目。 当前的实现依赖于Java时间戳来检索数据,并且不再重新检索数据 我的目标是摆脱时间戳模式,直接更新从数据库中提取的相同项 是否有一种方法可以选择一组项目并同时更新它们以将其标记为“正在处理” 如果不是,依赖IN子句的单独更新查询是否会对性能造成重大影响? 我尝试使用一个临时表来实现这个目的,但我发现性能受到了严重影响Java 在同一PL/SQL查询中选择和更新,java,multithreading,oracle,plsql,ibatis,Java,Multithreading,Oracle,Plsql,Ibatis,我在Java中有一个生产者线程,每n毫秒从Oracle表中提取一个项目。 当前的实现依赖于Java时间戳来检索数据,并且不再重新检索数据 我的目标是摆脱时间戳模式,直接更新从数据库中提取的相同项 是否有一种方法可以选择一组项目并同时更新它们以将其标记为“正在处理” 如果不是,依赖IN子句的单独更新查询是否会对性能造成重大影响? 我尝试使用一个临时表来实现这个目的,但我发现性能受到了严重影响 不知道它是否有用,但应用程序正在使用iBatis。如果您使用的是oracle 10g或更高版本,则可以使用
不知道它是否有用,但应用程序正在使用iBatis。如果您使用的是oracle 10g或更高版本,则可以使用update语句的RETURNING子句。如果希望检索多行,可以使用大容量收集语句。
这里是一些例子的链接;
如果您使用的是oracle 10g或更高版本,则可以使用update语句的RETURNING子句。如果希望检索多行,可以使用大容量收集语句。
这里是一些例子的链接;
由于oracle 10g有用于更新语句的RETURNING子句,但我确信它们可以用于多行因为oracle 10g有用于更新语句的RETURNING子句,但我确信它们可以用于多行。关于如何与iBatis/myBatis一起使用有什么想法吗?仍然找不到一种方法来与JDBC交流批量收集感谢看起来很整洁。关于如何使用iBatis/myBatis有什么想法吗?仍然找不到与JDBC通信批量收集的方法