The following lines contain the word 'select', 'insert', 'update' or 'delete':
PROCEDURE delete_rows
( p_draft_id IN NUMBER,
p_price_differential_id IN NUMBER
) IS
d_api_name CONSTANT VARCHAR2(30) := 'delete_rows';
DELETE FROM po_price_diff_draft
WHERE draft_id = p_draft_id
AND price_differential_id = NVL(p_price_differential_id,
price_differential_id);
END delete_rows;
p_delete_flag_tbl IN PO_TBL_VARCHAR1,
x_record_already_exist_tbl OUT NOCOPY PO_TBL_VARCHAR1
) IS
d_api_name CONSTANT VARCHAR2(30) := 'sync_draft_from_txn';
INSERT INTO po_price_diff_draft
(
draft_id,
delete_flag,
change_accepted_flag,
price_differential_id,
price_differential_num,
entity_id,
entity_type,
price_type,
enabled_flag,
min_multiplier,
max_multiplier,
multiplier,
creation_date,
created_by,
last_update_date,
last_updated_by,
last_update_login
)
SELECT
p_draft_id_tbl(i),
p_delete_flag_tbl(i),
NULL,
price_differential_id,
price_differential_num,
entity_id,
entity_type,
price_type,
enabled_flag,
min_multiplier,
max_multiplier,
multiplier,
creation_date,
created_by,
last_update_date,
last_updated_by,
last_update_login
FROM po_price_differentials
WHERE price_differential_id = p_price_differential_id_tbl(i)
AND x_record_already_exist_tbl(i) = FND_API.G_FALSE
AND l_duplicate_flag_tbl(i) = FND_API.G_FALSE;
UPDATE po_price_diff_draft
SET delete_flag = p_delete_flag_tbl(i)
WHERE price_differential_id = p_price_differential_id_tbl(i)
AND draft_id = p_draft_id_tbl(i)
AND NVL(delete_flag, 'N') <> 'Y' -- bug5570989
AND x_record_already_exist_tbl(i) = FND_API.G_TRUE;
PO_LOG.stmt(d_module, d_position, 'update draft records that are already' ||
' in draft table. Count = ' || SQL%ROWCOUNT);
p_delete_flag IN VARCHAR2,
x_record_already_exist OUT NOCOPY VARCHAR2
) IS
d_api_name CONSTANT VARCHAR2(30) := 'sync_draft_from_txn';
p_delete_flag_tbl => PO_TBL_VARCHAR1(p_delete_flag),
x_record_already_exist_tbl => l_record_already_exist_tbl
);
DELETE FROM po_price_differentials PPD
WHERE PPD.price_differential_id IN
( SELECT PPDD.price_differential_id
FROM po_price_diff_draft PPDD
WHERE PPDD.draft_id = p_draft_id
AND PPDD.delete_flag = 'Y'
AND NVL(PPDD.change_accepted_flag, 'Y') = 'Y');
SELECT
PPDD.draft_id,
PPDD.delete_flag,
PPDD.change_accepted_flag,
PPDD.price_differential_id,
PPDD.price_differential_num,
PPDD.entity_id,
PPDD.entity_type,
PPDD.price_type,
PPDD.enabled_flag,
PPDD.min_multiplier,
PPDD.max_multiplier,
PPDD.multiplier,
PPDD.creation_date,
PPDD.created_by,
PPDD.last_update_date,
PPDD.last_updated_by,
PPDD.last_update_login
FROM po_price_diff_draft PPDD
WHERE PPDD.draft_id = p_draft_id
AND NVL(PPDD.change_accepted_flag, 'Y') = 'Y'
) PPDDV
ON (PPD.price_differential_id = PPDDV.price_differential_id)
WHEN MATCHED THEN
UPDATE
SET
PPD.price_differential_num = PPDDV.price_differential_num,
PPD.price_type = PPDDV.price_type,
PPD.enabled_flag = PPDDV.enabled_flag,
PPD.min_multiplier = PPDDV.min_multiplier,
PPD.max_multiplier = PPDDV.max_multiplier,
PPD.multiplier = PPDDV.multiplier,
PPD.last_update_date = PPDDV.last_update_date,
PPD.last_updated_by = PPDDV.last_updated_by,
PPD.last_update_login = PPDDV.last_update_login
-- DELETE WHERE PPDDV.delete_flag = 'Y'
WHEN NOT MATCHED THEN
INSERT
(
PPD.price_differential_id,
PPD.price_differential_num,
PPD.entity_id,
PPD.entity_type,
PPD.price_type,
PPD.enabled_flag,
PPD.min_multiplier,
PPD.max_multiplier,
PPD.multiplier,
PPD.creation_date,
PPD.created_by,
PPD.last_update_date,
PPD.last_updated_by,
PPD.last_update_login
)
VALUES
(
PPDDV.price_differential_id,
PPDDV.price_differential_num,
PPDDV.entity_id,
PPDDV.entity_type,
PPDDV.price_type,
PPDDV.enabled_flag,
PPDDV.min_multiplier,
PPDDV.max_multiplier,
PPDDV.multiplier,
PPDDV.creation_date,
PPDDV.created_by,
PPDDV.last_update_date,
PPDDV.last_updated_by,
PPDDV.last_update_login
) WHERE NVL(PPDDV.delete_flag, 'N') <> 'Y';
SELECT 1
INTO l_dummy
FROM po_price_diff_draft
WHERE price_differential_id = p_price_differential_id
AND draft_id = p_draft_id
FOR UPDATE NOWAIT;
SELECT 1
INTO l_dummy
FROM po_price_differentials
WHERE price_differential_id = p_price_differential_id
FOR UPDATE NOWAIT;