The following lines contain the word 'select', 'insert', 'update' or 'delete':
SELECT /*+ FIRST_ROWS(1) */ unit_id, unit_status, phase, actual_workers_allowed, workers_assigned
FROM fnd_oam_dscram_units
WHERE task_id = FND_OAM_DSCRAM_TASKS_PKG.GET_TASK_ID
AND unit_status in (FND_OAM_DSCRAM_UTILS_PKG.G_STATUS_UNPROCESSED,
FND_OAM_DSCRAM_UTILS_PKG.G_STATUS_PROCESSING,
FND_OAM_DSCRAM_UTILS_PKG.G_STATUS_RESTARTABLE,
FND_OAM_DSCRAM_UTILS_PKG.G_STATUS_FINISHING) --need to include finishing to keep from violating phases
AND concurrent_group_unit_id IS NULL --only select top-level units, all units with a conc_unit_id should belong to a parent unit
ORDER BY phase ASC, priority ASC, weight DESC;
SELECT unit_status
FROM fnd_oam_dscram_units
WHERE unit_id = p_unit_id;
SELECT unit_status
FROM fnd_oam_dscram_units
WHERE unit_id = b_unit_info.unit_id;
SELECT unit_status, suggest_workers_allowed, actual_workers_allowed, workers_assigned, unit_type, weight,
unit_object_owner, unit_object_name, error_fatality_level, suggest_disable_splitting, actual_disable_splitting, batch_size
INTO l_status, l_suggest_workers_allowed, l_actual_workers_allowed, l_workers_assigned, l_unit_type, l_weight,
l_unit_object_owner, l_unit_object_name, l_error_fatality_level, l_suggest_disable_splitting, l_actual_disable_splitting, l_batch_size
FROM fnd_oam_dscram_units
WHERE unit_id = p_unit_id
FOR UPDATE;
UPDATE fnd_oam_dscram_units
SET unit_status = FND_OAM_DSCRAM_UTILS_PKG.G_STATUS_PROCESSING,
stats_finished = FND_API.G_FALSE,
actual_workers_allowed = l_actual_workers_allowed,
actual_disable_splitting = l_actual_disable_splitting
WHERE unit_id = p_unit_id;
UPDATE fnd_oam_dscram_units
SET workers_assigned = workers_assigned + 1,
last_updated_by = fnd_global.user_id,
last_update_login = fnd_global.user_id,
last_update_date = SYSDATE
WHERE unit_id = p_unit_id;
l_update_context BOOLEAN := FALSE;
SELECT unit_status, workers_assigned
INTO l_status, l_workers_assigned
FROM fnd_oam_dscram_units
WHERE unit_id = p_unit_id
FOR UPDATE;
FND_OAM_DSCRAM_DMLS_PKG.UPDATE_COMP_DML_WRITABLE_ARGS(px_work_queue_to_complete(k).item_id,
px_arg_context,
b_unit_info.use_splitting,
l_proposed_ret_sts,
l_return_msg);
FND_OAM_DSCRAM_PLSQLS_PKG.UPDATE_COMP_PLS_WRITABLE_ARGS(px_work_queue_to_complete(k).item_id,
px_arg_context,
b_unit_info.use_splitting,
l_proposed_ret_sts,
l_return_msg);
l_update_context := TRUE;
l_update_context,
l_return_status,
l_return_msg);
l_update_context,
l_return_status,
l_return_msg);
UPDATE fnd_oam_dscram_units
SET workers_assigned = workers_assigned - 1,
last_updated_by = fnd_global.user_id,
last_update_login = fnd_global.user_id,
last_update_date = SYSDATE
WHERE unit_id = p_unit_id;
UPDATE fnd_oam_dscram_units
SET unit_status = l_final_status,
workers_assigned = workers_assigned - 1,
last_updated_by = fnd_global.user_id,
last_update_login = fnd_global.user_id,
last_update_date = SYSDATE
WHERE unit_id = p_unit_id;
AD_PARALLEL_UPDATES_PKG.INITIALIZE_ROWID_RANGE(X_update_type => AD_PARALLEL_UPDATES_PKG.ROWID_RANGE,
X_owner => p_object_owner,
X_table => p_object_name,
X_script => FND_OAM_DSCRAM_UTILS_PKG.MAKE_AD_SCRIPT_KEY(p_unit_id),
X_worker_id => FND_OAM_DSCRAM_BUNDLES_PKG.GET_WORKER_ID,
X_num_workers => NVL(p_num_workers, FND_OAM_DSCRAM_BUNDLES_PKG.GET_WORKERS_ALLOWED),
X_batch_size => NVL(p_batch_size, FND_OAM_DSCRAM_BUNDLES_PKG.GET_BATCH_SIZE),
X_debug_level => 0,
X_processed_mode => AD_PARALLEL_UPDATES_PKG.PRESERVE_PROCESSED_UNITS);
AD_PARALLEL_UPDATES_PKG.GET_ROWID_RANGE(X_start_rowid => x_rowid_lbound,
X_end_rowid => x_rowid_ubound,
X_any_rows => x_rows_found,
X_num_rows => NULL, --unused in 120.2
X_restart => FALSE); --also unused in 120.2
AD_PARALLEL_UPDATES_pkg.PROCESSED_ROWID_RANGE(X_rows_processed => p_rows_processed,
X_last_rowid => p_rowid_ubound);
fnd_oam_debug.log(1, l_ctxt, 'Done splitting, ad range selection loop exhausted.');
SELECT unit_id, unit_type, priority
BULK COLLECT INTO l_unit_ids, l_types, l_priorities
FROM fnd_oam_dscram_units
WHERE task_id = FND_OAM_DSCRAM_TASKS_PKG.GET_TASK_ID
AND concurrent_group_unit_id = b_unit_info.unit_id
ORDER BY priority ASC, weight DESC;