【问题标题】:PL/SQL Object Type to XMLPL/SQL 对象类型到 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”)这能够提供属性,但我无法获取标签值。这个结果是
    。如何为金额标签增加价值??

标签: xml plsql xmltype


【解决方案1】:

如果可能,您可以采用这种不同的方法:

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 个标签,使用这种方法很难管理。因此,我们希望创建对象并将值分配给相应的标签。
猜你喜欢
  • 2010-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-15
相关资源
最近更新 更多