Я получаю сообщение об ошибке "Непоследовательные типы данных: ожидается, что% s получил% s" при использовании функции XMLAGG для объединения нескольких значений и, наконец, применения PIVOT к результату.
Я попытался удалить функцию агрегирования (MAX, MIN и т. Д.) В разделе PIVOT, когда я удаляю PIVOT, запрос не имеет проблем. PIVOT не работает со столбцами XMLAGG?
SELECT *
FROM
(SELECT pr.id PR_ID,
p.name PROJECT,
df.name field,
(SELECT (XMLAGG(XMLELEMENT (e, SUBSTR(s_value, - instr(reverse(s_value), '\') + 1)
|| '<eof>')).EXTRACT('//text()').GetClobVal())
FROM pr_addtl_data pad2
WHERE pad2.pr_id = pr.id
AND pad2.data_field_id=df.id
) "Files"
FROM pr pr
LEFT OUTER JOIN pr_addtl_data pad
ON pr.id=pad.pr_id
LEFT OUTER JOIN project p
ON pr.project_id = p.id
LEFT OUTER JOIN data_fields df
ON pad.data_field_id=df.id
WHERE df.name IN ('Attached Files','Certificate of Audit Files')
AND p.name LIKE 'Audit'
AND pr.is_closed = 1
GROUP BY pr.id,
p.name,
df.id,
df.name
) PIVOT ( MAX("Files") FOR field IN ('Attached Files','Certificate of Audit Files') )