<i id='QhT7m'><tr id='QhT7m'><dt id='QhT7m'><q id='QhT7m'><span id='QhT7m'><b id='QhT7m'><form id='QhT7m'><ins id='QhT7m'></ins><ul id='QhT7m'></ul><sub id='QhT7m'></sub></form><legend id='QhT7m'></legend><bdo id='QhT7m'><pre id='QhT7m'><center id='QhT7m'></center></pre></bdo></b><th id='QhT7m'></th></span></q></dt></tr></i><div id='QhT7m'><tfoot id='QhT7m'></tfoot><dl id='QhT7m'><fieldset id='QhT7m'></fieldset></dl></div>
      <legend id='QhT7m'><style id='QhT7m'><dir id='QhT7m'><q id='QhT7m'></q></dir></style></legend>
    1. <tfoot id='QhT7m'></tfoot>
      • <bdo id='QhT7m'></bdo><ul id='QhT7m'></ul>

      <small id='QhT7m'></small><noframes id='QhT7m'>

    2. 使用取自序列的值将属性添加到 xmltype

      时间:2023-06-07
        <bdo id='gDbt0'></bdo><ul id='gDbt0'></ul>
      • <small id='gDbt0'></small><noframes id='gDbt0'>

            <tbody id='gDbt0'></tbody>
          <legend id='gDbt0'><style id='gDbt0'><dir id='gDbt0'><q id='gDbt0'></q></dir></style></legend>
            • <tfoot id='gDbt0'></tfoot>

              1. <i id='gDbt0'><tr id='gDbt0'><dt id='gDbt0'><q id='gDbt0'><span id='gDbt0'><b id='gDbt0'><form id='gDbt0'><ins id='gDbt0'></ins><ul id='gDbt0'></ul><sub id='gDbt0'></sub></form><legend id='gDbt0'></legend><bdo id='gDbt0'><pre id='gDbt0'><center id='gDbt0'></center></pre></bdo></b><th id='gDbt0'></th></span></q></dt></tr></i><div id='gDbt0'><tfoot id='gDbt0'></tfoot><dl id='gDbt0'><fieldset id='gDbt0'></fieldset></dl></div>
                本文介绍了使用取自序列的值将属性添加到 xmltype的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                问题描述

                限时送ChatGPT账号..

                我使用的是 11.2 版的 Oracle XE.

                I am using Oracle XE in version 11.2.

                我有这样的 XML:

                <root>
                    <x a="a"/>
                    <x a="b"/>
                    <x a="c"/>
                </root>
                

                不,我想将属性 b 添加到每个元素 x ,其值取自序列,但它应该为每个元素采用新值.预期结果是:

                No I would like to add attribute b to each element x with value taken from sequence, but it should take new value for each element. Expected result is:

                <root>
                    <x a="a" b="1"/>
                    <x a="b" b="2"/>
                    <x a="c" b="3"/>
                </root>
                

                我发现要向 XML 添加属性,我可以使用 insertchildxml 但在将相同的(第一个)值从序列添加到所有属性 b.我找不到如何为每个单独的元素 x 调用此函数.

                I've found that to add attribute to XML I can use insertchildxml but in is adding the same (frist) value from sequence to all attributes b. I can't find how to call this function for each individual element x.

                我将不胜感激.

                推荐答案

                我终于找到了一些解决方案,关键是使用 XMLTable() 函数.这是我的代码:

                I've finaly found some solution and key to it was to use XMLTable() function. Here is my code:

                declare
                v_inXML xmltype;
                  v_tmpXML xmltype;
                  v_withIdXML xmltype;
                  v_outXML xmltype;
                BEGIN   
                  v_inXML := XMLType('<root><x a="a"/><x a="b"/><x a="c"/></root>');
                  v_withIdXML := XMLType('<root/>'); 
                  v_outXML := XMLType('<root/>');
                
                  for c_rec in (
                    select *
                    from   XMLTable('for $i in /root/x
                          return $i'
                          passing  v_inXML
                          columns x xmltype path '/x'
                    )
                  )
                  loop
                    select insertchildxml(c_rec.x,'//x', '@b', pckg_ent_pk_seq.nextval) into v_tmpXML from dual;      
                    select insertchildxml(v_withIdXML, '/root', 'x', v_tmpXML) into v_withIdXML from dual;    
                  end loop;
                
                  select updatexml(v_outXML, '/root', v_withIdXML) into v_outXML from dual;
                
                  dbms_output.put_line(v_outXML.getClobVal());
                END;
                

                结果是:

                <root><x a="a" b="92"/><x a="b" b="93"/><x a="c" b="94"/></root>
                

                这篇关于使用取自序列的值将属性添加到 xmltype的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                上一篇:XQuery 存在检查选择 sql 查询 下一篇:使用 SQL 在 XML 中插入节点

                相关文章

                最新文章

              2. <tfoot id='1bqV6'></tfoot>
                <i id='1bqV6'><tr id='1bqV6'><dt id='1bqV6'><q id='1bqV6'><span id='1bqV6'><b id='1bqV6'><form id='1bqV6'><ins id='1bqV6'></ins><ul id='1bqV6'></ul><sub id='1bqV6'></sub></form><legend id='1bqV6'></legend><bdo id='1bqV6'><pre id='1bqV6'><center id='1bqV6'></center></pre></bdo></b><th id='1bqV6'></th></span></q></dt></tr></i><div id='1bqV6'><tfoot id='1bqV6'></tfoot><dl id='1bqV6'><fieldset id='1bqV6'></fieldset></dl></div>

              3. <small id='1bqV6'></small><noframes id='1bqV6'>

              4. <legend id='1bqV6'><style id='1bqV6'><dir id='1bqV6'><q id='1bqV6'></q></dir></style></legend>
                  <bdo id='1bqV6'></bdo><ul id='1bqV6'></ul>