0
您好我一直被委托摆脱许多更新语句中的bypass_ujvc提示,因为它在Oracle 12c中不再受支持,所以我决定替换更新语句与合并声明,不幸的是其中一个更新语句有一个返回子句和一个批量收集,所以我不确定如何处理这个作为合并语句不使用返回子句。任何意见非常感谢。查询如下。在12c中取出bypass_ujvc提示将更新转换为合并语句
UPDATE /*+ bypass_ujvc */ (SELECT caco.surr_id,
caco.lead_item_yn,
caco.case_reference,
caco.logically_deleted_y
FROM TABLE (CAST(l_cc_surr_id AS db_surr_id_type_tab)) cc
JOIN case_contexts caco ON (caco.cc_surr_id = cc.COLUMN_VALUE)
JOIN cases cas ON (cas.REFERENCE = caco.case_reference)
WHERE caco.logically_deleted_y IS NULL
AND cas.status IN ('INP', 'TOS'))
SET logically_deleted_y = 'Y'
RETURNING surr_id, lead_item_yn, case_reference
BULK COLLECT INTO l_caco_surr_id, l_lead_item, l_all_cases;
你可以看看'forall'的方法。如果我抽了一段时间,我会举一个例子。 –
感谢威廉,这可能是一个好主意 –