sql >> Databáze >  >> RDS >> Oracle

Jak přejmenovat uzel Oracle XMLTYPE

Jednou z možností je použít XMLTRANSFORM přejmenovat uzel. Viz také např. Přejmenování uzlů pomocí XSLT .

with
xmldata as (select xmltype('<root>
  <fields>
    <a>foo</a>
    <b>bar</b>
  </fields>
</root>') val from dual),
stylesheet as (select '<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <!-- Identity transformation -->
  <xsl:template match="node()|@*">
    <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
  </xsl:template>
  <!-- Identity transformation overridden for element b -->
  <xsl:template match="b">
    <xsl:element name="c">
      <xsl:apply-templates select="node()|@*"/>
    </xsl:element>
  </xsl:template>
</xsl:stylesheet>' val from dual)
select xmltransform(x.val, s.val) from xmldata x, stylesheet s;

Výstup:

XMLTRANSFORM(X.VAL,S.VAL)
--------------------------------------------------------------------------------
<root>
  <fields>
    <a>foo</a>
    <c>bar</c>
  </fields>
</root>


  1. Chyba:Výplň:Vlastnost SelectCommand.Connection nebyla inicializována.

  2. Získejte celkový počet polí seskupených podle data a dalšího pole

  3. Resetujte hodnotu sekvence na 1

  4. Unicode v SQL Server 2012 Express