CLOB/BLOB в качестве атрибута XML
От: ChyzhAndrei  
Дата: 18.12.09 08:07
Оценка:
Есть таблица в 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

а нужно каждый столбец именно в АТРИБУТЕ, а не в НОДЕ.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.