@@ -370,8 +370,13 @@ when 'table_change_rec0' then
370
370
select x_id into v_x_id from mq.table_change_rec0 where consumed=false order by crt_time,id limit 1;
371
371
open curs1 for select * from mq.table_change_rec0 where consumed=false and x_id=v_x_id order by crt_time,id for update;
372
372
else
373
- select crt_time into v_crt_time from mq.table_change_rec0 where consumed=false order by crt_time,id limit n;
374
- open curs1 for select * from mq.table_change_rec0 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
373
+ select crt_time into v_crt_time from mq.table_change_rec0 where consumed=false order by crt_time,id limit 1 offset n-1;
374
+ if found then
375
+ open curs1 for select * from mq.table_change_rec0 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
376
+ else
377
+ -- n超出所剩跟踪记录
378
+ open curs1 for select * from mq.table_change_rec0 where consumed=false order by crt_time,id for update;
379
+ end if;
375
380
end if;
376
381
377
382
fetch curs1 into v_table_change_rec;
@@ -468,8 +473,13 @@ when 'table_change_rec1' then
468
473
select x_id into v_x_id from mq.table_change_rec1 where consumed=false order by crt_time,id limit 1;
469
474
open curs1 for select * from mq.table_change_rec1 where consumed=false and x_id=v_x_id order by crt_time,id for update;
470
475
else
471
- select crt_time into v_crt_time from mq.table_change_rec1 where consumed=false order by crt_time,id limit n;
472
- open curs1 for select * from mq.table_change_rec1 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
476
+ select crt_time into v_crt_time from mq.table_change_rec1 where consumed=false order by crt_time,id limit 1 offset n-1;
477
+ if found then
478
+ open curs1 for select * from mq.table_change_rec1 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
479
+ else
480
+ -- n超出所剩跟踪记录
481
+ open curs1 for select * from mq.table_change_rec1 where consumed=false order by crt_time,id for update;
482
+ end if;
473
483
end if;
474
484
475
485
fetch curs1 into v_table_change_rec;
@@ -566,8 +576,13 @@ when 'table_change_rec2' then
566
576
select x_id into v_x_id from mq.table_change_rec2 where consumed=false order by crt_time,id limit 1;
567
577
open curs1 for select * from mq.table_change_rec2 where consumed=false and x_id=v_x_id order by crt_time,id for update;
568
578
else
569
- select crt_time into v_crt_time from mq.table_change_rec2 where consumed=false order by crt_time,id limit n;
570
- open curs1 for select * from mq.table_change_rec2 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
579
+ select crt_time into v_crt_time from mq.table_change_rec2 where consumed=false order by crt_time,id limit 1 offset n-1;
580
+ if found then
581
+ open curs1 for select * from mq.table_change_rec2 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
582
+ else
583
+ -- n超出所剩跟踪记录
584
+ open curs1 for select * from mq.table_change_rec2 where consumed=false order by crt_time,id for update;
585
+ end if;
571
586
end if;
572
587
573
588
fetch curs1 into v_table_change_rec;
@@ -664,8 +679,13 @@ when 'table_change_rec3' then
664
679
select x_id into v_x_id from mq.table_change_rec3 where consumed=false order by crt_time,id limit 1;
665
680
open curs1 for select * from mq.table_change_rec3 where consumed=false and x_id=v_x_id order by crt_time,id for update;
666
681
else
667
- select crt_time into v_crt_time from mq.table_change_rec3 where consumed=false order by crt_time,id limit n;
668
- open curs1 for select * from mq.table_change_rec3 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
682
+ select crt_time into v_crt_time from mq.table_change_rec3 where consumed=false order by crt_time,id limit 1 offset n-1;
683
+ if found then
684
+ open curs1 for select * from mq.table_change_rec3 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
685
+ else
686
+ -- n超出所剩跟踪记录
687
+ open curs1 for select * from mq.table_change_rec3 where consumed=false order by crt_time,id for update;
688
+ end if;
669
689
end if;
670
690
671
691
fetch curs1 into v_table_change_rec;
@@ -762,8 +782,13 @@ when 'table_change_rec4' then
762
782
select x_id into v_x_id from mq.table_change_rec4 where consumed=false order by crt_time,id limit 1;
763
783
open curs1 for select * from mq.table_change_rec4 where consumed=false and x_id=v_x_id order by crt_time,id for update;
764
784
else
765
- select crt_time into v_crt_time from mq.table_change_rec4 where consumed=false order by crt_time,id limit n;
766
- open curs1 for select * from mq.table_change_rec4 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
785
+ select crt_time into v_crt_time from mq.table_change_rec4 where consumed=false order by crt_time,id limit 1 offset n-1;
786
+ if found then
787
+ open curs1 for select * from mq.table_change_rec4 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
788
+ else
789
+ -- n超出所剩跟踪记录
790
+ open curs1 for select * from mq.table_change_rec4 where consumed=false order by crt_time,id for update;
791
+ end if;
767
792
end if;
768
793
769
794
fetch curs1 into v_table_change_rec;
@@ -860,8 +885,13 @@ when 'table_change_rec5' then
860
885
select x_id into v_x_id from mq.table_change_rec5 where consumed=false order by crt_time,id limit 1;
861
886
open curs1 for select * from mq.table_change_rec5 where consumed=false and x_id=v_x_id order by crt_time,id for update;
862
887
else
863
- select crt_time into v_crt_time from mq.table_change_rec5 where consumed=false order by crt_time,id limit n;
864
- open curs1 for select * from mq.table_change_rec5 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
888
+ select crt_time into v_crt_time from mq.table_change_rec5 where consumed=false order by crt_time,id limit 1 offset n-1;
889
+ if found then
890
+ open curs1 for select * from mq.table_change_rec5 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
891
+ else
892
+ -- n超出所剩跟踪记录
893
+ open curs1 for select * from mq.table_change_rec5 where consumed=false order by crt_time,id for update;
894
+ end if;
865
895
end if;
866
896
867
897
fetch curs1 into v_table_change_rec;
@@ -958,8 +988,13 @@ when 'table_change_rec6' then
958
988
select x_id into v_x_id from mq.table_change_rec6 where consumed=false order by crt_time,id limit 1;
959
989
open curs1 for select * from mq.table_change_rec6 where consumed=false and x_id=v_x_id order by crt_time,id for update;
960
990
else
961
- select crt_time into v_crt_time from mq.table_change_rec6 where consumed=false order by crt_time,id limit n;
962
- open curs1 for select * from mq.table_change_rec6 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
991
+ select crt_time into v_crt_time from mq.table_change_rec6 where consumed=false order by crt_time,id limit 1 offset n-1;
992
+ if found then
993
+ open curs1 for select * from mq.table_change_rec6 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
994
+ else
995
+ -- n超出所剩跟踪记录
996
+ open curs1 for select * from mq.table_change_rec6 where consumed=false order by crt_time,id for update;
997
+ end if;
963
998
end if;
964
999
965
1000
fetch curs1 into v_table_change_rec;
0 commit comments