Чтобы использовать формирование xml-документов на сервере, необходимо, чтобы одновременно выполнялись следующие условия: - Используется Oracle версии не ниже 11.
- Таблица не содержит полей типа BLOB.
В этом случае будут формироваться и выполняться запросы вида 1with T as (select T.* from "..." T )
2select "SYS$HELPER"."ClobToBlob"('<data handle="' || count(1) || '" eof="1">' ||
3 xmlagg(xmlelement("row", xmlelement("ID", xmlattributes('int64' as "type"), T."ID"),
4 case when "..." is null then xmltype('<..../>') else
5 xmlelement("....", xmlattributes('ascii' as "type"), "SYS$HELPER"."XMLEscape"(asciistr(T."...."), 0)) end,
6 ....
7 order by T."ID").getclobval() || '</data>'), count(1) from T
При выполнении такого запроса клиент получит blob, содержащий требуемый xml-документ в требуемой кодировке. |