The following lines contain the word 'select', 'insert', 'update' or 'delete':
select d_type.priority type_pri,
nvl(d_class.priority,d_type.priority) class_pri,
d_type.demand_type,
nvl(d_class.demand_class, d_type.demand_class) demand_class
from msc_drp_pri_rules_specified d_type,
msc_drp_pri_rules_specified d_class
where d_type.rule_set_id = p_rule_set_id
and d_type.rule_type =1 -- demand type
and d_type.rule_set_id = d_class.rule_set_id (+)
and d_class.rule_type(+) =2 -- demand class
and not exists (select 1
from msc_drp_pri_rules_specified
where rule_type = 3 -- demand type-demand class
and rule_set_id = d_type.rule_set_id
and demand_type = d_type.demand_type
and demand_class = d_class.demand_class)
union select d_type.priority type_pri,
d_type.priority class_pri,
d_type.demand_type,
d_type.demand_class
from msc_drp_pri_rules_specified d_type
where d_type.rule_set_id = p_rule_set_id
and d_type.rule_type =3
union select d_type.priority type_pri,
999 class_pri,
d_type.demand_type, '-1'
from msc_drp_pri_rules_specified d_type
where d_type.rule_set_id = p_rule_set_id
and d_type.rule_type =1
and exists (select 1
from msc_drp_pri_rules_specified
where rule_type = 2
and rule_set_id = d_type.rule_set_id)
and not exists (select 1
from msc_drp_pri_rules_specified
where rule_type = 2
and rule_set_id = d_type.rule_set_id
and demand_class = '-1')
and not exists (select 1
from msc_drp_pri_rules_specified
where rule_type = 3 -- demand type-demand class
and rule_set_id = d_type.rule_set_id
and demand_type = d_type.demand_type
and demand_class = '-1')
union select d_class.priority type_pri, --5762540,
d_class.priority class_pri, -- when FC, SO, OverConsumed is not
d_type.demand_type, -- defined in demand_type,
d_class.demand_class demand_class -- but in demand_type/demand_class
from msc_drp_pri_rules_specified d_type,
msc_drp_pri_rules_specified d_class
where d_type.rule_set_id = p_rule_set_id
and d_type.rule_type =3 -- demand type-demand class
and d_type.rule_set_id = d_class.rule_set_id
and d_class.rule_type =2 -- demand class
and d_type.demand_class <> d_class.demand_class
and not exists (select 1
from msc_drp_pri_rules_specified
where rule_type = 1 -- demand type
and rule_set_id = d_type.rule_set_id
and demand_type = d_type.demand_type)
order by type_pri, class_pri;
delete msc_drp_pri_rules_calc
where rule_set_id = p_rule_set_id;
insert into msc_drp_pri_rules_calc
(
rule_set_id,
demand_type,
demand_class,
priority,
last_update_date,
last_updated_by,
creation_date,
created_by,
last_update_login
)
values(
p_rule_set_id,
v_dmd_type_rec.demand_type,
v_dmd_type_rec.demand_class,
v_priority,
sysdate,
l_user_id,
sysdate,
l_user_id,
l_user_id
);
insert into msc_drp_pri_rules_calc
(
rule_set_id,
demand_type,
demand_class,
priority,
last_update_date,
last_updated_by,
creation_date,
created_by,
last_update_login
)
values(
p_rule_set_id,
a,
'-1',
v_priority,
sysdate,
l_user_id,
sysdate,
l_user_id,
l_user_id
);
select demand_type, demand_class
from msc_drp_pri_rules_specified
where rule_set_id = p_rule_set_id
and rule_type = p_rule_type
and demand_type = nvl(p_demand_type, demand_type)
order by demand_type, demand_class;