显示 XMLType 值

问题描述 投票:0回答:1

使用 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,但它加载时显示错误消息。

sql xml oracle apex
1个回答
0
投票

如果您不需要将 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(非常)简单的例子。

© www.soinside.com 2019 - 2024. All rights reserved.