oracle如何通过select for update skip

时间:2016-01-29 15:10:20

标签: multithreading oracle

我必须将数据从表传输到外部系统。数据提取应该由多个进程并行进行。为了避免多个进程获取我使用的相同记录,请选择更新跳过锁定'。每个进程必须获取25条记录并进行处理.table包含一列FREE_TEXT_1,其初始值为' N'。每个进程都需要获取25条记录并进行处理。而处理列值将更改为' P'并且一旦传输了数据,列的值将为' T'。

我的选择查询如下所示

从表格中选择*,其中free_Text_1 =' N' for update skip locked

[每个进程将获取25条记录,然后更改free_Text_1的状态=' P'然后进行提交,以便锁定记录,下一个进程可以获取下一组25条记录]

这里的问题是每个进程都使用free_Text_1 =' N'来锁定整个记录集。以便下一个过程必须等待第一个过程完成然后继续,从而不能实现并行处理。有什么方法我可以每个选择25个记录,并确保没有进程不会获取相同的记录集。请帮忙

0 个答案:

没有答案