oracle - Getting Repository dependencies -
i'm using informatica oracle rdbms. lately i've been struggling bit.
i got assignment query dependencies between each model/workflow , desired result this:
grand_model | grand_workflow | wait_4_model | wait_4_workflow dwh_model1 wf_workflow1 dwh_model3 wf_workflow3_1 dwh_model1 wf_workflow1 dwh_model4 wf_workflow4_1 dwh_model2 wf_workflow2_1 dwh_model1 wf_workflow1
which means, wf_workflow1
in model dwh_model1
waits workflow wf_workflow3_1
in model dwh_model3
etc....
we have 3 types of workflows , delta
(will contains word delta
) dwh
(same here) , calc
(same here). workflow waits uses event
contain both of models names, , workflow flags contain cmd
contain grand_model
name.
so far we've come this:
select distinct oa.subj_name grand_model, ol.subj_name wait_4_model_name, rep.workflow_name wait_4_workflow_name, a.flag_name, case when instr(upper(a.flag_name), 'dwh') > 0 'dwh' when instr(upper(rep.workflow_name), 'delta') > 0 'delta' else 'calc' end connection_name opb_subject@to_informatica_admin ol, opb_subject@to_informatica_admin oa, opb_task@to_informatica_admin t, opb_task@to_informatica_admin tl, opb_task_inst@to_informatica_admin ti, rep_session_instances@to_informatica_admin rep, (select t.task_id, substr(t.attr_value, length(t.attr_value) + 2 - instr(reverse(t.attr_value), '/')) flag_name opb_task_attr@to_informatica_admin t t.task_type = 60 , instr(reverse(t.attr_value), '/') > 0) a, (select t.task_id, t.subject_id, substr(t.pm_value, length(t.pm_value) + 2 - instr(reverse(t.pm_value), '/')) flag_name opb_task_val_list@to_informatica_admin t instr(reverse(t.pm_value), '/') > 0) l ol.subj_id = l.subject_id , a.task_id = t.task_id , t.subject_id = oa.subj_id , a.flag_name = l.flag_name , ol.subj_name <> oa.subj_name , l.task_id = tl.task_id , tl.task_id = ti.task_id , ti.workflow_id = rep.workflow_id
this query works! problem is, i'm getting worklets workflows well, of times last joins fails. don't know how avoid it..
Comments
Post a Comment