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;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM