Я создаю новую процедуру для обновления неправильного поля sql из таблицы БД (po_headers_all)
и поля таблицы (ATTRIBUTE2)
.Затем, когда я пытаюсь выполнить процедуру, появляется сообщение об ошибке «ORA-00911: недопустимый символ»
Запуск сценария в среде БД: ORACLE 12C
procedure update_epo_attribute2 (epo_num NUMBER, P_ORG_ID NUMBER) IS
BEGIN
UPDATE apps.po_headers_all
SET ATTRIBUTE2 = 'Contract'
WHERE ATTRIBUTE2 = 'Perm'
AND segment1 = EPO_NUM
AND org_id = P_ORG_ID
AND segment1 IN (SELECT poh.segment1
FROM apps.po_requisition_headers_all prh,
apps.po_requisition_lines_all prl,
apps.po_req_distributions_all prd,
apps.po_headers_all poh,
apps.po_distributions_all pda
WHERE prh.requisition_header_id = prl.requisition_header_id
AND prh.type_lookup_code = 'PURCHASE'
AND prd.requisition_line_id = prl.requisition_line_id
AND pda.req_distribution_id (+) = prd.distribution_id
AND pda.po_header_id = poh.po_header_id (+)
AND poh.ATTRIBUTE2 = 'Perm'
AND prl.SUGGESTED_VENDOR_LOCATION = 'CONTRACT');
commit;
end;
Затем приведенный ниже пример выполнения сценария процедуры в элементе управления ORACLE:
='declare
begin
PO_ETL.update_epo_attribute2 ('''||${item.PO_HEADERS.SEGMENT1.VALUE}||''','''||$${item.PO_HEADERS.ORG_ID.VALUE}||''');
end'
Результат не выполнен и отображается сообщение об ошибке "ORA-00911: недействительносимвол ".