Есть таблица в Oracle, в ней несколько столбцов разных типов, среди которых есть CLOB'ы. Задача: сделать выборку из этой таблицы в xml-документ так, чтобы на каждую строку таблицы приходился один нод xml и в этом ноде в качестве аттрибутов — все столбцы таблицы. В примере оставлен только проблемный столбец типа CLOB, из-за него селект падает с "ORA-00932: несовместимые типы данных: ожидается -, получено CLOB".
SELECT XMLTYPE('<root>' || XMLAGG(
XMLELEMENT("RESULT",
XMLATTRIBUTES(SOME_CLOB_DATA AS ATTR_NAME))).extract('RESULT') || '</root>')
FROM T_XSLT_SETTINGS;
dbms_xmlgen.newContext() использовать не очень-то хочется, так как xml получается вида
<ROWSET>
<T_XSLT_SETTINGS>
<SET_ID>1</SET_ID>
<LAST_MODIFY>25.05.06</LAST_MODIFY>
<SETTING><xsl:s...</SETTING>
</T_XSLT_SETTINGS>
</ROWSET
а нужно каждый столбец именно в АТРИБУТЕ, а не в НОДЕ.