使用 Oracle APEX,我想选择原始 XML 格式数据作为文本。我应该使用哪个元素?
select xmlroot(
xmlelement("vozidlo",
xmlattributes(
a.vyrobne_cislo as "vin",
a.datum_vyroby as "dat_vyroby"
),
xmlforest(
c.nazov as "vyrobca",
a.nazov_modelu as "model",
a.farba as "farba",
rtrim(a.kod_motora) as "kod_motor",
rtrim(a.kod_prevodovky) as "kod_prevodovka",
d.popis as "typ_karoserie",
xmlagg(
xmlelement("zaznam",
xmlattributes (
g.datum as "datum"
),
xmlforest(
g.akcia as "popis",
g.kilometre as "kilometre"
)
) order by g.kilometre
) as "zaznamy"
)
)
, version '1.0') result
from vozidlo a
join model b on a.typ_karoserie = b.typ_karoserie
and a.nazov_modelu = b.nazov_modelu
and a.id_vyrobcu = b.id_vyrobcu
join vyrobca c on b.id_vyrobcu = c.id_vyrobcu
join typ_karoserie d on d.id_typu = b.typ_karoserie
left join (
select e.vyrobne_cislo, f.datum, f.akcia, f.kilometre
from vozidlo e, table(e.zaznamy) f) g on g.vyrobne_cislo = a.vyrobne_cislo
where a.vyrobne_cislo = :P7_VIN_VOZIDLA
group by a.vyrobne_cislo, a.datum_vyroby, c.nazov, a.nazov_modelu, a.farba, a.kod_motora, a.kod_prevodovky, d.popis
fetch first row only;
目前我正在使用动态连接元素,它无法正确显示格式。而不是这种格式
我收到了这个...
我还尝试了其他元素,例如 Textarea,但它加载时显示错误消息。
如果您不需要将 XML 作为 XML,则可以将其转换为 CLOB:
xmlroot(xmlelement("vozidlo", ...), version '1.0').getclobval() as result
但是 XMLRoot 已被弃用,所以你应该使用 XMLSerialize:
xmlserialize(document xmlelement("vozidlo", ...) as clob version '1.0') as result
fiddle(非常)简单的例子。