Oracle批量更新时间戳保证时间戳都不一样

很多数据增量同步功能都是使用时间戳进行实现的,但是有时我们需要批量更新一批人的时间戳来触发更新操作,但是如果这批人的时间戳都改成一样的话在分页同步时会出现问题,下面通过存储过程实现修改时间戳并保证时间戳是递增的。

CREATE OR REPLACE PROCEDURE PAMS.updatepersontime(orgId IN VARCHAR2) IS CURSOR person_id IS
SELECT
	id
FROM
	t_person p ;

personId t_person.id%TYPE;
BEGIN
	OPEN person_id;
LOOP
	<<loop_block>> FETCH person_id
INTO
	personId;

EXIT
WHEN person_id%notfound;

UPDATE
	t_person t
SET
	t.n_last_update_time = 
	(SELECT MAX(a.n_last_update_time) + 1 as n_last_update_time FROM t_person a WHERE a.id <> '0'  )
WHERE
	t.id = personId;

GOTO loop_block;
END
LOOP;
END updatepersontime;
posted @ 2020-10-22 09:54  ThomasYue  阅读(790)  评论(0)    收藏  举报