PL/SQL 对象类型到 XML
Posted
技术标签:
【中文标题】PL/SQL 对象类型到 XML【英文标题】:PL/SQL Object Type to XML 【发布时间】:2020-01-12 16:59:47 【问题描述】:我正在尝试从 PL/SQL 对象创建 XML
<header>
<Amount Ccy="USD">100</Amount>
</header>
对于上述结果,我尝试创建如下所示的 PL/SQL 对象:-
create or replace type "header" as object( "Amount" number)
DECLARE
l_header "header";
l_xml xmltype;
BEGIN
l_header := NEW "header"(100);
l_xml := xmltype(l_header);
dbms_output.put_line(l_xml.getclobval);
END;
Result of above is
<header><Amount>100</Amount></header>
如何在 pl/sql 对象创建中包含 Ccy 属性?
【问题讨论】:
我确信这可以通过 pl/sql 类型来实现,看起来我缺少金额标签。 嗨,任何使用 pl/sql 类型获取属性和标签值的帮助都会非常有帮助。 嗨,我知道我们可以在 plsql 类型创建中使用 @ 添加属性。例如。创建或替换类型“Amount_t”作为对象(“@Ccy”);创建或替换类型“header”作为对象(“Amount”“Amount_t”)这能够提供属性,但我无法获取标签值。这个结果是如果可能,您可以采用这种不同的方法:
DECLARE
l_xml xmltype;
BEGIN
SELECT XMLELEMENT
( "header",
XMLELEMENT
(
"Amount",
XMLATTRIBUTES
(
'USD' AS "Ccy"
)
)
)
INTO l_xml
FROM dual;
dbms_output.put_line(l_xml.getclobval);
END;
【讨论】:
您好,实际的 xml 相当大,有 200 个标签,使用这种方法很难管理。因此,我们希望创建对象并将值分配给相应的标签。以上是关于PL/SQL 对象类型到 XML的主要内容,如果未能解决你的问题,请参考以下文章
pl/sql 对象类型“ORA-06530:引用未初始化的复合”错误