我创建新过程来更新数据库表(po_headers_all)
和表字段(ATTRIBUTE2)
中错误的sql字段。
然后,当我尝试执行该过程时,显示“ 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:无效字符” 。