The following lines contain the word 'select', 'insert', 'update' or 'delete':
SELECT 1
FROM po_headers POH, po_lines POL, po_line_locations PLL,
po_distributions POD
WHERE POH.po_header_id = p_document_id
AND POH.po_header_id = POL.po_header_id (+) -- JOIN
AND POL.po_line_id = PLL.po_line_id (+) -- JOIN
-- Need NVL(..) because we cannot use (+) with the IN operator:
-- : Include PREPAYMENT shipment_types in locking.
AND NVL(PLL.shipment_type, 'STANDARD') IN ('STANDARD', 'PLANNED', 'PREPAYMENT')
AND PLL.line_location_id = POD.line_location_id (+) -- JOIN
FOR UPDATE NOWAIT;
SELECT 1
FROM po_headers POH, po_lines POL, po_line_locations PLL
WHERE POH.po_header_id = p_document_id
AND POH.po_header_id = POL.po_header_id (+) -- JOIN
AND POL.po_line_id = PLL.po_line_id (+) -- JOIN
AND PLL.shipment_type (+) = 'PRICE BREAK'
FOR UPDATE NOWAIT;
SELECT 1
FROM po_releases POR, po_line_locations PLL, po_distributions POD
WHERE POR.po_release_id = p_document_id
AND POR.po_release_id = PLL.po_release_id (+) -- JOIN
AND PLL.line_location_id = POD.line_location_id (+) -- JOIN
FOR UPDATE NOWAIT;
SELECT 1
FROM po_requisition_headers porh, po_requisition_lines porl,
po_req_distributions pord
WHERE porh.requisition_header_id = p_document_id
AND porh.requisition_header_id = porl.requisition_header_id (+) -- JOIN
AND porl.requisition_line_id = pord.requisition_line_id (+) -- JOIN
FOR UPDATE NOWAIT;
SELECT 1
INTO l_dummy
FROM po_headers
WHERE po_header_id = p_document_id
AND type_lookup_code IN ('STANDARD','PLANNED');
SELECT 1
INTO l_dummy
FROM po_headers
WHERE po_header_id = p_document_id
AND type_lookup_code IN ('BLANKET','CONTRACT');
SELECT 1
INTO l_dummy
FROM po_releases
WHERE po_release_id = p_document_id;
SELECT 1
INTO l_dummy
FROM po_requisition_headers porh
WHERE porh.requisition_header_id = p_document_id;
p_user_id IN po_lines.last_updated_by%TYPE,
p_login_id IN po_lines.last_update_login%TYPE ,
po_sesiongt_key IN po_session_gt.key%TYPE)
IS
d_api_name CONSTANT VARCHAR2(30) := 'LOCK_DOCUMENT.';
SELECT 1
FROM po_headers POH,
po_lines POL,
po_line_locations PLL,
po_distributions POD,
po_session_gt gt
WHERE gt.KEY=po_sesiongt_key
AND POH.po_header_id =gt.char4
AND gt.char1 = 'PO'
AND POH.po_header_id = POL.po_header_id (+) -- JOIN
AND POL.po_line_id = PLL.po_line_id (+) -- JOIN
AND NVL(PLL.shipment_type, 'STANDARD') IN ('STANDARD', 'PLANNED', 'PREPAYMENT')
AND PLL.line_location_id = POD.line_location_id (+) -- JOIN
FOR UPDATE NOWAIT;
SELECT 1
FROM po_headers POH,
po_lines POL,
po_line_locations PLL,
po_session_gt gt
WHERE gt.KEY=po_sesiongt_key
AND POH.po_header_id =gt.char4
AND gt.char1 = 'PA'
AND POH.po_header_id = POL.po_header_id (+) -- JOIN
AND POL.po_line_id = PLL.po_line_id (+) -- JOIN
AND PLL.shipment_type (+) = 'PRICE BREAK'
FOR UPDATE NOWAIT;
SELECT 1
FROM po_releases POR, po_line_locations PLL,
po_distributions POD,
po_session_gt gt
WHERE gt.KEY=po_sesiongt_key
AND POR.po_release_id =gt.char4
AND gt.char1 = 'RELEASE'
AND POR.po_release_id = PLL.po_release_id (+) -- JOIN
AND PLL.line_location_id = POD.line_location_id (+) -- JOIN
FOR UPDATE NOWAIT;
SELECT Nvl(Max(sequence) ,0)
INTO l_sequence
FROM PO_ONLINE_REPORT_TEXT
WHERE online_report_id=p_online_report_id;
INSERT INTO PO_ONLINE_REPORT_TEXT
(ONLINE_REPORT_ID,
LAST_UPDATE_LOGIN,
LAST_UPDATED_BY,
LAST_UPDATE_DATE,
CREATED_BY,
CREATION_DATE,
LINE_NUM,
SHIPMENT_NUM,
DISTRIBUTION_NUM,
SEQUENCE,
TEXT_LINE,
transaction_id,
transaction_level)
VALUES
( p_online_report_id,
p_login_id,
p_user_id,
SYSDATE,
p_user_id,
SYSDATE,
0,
0,
0,
l_sequence + 1,
PO_CORE_S.get_translated_text
('PO_DOC_CANNOT_LOCK'),
0,
0);