The following lines contain the word 'select', 'insert', 'update' or 'delete':
PROCEDURE delete_rows
( p_draft_id IN NUMBER,
p_org_assignment_id IN NUMBER
) IS
d_api_name CONSTANT VARCHAR2(30) := 'delete_rows';
DELETE FROM po_ga_org_assign_draft
WHERE draft_id = p_draft_id
AND org_assignment_id = NVL(p_org_assignment_id, org_assignment_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_ga_org_assign_draft
(
draft_id,
delete_flag,
change_accepted_flag,
org_assignment_id,
po_header_id,
organization_id,
enabled_flag,
vendor_site_id,
last_update_date,
last_updated_by,
creation_date,
created_by,
last_update_login,
purchasing_org_id
)
SELECT
p_draft_id_tbl(i),
p_delete_flag_tbl(i),
NULL,
org_assignment_id,
po_header_id,
organization_id,
enabled_flag,
vendor_site_id,
last_update_date,
last_updated_by,
creation_date,
created_by,
last_update_login,
purchasing_org_id
FROM po_ga_org_assignments
WHERE org_assignment_id = p_org_assignment_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_ga_org_assign_draft
SET delete_flag = p_delete_flag_tbl(i)
WHERE org_assignment_id = p_org_assignment_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_ga_org_assignments PGOA
WHERE PGOA.org_assignment_id IN
( SELECT PGOAD.org_assignment_id
FROM po_ga_org_assign_draft PGOAD
WHERE PGOAD.draft_id = p_draft_id
AND PGOAD.delete_flag = 'Y'
AND NVL(PGOAD.change_accepted_flag, 'Y') = 'Y' );
SELECT
PGOAD.draft_id,
PGOAD.delete_flag,
PGOAD.change_accepted_flag,
PGOAD.org_assignment_id,
PGOAD.po_header_id,
PGOAD.organization_id,
PGOAD.enabled_flag,
PGOAD.vendor_site_id,
PGOAD.last_update_date,
PGOAD.last_updated_by,
PGOAD.creation_date,
PGOAD.created_by,
PGOAD.last_update_login,
PGOAD.purchasing_org_id
FROM po_ga_org_assign_draft PGOAD
WHERE PGOAD.draft_id = p_draft_id
AND NVL(PGOAD.change_accepted_flag, 'Y') = 'Y'
) PGOADV
ON (PGOA.org_assignment_id = PGOADV.org_assignment_id)
WHEN MATCHED THEN
UPDATE
SET
PGOA.po_header_id = PGOADV.po_header_id,
PGOA.organization_id = PGOADV.organization_id,
PGOA.enabled_flag = PGOADV.enabled_flag,
PGOA.vendor_site_id = PGOADV.vendor_site_id,
PGOA.last_update_date = PGOADV.last_update_date,
PGOA.last_updated_by = PGOADV.last_updated_by,
PGOA.last_update_login = PGOADV.last_update_login,
PGOA.purchasing_org_id = PGOADV.purchasing_org_id
-- DELETE WHERE PGOADV.delete_flag = 'Y'
WHEN NOT MATCHED THEN
INSERT
(
PGOA.org_assignment_id,
PGOA.po_header_id,
PGOA.organization_id,
PGOA.enabled_flag,
PGOA.vendor_site_id,
PGOA.last_update_date,
PGOA.last_updated_by,
PGOA.creation_date,
PGOA.created_by,
PGOA.last_update_login,
PGOA.purchasing_org_id
)
VALUES
(
PGOADV.org_assignment_id,
PGOADV.po_header_id,
PGOADV.organization_id,
PGOADV.enabled_flag,
PGOADV.vendor_site_id,
PGOADV.last_update_date,
PGOADV.last_updated_by,
PGOADV.creation_date,
PGOADV.created_by,
PGOADV.last_update_login,
PGOADV.purchasing_org_id
) WHERE NVL(PGOADV.delete_flag, 'N') <> 'Y';
SELECT 1
INTO l_dummy
FROM po_ga_org_assign_draft
WHERE org_assignment_id = p_org_assignment_id
AND draft_id = p_draft_id
FOR UPDATE NOWAIT;
SELECT 1
INTO l_dummy
FROM po_ga_org_assignments
WHERE org_assignment_id = p_org_assignment_id
FOR UPDATE NOWAIT;