The following lines contain the word 'select', 'insert', 'update' or 'delete':
v_SelectClause VARCHAR2(100);
/* Delete records in Demand_sort if found */
/****************************************************/
v_DemandSort.criteria.DELETE;
SELECT RULE_ID
INTO def_rule_id
FROM msc_scheduling_rules
WHERE DEFAULT_FLAG = 'Y';
SELECT DECODE(MSR.meaning,
'Gross Margin',
'-md.USING_REQUIREMENT_QUANTITY*md.SELLING_PRICE',
'Sales Order Priority',
'DECODE(MSC_DEMANDS.ORIGINATION_TYPE,
6, NVL(md.SALES_ORDER_PRIORITY, 10000),
7, NVL(md.FORECAST_PRIORITY, 100000),
100000)',
'Schedule Date',
'md.USING_ASSEMBLY_DEMAND_DATE',
'Promise Date',
'NVL(md.PROMISE_DATE,
md.USING_ASSEMBLY_DEMAND_DATE)',
'Request Date',
'NVL(md.REQUEST_DATE,
md.USING_ASSEMBLY_DEMAND_DATE)',
'NULL')
bulk collect INTO v_DemandSort.criteria
FROM MSC_SCHEDULING_RULES MSR, MSC_PLANS MP
WHERE MSR.rule_id = NVL(MP.dem_priority_rule_id, def_rule_id)
AND MP.plan_id = arg_plan_id
ORDER BY MSR.sequence_number;
/* Get the SELECT, FROM and WHERE clause */
/****************************************************/
v_SelectClause := 'SELECT demand_id ';
v_SqlString := v_SelectClause || v_FromClause || v_WhereClause1 ||
v_WhereClause2 || v_WhereClause3 ||
' ORDER BY ' || v_OrderClause;
/* Update demand_priority in MSC_DEMANDS for this */
/* demand_id */
/****************************************************/
UPDATE msc_demands
SET DEMAND_PRIORITY = demand_priority
WHERE DEMAND_ID = DemandId
AND PLAN_ID = -1;
SELECT NVL(MIN(end_dem.demand_priority),
100000)
INTO p_dem_priority
FROM
msc_demands end_dem,
msc_full_pegging end_peg,
msc_full_pegging pegging,
msc_supplies sup
WHERE
end_dem.demand_id = end_peg.demand_id
AND end_dem.plan_id = end_peg.plan_id
AND end_peg.plan_id = pegging.plan_id
AND end_peg.pegging_id = pegging.end_pegging_id
AND pegging.plan_id = sup.plan_id
AND pegging.transaction_id = sup.transaction_id
AND sup.transaction_id = arg_trans_id
AND sup.plan_id = arg_plan_id;