1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| merge into <tbl>_H hst
using (select <list_column>
from <tbl>
minus
select <list_column>
from <tbl>_H
where INDIC_ACTIF_H = 1) mvt
ON (mvt.<pk> = hst.<pk>)
when matched
update hst.HORODATE_DESACTIVATION_H = trunc(sysdate)
hst.INDIC_ACTIF_H = 0
where hst.INDIC_ACTIF_H = 1
insert (hst.<list_column>, hst.HORODATE_AJOUT_H, hst.HORODATE_DESACTIVATION_H, hst.INDIC_ACTIF_H)
values (mvt.<list_column>, trunc(sysdate) , date '3999-12-31' , 1 )
when not matched
insert (hst.<list_column>, hst.HORODATE_AJOUT_H, hst.HORODATE_DESACTIVATION_H, hst.INDIC_ACTIF_H, hst.NO_VERSION_H)
values (mvt.<list_column>, trunc(sysdate) , date '3999-12-31' , 1 , 1 );
update <tbl>_H h1
set h1.NO_VERSION_H = (select count(*)
from <tbl>_H h2
where h2.<pk> = h1.<pk>)
where h1.NO_VERSION_H is null
and h1.INDIC_ACTIF_H = 1; |
Partager