forked from docs/doc-exports
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com> Co-authored-by: Lu, Huayi <luhuayi@huawei.com> Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
268 lines
34 KiB
HTML
268 lines
34 KiB
HTML
<a name="EN-US_TOPIC_0000001450136728"></a><a name="EN-US_TOPIC_0000001450136728"></a>
|
|
|
|
<h1 class="topictitle1">Generating XML Content</h1>
|
|
<div id="body0000001450136728"><p id="EN-US_TOPIC_0000001450136728__p1043553714519">Expressions of functions and class functions in this section can be used to generate XML content from SQL data. This method is used to format query results into XML documents for processing in client applications.</p>
|
|
<div class="section" id="EN-US_TOPIC_0000001450136728__section16644814446"><h4 class="sectiontitle">XMLPARSE ( { DOCUMENT | CONTENT } <em id="EN-US_TOPIC_0000001450136728__i66589814447">value</em>)</h4><p id="EN-US_TOPIC_0000001450136728__p186587864417">Description: Generates an XML value from character data.</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p1265810811446">Return type: XML</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p176581285445">Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001450136728__screen10659118184411"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">xmlparse</span><span class="p">(</span><span class="n">document</span><span class="w"> </span><span class="s1">'<foo>bar</foo>'</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="n">xmlparse</span>
|
|
<span class="c1">----------------</span>
|
|
<span class="w"> </span><span class="o"><</span><span class="n">foo</span><span class="o">></span><span class="n">bar</span><span class="o"></</span><span class="n">foo</span><span class="o">></span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001450136728__section612545820446"><h4 class="sectiontitle">XMLSERIALIZE ( { DOCUMENT | CONTENT } <em id="EN-US_TOPIC_0000001450136728__i15892113719226">value</em> AS <em id="EN-US_TOPIC_0000001450136728__i1665764113225">type</em></h4><p id="EN-US_TOPIC_0000001450136728__p16125958154416">Description: Generates a string from XML values.</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p1312519582445">Return type: type, which can be character, character varying, or text (or its alias)</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p9125145844412">Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001450136728__screen6125175894420"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">xmlserialize</span><span class="p">(</span><span class="n">content</span><span class="w"> </span><span class="s1">'good'</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="mi">10</span><span class="p">));</span>
|
|
<span class="w"> </span><span class="n">xmlserialize</span>
|
|
<span class="c1">--------------</span>
|
|
<span class="w"> </span><span class="n">good</span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001450136728__section1389015547444"><h4 class="sectiontitle">xmlcomment(text)</h4><p id="EN-US_TOPIC_0000001450136728__p1189035418442">Description: Creates an XML note that uses the specified text as the content. The text cannot contain (--) or end with a hyphen (-). If the parameter is null, the result is also null.</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p188901354184412">Return type: XML</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p289055413448">Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001450136728__screen78902542445"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">xmlcomment</span><span class="p">(</span><span class="s1">'hello'</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="n">xmlcomment</span>
|
|
<span class="c1">--------------</span>
|
|
<span class="w"> </span><span class="o"><!</span><span class="c1">--hello--></span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001450136728__section755910513447"><h4 class="sectiontitle">xmlconcat(xml[, ...])</h4><p id="EN-US_TOPIC_0000001450136728__p5559135174411">Description: Concatenates a list of XML values into a single value. Null values are ignored. If all parameters are null, the result is also null.</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p145594518444">Return type: XML</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p5559251194412">Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001450136728__screen15559125112443"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">xmlconcat</span><span class="p">(</span><span class="s1">'<abc/>'</span><span class="p">,</span><span class="w"> </span><span class="s1">'<bar>foo</bar>'</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="n">xmlconcat</span>
|
|
<span class="c1">----------------------</span>
|
|
<span class="w"> </span><span class="o"><</span><span class="n">abc</span><span class="o">/><</span><span class="n">bar</span><span class="o">></span><span class="n">foo</span><span class="o"></</span><span class="n">bar</span><span class="o">></span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001450136728__p155985117444">Note: If XML declarations exist and they are the same XML version, the result will use the version. Otherwise, the result does not use any version. If all XML values have the <strong id="EN-US_TOPIC_0000001450136728__b67916550193734">standalone</strong> attribute whose status is <strong id="EN-US_TOPIC_0000001450136728__b114533198693734">yes</strong>, the <strong id="EN-US_TOPIC_0000001450136728__b41506381293734">standalone</strong> attribute in the result is <strong id="EN-US_TOPIC_0000001450136728__b212910382693734">yes</strong>. If at least one XML value's <strong id="EN-US_TOPIC_0000001450136728__b26193738193734">standalone</strong> attribute is <strong id="EN-US_TOPIC_0000001450136728__b175685349393734">no</strong>, the <strong id="EN-US_TOPIC_0000001450136728__b44461762493734">standalone</strong> attribute in the result is <strong id="EN-US_TOPIC_0000001450136728__b148451379393734">no</strong>. Otherwise, the result does not contain the <strong id="EN-US_TOPIC_0000001450136728__b122332007693734">standalone</strong> attribute.</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p12559195194415">Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001450136728__screen4559551174418"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">xmlconcat</span><span class="p">(</span><span class="s1">'<?xml version="1.1"?><foo/>'</span><span class="p">,</span><span class="w"> </span><span class="s1">'<?xml version="1.1" standalone="no"?><bar/>'</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="n">xmlconcat</span>
|
|
<span class="c1">-----------------------------------</span>
|
|
<span class="w"> </span><span class="o"><?</span><span class="n">xml</span><span class="w"> </span><span class="k">version</span><span class="o">=</span><span class="ss">"1.1"</span><span class="o">?><</span><span class="n">foo</span><span class="o">/><</span><span class="n">bar</span><span class="o">/></span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001450136728__section1043204744419"><h4 class="sectiontitle">xmlelement(name name [, xmlattributes(value [AS attname] [, ... ])] [, content, ...])</h4><p id="EN-US_TOPIC_0000001450136728__p1243220479443">Description: Generates an XML element with the given name, attribute, and content.</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p17432114713440">Return type: XML</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p194323475445">Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001450136728__screen54329472445"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
|
<span class="normal"> 2</span>
|
|
<span class="normal"> 3</span>
|
|
<span class="normal"> 4</span>
|
|
<span class="normal"> 5</span>
|
|
<span class="normal"> 6</span>
|
|
<span class="normal"> 7</span>
|
|
<span class="normal"> 8</span>
|
|
<span class="normal"> 9</span>
|
|
<span class="normal">10</span>
|
|
<span class="normal">11</span>
|
|
<span class="normal">12</span>
|
|
<span class="normal">13</span>
|
|
<span class="normal">14</span>
|
|
<span class="normal">15</span>
|
|
<span class="normal">16</span>
|
|
<span class="normal">17</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">xmlelement</span><span class="p">(</span><span class="n">name</span><span class="w"> </span><span class="n">foo</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="n">xmlelement</span>
|
|
<span class="c1">------------</span>
|
|
<span class="w"> </span><span class="o"><</span><span class="n">foo</span><span class="o">/></span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
|
|
<span class="k">SELECT</span><span class="w"> </span><span class="n">xmlelement</span><span class="p">(</span><span class="n">name</span><span class="w"> </span><span class="n">foo</span><span class="p">,</span><span class="w"> </span><span class="n">xmlattributes</span><span class="p">(</span><span class="s1">'xyz'</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">bar</span><span class="p">));</span>
|
|
<span class="w"> </span><span class="n">xmlelement</span>
|
|
<span class="c1">------------------</span>
|
|
<span class="w"> </span><span class="o"><</span><span class="n">foo</span><span class="w"> </span><span class="n">bar</span><span class="o">=</span><span class="ss">"xyz"</span><span class="o">/></span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
|
|
<span class="k">SELECT</span><span class="w"> </span><span class="n">xmlelement</span><span class="p">(</span><span class="n">name</span><span class="w"> </span><span class="n">foo</span><span class="p">,</span><span class="w"> </span><span class="n">xmlattributes</span><span class="p">(</span><span class="k">current_date</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">bar</span><span class="p">),</span><span class="w"> </span><span class="s1">'cont'</span><span class="p">,</span><span class="w"> </span><span class="s1">'ent'</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="n">xmlelement</span>
|
|
<span class="c1">-------------------------------------</span>
|
|
<span class="w"> </span><span class="o"><</span><span class="n">foo</span><span class="w"> </span><span class="n">bar</span><span class="o">=</span><span class="ss">"2023-08-16"</span><span class="o">></span><span class="n">content</span><span class="o"></</span><span class="n">foo</span><span class="o">></span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001450136728__p91374919126">Element and attribute names without valid XML names are escaped by replacing invalid characters with the sequence <strong id="EN-US_TOPIC_0000001450136728__b164331101501">_xHHHH_</strong>, where <strong id="EN-US_TOPIC_0000001450136728__b1845711619508">HHHH</strong> is the Unicode code points of the character expressed in hexadecimal format. Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001450136728__screen2094193682117"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">xmlelement</span><span class="p">(</span><span class="n">name</span><span class="w"> </span><span class="ss">"foo$bar"</span><span class="p">,</span><span class="w"> </span><span class="n">xmlattributes</span><span class="p">(</span><span class="s1">'xyz'</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="ss">"a&b"</span><span class="p">));</span>
|
|
|
|
<span class="w"> </span><span class="n">xmlelement</span>
|
|
<span class="c1">----------------------------------</span>
|
|
<span class="w"> </span><span class="o"><</span><span class="n">foo_x0024_bar</span><span class="w"> </span><span class="n">a_x0026_b</span><span class="o">=</span><span class="ss">"xyz"</span><span class="o">/></span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001450136728__p81364941217">If the attribute value is a column reference, you do not need to specify an explicit attribute name, and the column name is used as the attribute name by default. In other cases, the attribute must be given an explicit name. So this example is legal:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001450136728__screen2023818561217"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">test</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="n">xml</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="n">xml</span><span class="p">);</span>
|
|
<span class="k">SELECT</span><span class="w"> </span><span class="n">xmlelement</span><span class="p">(</span><span class="n">name</span><span class="w"> </span><span class="n">test</span><span class="p">,</span><span class="w"> </span><span class="n">xmlattributes</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">))</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">test</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001450136728__p8141949161211">But these are illegal:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001450136728__screen14118202162210"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">xmlelement</span><span class="p">(</span><span class="n">name</span><span class="w"> </span><span class="n">test</span><span class="p">,</span><span class="w"> </span><span class="n">xmlattributes</span><span class="p">(</span><span class="s1">'constant'</span><span class="p">),</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">test</span><span class="p">;</span>
|
|
<span class="k">SELECT</span><span class="w"> </span><span class="n">xmlelement</span><span class="p">(</span><span class="n">name</span><span class="w"> </span><span class="n">test</span><span class="p">,</span><span class="w"> </span><span class="n">xmlattributes</span><span class="p">(</span><span class="n">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">)))</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">test</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001450136728__p614649151215">The element content, if specified, will be formatted based on its data type. If the content itself is of the XML type, a complex XML document will be constructed. Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001450136728__screen1372521916224"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">xmlelement</span><span class="p">(</span><span class="n">name</span><span class="w"> </span><span class="n">foo</span><span class="p">,</span><span class="w"> </span><span class="n">xmlattributes</span><span class="p">(</span><span class="s1">'xyz'</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">bar</span><span class="p">),</span><span class="n">xmlelement</span><span class="p">(</span><span class="n">name</span><span class="w"> </span><span class="n">abc</span><span class="p">),</span><span class="n">xmlcomment</span><span class="p">(</span><span class="s1">'test'</span><span class="p">),</span><span class="n">xmlelement</span><span class="p">(</span><span class="n">name</span><span class="w"> </span><span class="n">xyz</span><span class="p">));</span>
|
|
<span class="w"> </span><span class="n">xmlelement</span>
|
|
<span class="c1">----------------------------------------------</span>
|
|
<span class="w"> </span><span class="o"><</span><span class="n">foo</span><span class="w"> </span><span class="n">bar</span><span class="o">=</span><span class="ss">"xyz"</span><span class="o">><</span><span class="n">abc</span><span class="o">/><!</span><span class="c1">--test--><xyz/></foo></span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001450136728__p101434961215">Other types of content will be formatted into valid XML character data. This means that special characters <strong id="EN-US_TOPIC_0000001450136728__b15660203519269"><</strong>, <strong id="EN-US_TOPIC_0000001450136728__b8622113815265">></strong>, and <strong id="EN-US_TOPIC_0000001450136728__b10147942142611">&</strong> will be converted to entities. Binary data (data type bytea) is represented as Base64 or hexadecimal code, depending on the configuration parameter <strong id="EN-US_TOPIC_0000001450136728__b11759164162718">xmlbinary</strong>.</p>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001450136728__section8563124419446"><h4 class="sectiontitle">xmlforest(content [AS name] [, ...])</h4><p id="EN-US_TOPIC_0000001450136728__p855910449442">Description: Generates an XML forest (sequence) of an element with a given name and content.</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p655920448443">Return type: XML</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p1655964417448">Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001450136728__screen95615441447"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
|
<span class="normal"> 2</span>
|
|
<span class="normal"> 3</span>
|
|
<span class="normal"> 4</span>
|
|
<span class="normal"> 5</span>
|
|
<span class="normal"> 6</span>
|
|
<span class="normal"> 7</span>
|
|
<span class="normal"> 8</span>
|
|
<span class="normal"> 9</span>
|
|
<span class="normal">10</span>
|
|
<span class="normal">11</span>
|
|
<span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">xmlforest</span><span class="p">(</span><span class="s1">'abc'</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">foo</span><span class="p">,</span><span class="w"> </span><span class="mi">123</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">bar</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="n">xmlforest</span>
|
|
<span class="c1">------------------------------</span>
|
|
<span class="w"> </span><span class="o"><</span><span class="n">foo</span><span class="o">></span><span class="n">abc</span><span class="o"></</span><span class="n">foo</span><span class="o">><</span><span class="n">bar</span><span class="o">></span><span class="mi">123</span><span class="o"></</span><span class="n">bar</span><span class="o">></span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
|
|
<span class="k">SELECT</span><span class="w"> </span><span class="n">xmlforest</span><span class="p">(</span><span class="k">table_name</span><span class="p">,</span><span class="w"> </span><span class="k">column_name</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">ALL_TAB_COLUMNS</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="k">schema</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'pg_catalog'</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">xmlforest</span>
|
|
<span class="c1">------------------------------------------------------------------------------------------------------------------------</span>
|
|
<span class="w"> </span><span class="o"><</span><span class="k">table_name</span><span class="o">></span><span class="n">pg_authid</span><span class="o"></</span><span class="k">table_name</span><span class="o">><</span><span class="k">column_name</span><span class="o">></span><span class="n">rolsuper</span><span class="o"></</span><span class="k">column_name</span><span class="o">></span>
|
|
<span class="w"> </span><span class="o"><</span><span class="k">table_name</span><span class="o">></span><span class="n">pg_authid</span><span class="o"></</span><span class="k">table_name</span><span class="o">><</span><span class="k">column_name</span><span class="o">></span><span class="n">rolinherit</span><span class="o"></</span><span class="k">column_name</span><span class="o">></span>
|
|
<span class="w"> </span><span class="o"><</span><span class="k">table_name</span><span class="o">></span><span class="n">pg_authid</span><span class="o"></</span><span class="k">table_name</span><span class="o">><</span><span class="k">column_name</span><span class="o">></span><span class="n">rolcreaterole</span><span class="o"></</span><span class="k">column_name</span><span class="o">></span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001450136728__section7808341114419"><h4 class="sectiontitle">xmlpi(name target [, content])</h4><p id="EN-US_TOPIC_0000001450136728__p780874194411">Description: Creates an XML processing instruction. The content cannot contain the character sequence of <strong id="EN-US_TOPIC_0000001450136728__b47771103293734">?></strong>.</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p98084418445">Return type: XML</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p480844112449">Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001450136728__screen780815419449"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">xmlpi</span><span class="p">(</span><span class="n">name</span><span class="w"> </span><span class="n">php</span><span class="p">,</span><span class="w"> </span><span class="s1">'echo "hello world";'</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="n">xmlpi</span>
|
|
<span class="c1">-----------------------------</span>
|
|
<span class="w"> </span><span class="o"><?</span><span class="n">php</span><span class="w"> </span><span class="n">echo</span><span class="w"> </span><span class="ss">"hello world"</span><span class="p">;</span><span class="o">?></span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001450136728__section16871739124417"><h4 class="sectiontitle">xmlroot(xml, version text | no value [, standalone yes|no|no value])</h4><p id="EN-US_TOPIC_0000001450136728__p1287173913448">Description: Modifies the attributes of the root node of an XML value. If a version is specified, it replaces the value in the version declaration of the root node. If a <strong id="EN-US_TOPIC_0000001450136728__b92748668093734">standalone</strong> value is specified, it replaces the <strong id="EN-US_TOPIC_0000001450136728__b142386746393734">standalone</strong> value in the root node.</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p487123954412">Return type: XML</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p28717396446">Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001450136728__screen148716396442"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">xmlroot</span><span class="p">(</span><span class="n">xmlparse</span><span class="p">(</span><span class="n">document</span><span class="w"> </span><span class="s1">'<?xml version="1.0" standalone="no"?><content>abc</content>'</span><span class="p">),</span><span class="w"> </span><span class="k">version</span><span class="w"> </span><span class="s1">'1.1'</span><span class="p">,</span><span class="w"> </span><span class="n">standalone</span><span class="w"> </span><span class="n">yes</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="n">xmlroot</span>
|
|
<span class="c1">--------------------------------------------------------------</span>
|
|
<span class="w"> </span><span class="o"><?</span><span class="n">xml</span><span class="w"> </span><span class="k">version</span><span class="o">=</span><span class="ss">"1.1"</span><span class="w"> </span><span class="n">standalone</span><span class="o">=</span><span class="ss">"yes"</span><span class="o">?><</span><span class="n">content</span><span class="o">></span><span class="n">abc</span><span class="o"></</span><span class="n">content</span><span class="o">></span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001450136728__section2742193544415"><h4 class="sectiontitle">xmlagg(xml)</h4><p id="EN-US_TOPIC_0000001450136728__p18740435124416">Description: The <strong id="EN-US_TOPIC_0000001450136728__b124515044793734">xmlagg</strong> function is an aggregate function that concatenates input values.</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p17408352442">Return type: XML</p>
|
|
<p id="EN-US_TOPIC_0000001450136728__p87402035124416">Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001450136728__screen147411335104419"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span>
|
|
<span class="normal">6</span>
|
|
<span class="normal">7</span>
|
|
<span class="normal">8</span>
|
|
<span class="normal">9</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">test</span><span class="w"> </span><span class="p">(</span><span class="n">y</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="n">xml</span><span class="p">);</span>
|
|
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">test</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s1">'<foo>abc</foo>'</span><span class="p">);</span>
|
|
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">test</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="s1">'<bar/>'</span><span class="p">);</span>
|
|
|
|
<span class="k">SELECT</span><span class="w"> </span><span class="n">xmlagg</span><span class="p">(</span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">test</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">xmlagg</span>
|
|
<span class="c1">----------------------</span>
|
|
<span class="w"> </span><span class="o"><</span><span class="n">bar</span><span class="o">/><</span><span class="n">foo</span><span class="o">></span><span class="n">abc</span><span class="o"></</span><span class="n">foo</span><span class="o">></span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001450136728__p16741113524416">Add an <strong id="EN-US_TOPIC_0000001450136728__b148712176273">ORDER BY</strong> clause to an aggregate call to determine the concatenation sequence. For example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001450136728__screen7741113515443"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">xmlagg</span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="k">DESC</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">test</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">xmlagg</span>
|
|
<span class="c1">----------------------</span>
|
|
<span class="w"> </span><span class="o"><</span><span class="n">bar</span><span class="o">/><</span><span class="n">foo</span><span class="o">></span><span class="n">abc</span><span class="o"></</span><span class="n">foo</span><span class="o">></span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_06_0067.html">XML Functions</a></div>
|
|
</div>
|
|
</div>
|
|
|