You are on page 1of 4

---drop table eqvsys01.

tmp_det_pers_vncl_obje_nsp
create table eqvsys01.tmp_det_pers_vncl_obje_nsp unrecoverable
as
select /*+parallel(4)*/
a.id_pers_natu,b.id_pers_natu as id_pers_natu_vncl,a.id_tipo_vncl_pers,c.id_pers
_vncl as nu_obje,a.nu_bene,
decode(a.es_bene,
'AC',decode(a.fe_estd,null,decode(a.fe_ulti_modi,null,a.fe_crea,a.fe_ulti_modi
),a.fe_estd),
'CA',decode(a.fe_cadu_bene,null,decode(a.fe_estd,null,decode(a.fe_ulti_modi,nu
ll,a.fe_crea,a.fe_ulti_modi),a.fe_estd),a.fe_cadu_bene),
'EL',decode(a.fe_estd,null,decode(a.fe_ulti_modi,null,a.fe_crea,a.fe_ulti_modi
),a.fe_estd),
'FA',decode(a.fe_estd,null,decode(a.fe_ulti_modi,null,a.fe_crea,a.fe_ulti_modi
),a.fe_estd),
'FP',decode(a.fe_estd,null,decode(a.fe_ulti_modi,null,a.fe_crea,a.fe_ulti_modi
),a.fe_estd),
'FR',decode(a.fe_estd,null,decode(a.fe_ulti_modi,null,a.fe_crea,a.fe_ulti_modi
),a.fe_estd),
'PA',decode(a.fe_estd,null,decode(a.fe_ulti_modi,null,a.fe_crea,a.fe_ulti_modi
),a.fe_estd)) as fe_situ_obje,
(select x.id_tipo_situ_obje from bdusys.cat_tipo_situ_obje x where x.co_nsp_si
tu_obje = a.es_bene and x.co_nsp_situ_obje is not null) as id_tipo_situ_obje,
(select y.id_tipo_obje from bdusys.cat_tipo_obje y where y.co_tipo_obje='OBJE_
BENE') as id_tipo_obje,
case when a.es_bene='EL' then '2'
else '1' end as orig_es_bene
from eqvsys01.tmp_bene_pens_row_id a
inner join eqvsys01.tmp_pers_docu_bdi b
on a.id_tipo_docu_iden = b.id_tipo_docu and a.co_docu = b.co_docu
and a.ap_pate_bene = b.ap_prim and a.ap_mate_bene = b.ap_segu
and a.no_bene = b.no_pers and a.fe_naci_bene = b.fe_naci_pers_natu
inner join bdusys.det_pers_vncl_1 c
on a.id_pers_natu = c.id_pers_natu and b.id_pers_natu = c.id_pers_natu_vncl and
a.id_tipo_vncl_pers = c.id_tipo_vncl_pers
where a.es_bene <>'DH' and a.es_bene is not null and c.in_acti = '1';
---drop table eqvsys01.tmp_det_pers_vncl_obje_nsp_1
create table eqvsys01.tmp_det_pers_vncl_obje_nsp_1 unrecoverable
as
select /*+parallel(4)*/a.nu_obje,a.fe_situ_obje,a.id_tipo_situ_obje,a.id_tipo_ob
je,
case when a.nmro <> 1 then 0
else a.nmro
end as in_ulti_situ_obje,
(select id_acti from bdusys.cat_acti where co_acti='SIN_DATO') as id_acti,
(select id_moti_situ from bdusys.cat_moti_situ where co_moti_situ='SIN_DATO') as
id_moti_situ
from
(
select /*+parallel(4)*/a.nu_obje,id_tipo_situ_obje,id_tipo_obje,a.fe_situ_obje
,
row_number() over (partition by a.nu_obje order by a.fe_situ_obje desc,a.nu_be
ne desc,a.orig_es_bene) as nmro
from eqvsys01.tmp_det_pers_vncl_obje_nsp a
)a;
----partition
---drop table eqvsys01.tmp_det_pers_vncl_obje_nsp_2

create table eqvsys01.tmp_det_pers_vncl_obje_nsp_2 unrecoverable


as
select /*+parallel(4)*/
a.nu_obje,a.fe_situ_obje,a.id_tipo_situ_obje,
a.id_tipo_obje,a.in_ulti_situ_obje,a.id_acti,a.id_moti_situ
from
(
select /*+parallel(4)*/a.nu_obje,a.fe_situ_obje,a.id_tipo_situ_obje,
a.id_tipo_obje,a.in_ulti_situ_obje,a.id_acti,a.id_moti_situ,
row_number() over (partition by a.nu_obje,a.fe_situ_obje,a.id_tipo_situ_obje,a
.id_tipo_obje order by a.in_ulti_situ_obje) as nmro
from eqvsys01.tmp_det_pers_vncl_obje_nsp_1 a
)a
where a.nmro=1;
commit;
---crear tabla temporal con las situaciones del objeto que no existen para un ob
jeto
---drop table eqvsys01.tmp_det_pers_vncl_obje_ins
create table eqvsys01.tmp_det_pers_vncl_obje_ins unrecoverable
as
select /*+parallel(4)*/x.id_tipo_obje,x.nu_obje,x.id_tipo_situ_obje,x.fe_situ_ob
je,in_ulti_situ_obje,0 as id_moti_situ,0 as id_acti
from eqvsys01.tmp_det_pers_vncl_obje_nsp_2 x
where not exists (select 1 from bdusys.rel_situ_obje_1 a where (a.id_tipo_obje =
x.id_tipo_obje and a.nu_obje = x.nu_obje and a.id_tipo_situ_obje = x.id_tipo_si
tu_obje));
commit;
select * from eqvsys01.tmp_det_pers_vncl_obje_nsp
where id_tipo_situ_obje=116 and nu_obje=541232 and id_tipo_obje=26
26

541232 116

alter table bdusys.rel_situ_obje_1 nologging parallel(degree 6);


insert /*+append*/ into bdusys.rel_situ_obje_1 nologging
(fe_situ_obje,de_obse_situ_obje,id_tipo_obje,id_tipo_situ_obje,id_moti_situ,id_a
cti,in_acti,id_usua_crea,fe_usua_crea,de_term_crea,id_usua_modi,fe_usua_modi,de_
term_modi,in_ulti_situ_obje,nu_obje)
select /*+parallel(4)*/
x.fe_situ_obje,null as de_obse_situ_obje,x.id_tipo_obje,x.id_tipo_situ_obje,x.id
_moti_situ,
x.id_acti,'1' as in_acti,upper(sys_context('USERENV', 'AUTHENTICATED_IDENTITY'))
as id_usua_crea,sysdate as fe_usua_crea,sys_context('USERENV', 'IP_ADDRESS', 15
) as de_term_crea,
null as id_usua_modi, null as fe_usua_modi, null as de_term_modi,x.in_ulti_situ_
obje,x.nu_obje
from eqvsys01.tmp_det_pers_vncl_obje_ins x;
commit;
---drop table eqvsys01.tmp_det_pers_vncl_obje_upd
create table eqvsys01.tmp_det_pers_vncl_obje_upd unrecoverable
as
select /*+parallel(4)*/x.id_tipo_obje,x.nu_obje,x.id_tipo_situ_obje,x.fe_situ_ob
je,'0' as in_ulti_situ_obje,0 as id_moti_situ,0 as id_acti
from bdusys.rel_situ_obje_1 x
where exists (select 1 from eqvsys01.tmp_det_pers_vncl_obje_ins a where (a.id_ti

po_obje = x.id_tipo_obje and a.nu_obje = x.nu_obje and a.id_tipo_situ_obje != x.


id_tipo_situ_obje));
commit;
-----poner a 0 las demas situaciones
merge into bdusys.rel_situ_obje_1 a
using eqvsys01.tmp_det_pers_vncl_obje_upd b
on (a.id_tipo_obje = b.id_tipo_obje and a.nu_obje = b.nu_obje and a.id_tipo_sit
u_obje = b.id_tipo_situ_obje)
when matched then
update set a.in_ulti_situ_obje = b.in_ulti_situ_obje
,a.id_usua_modi = upper(sys_context('userenv', 'authenticated_identi
ty'))
,a.fe_usua_modi = sysdate;
,a.de_term_modi = sys_context('userenv', 'ip_address', 15);
commit;
select /*+parallel(4)*/ id_tipo_obje,nu_obje,id_tipo_situ_obje,count(distinct fe
_situ_obje) from bdusys.rel_situ_obje_1
where id_tipo_obje=26
group by id_tipo_obje,nu_obje,id_tipo_situ_obje
having count(distinct fe_situ_obje) >1

select nu_obje,count(1) from eqvsys01.tmp_det_pers_vncl_obje_ins


group by nu_obje
having count(1) >1
select
26

443659 131

select * from bdusys.rel_situ_obje_1


where id_tipo_obje=26 and nu_obje=443659 and id_tipo_situ_obje=131
upper(sys_context('userenv', 'authenticated_identity')) as id_usua_crea,
sysdate as fe_usua_crea,
sys_context('userenv', 'ip_address', 15) as de_term_crea,
select * from bdusys.rel_situ_obje_1 a
where id_tipo_obje=26 and nu_obje=763504
select * from eqvsys01.tmp_det_pers_vncl_obje_upd b
26
26

214371 131
186261 38

26

282377 131

select * from bdusys.rel_situ_obje_1


where id_tipo_obje=26 and nu_obje=282377 and id_tipo_situ_obje=
select * from bdusys.rel_situ_obje_1
where id_tipo_obje=26 and nu_obje=186261 and id_tipo_situ_obje=38
select * from eqvsys01.tmp_det_pers_vncl_obje_part x
select /*+parallel(4)*/ * from bdusys.rel_situ_obje_1
where nu_obje=417855 and id_tipo_obje=26 and id_tipo_situ_obje=131

select * from bdusys.rel_situ_obje_1


where nu_obje=417855 and id_tipo_obje=26

You might also like