ORA-40478 - выходное значение слишком велико (максимум: 4000) даже при возврате сгустка - PullRequest
0 голосов
/ 10 апреля 2020

Даже при возврате CLOB возникает та же ошибка. Я увеличил размер строки в базе данных до расширенного, но ошибка все еще существует.

SELECT JSON_ARRAYAGG(JSON_OBJECT(
                   'assmCode' VALUE part_group.assm_code,
                   'slotCode' VALUE part_group.slot_code,
                   'partGroupCode' VALUE part_group.part_group_code,
                   'partGroupName' VALUE part_group.part_group_name,
                   'invClassCode' VALUE part_group.inv_class_code,
                   'effectivity' VALUE part_group.effectivity,
                   'quantity' VALUE part_group.quantity,
                   'condition' VALUE part_group.condition,
                   'isReqSpecPart' VALUE DECODE(part_group.is_req_spec_part,'1','true','false'),
                   'alternates' VALUE (SELECT JSON_ARRAYAGG(
                                             JSON_OBJECT(
                                                   'interChgOrd' VALUE pg_part.inter_chg_ord,
                                                   'effectivity' VALUE pg_part.effectivity,
                                                   'isStandard' VALUE DECODE(pg_part.is_standard,'1','true','false'),
                                                   'isConditional' VALUE DECODE(pg_part.is_conditional,'1','true','false'),
                                                   'isApproved' VALUE DECODE( pg_part.rowstate , 'Approved' , 'true','false'),
                                                   'part' VALUE (SELECT JSON_ARRAYAGG(JSON_OBJECT(
                                                                         'oemPartNo' VALUE part.oem_part_no,
                                                                         'manufacturerCode' VALUE part.manufacturer_code,
                                                                         'partName' VALUE part.part_name,
                                                                         'isPmaPart' VALUE DECODE(part.is_pma_part,'1','true','false')
                                                                      )RETURNING CLOB) FROM opr_publish_part part
                                                                           WHERE part.opr_publish_part_id = pg_part.opr_publish_part_id)
                                             )RETURNING CLOB)FROM opr_publish_pg_part_tab pg_part
                                               WHERE publish_part_group_id = part_group.publish_part_group_id AND pg_part.rowstate!='Unassigned'))RETURNING CLOB)
   FROM opr_publish_part_group_tab part_group
   WHERE publish_part_group_id = 123123;

Фактическая проблема заключается в операторе select ключа JSON 'part', поскольку он возвращает более 4000 байт данных.

Я пробовал несколько способов исправить эту проблему, но возникает та же ошибка. 1) Изменение размера строки базы данных для расширения. 2) Возврат VARCHAR2 (32000).

...