我正在使用循环创建一个父XML,并希望在其中插入另一个XML。有没有办法将我的第二个XML插入到第一个XML中?
每个族的外部循环
每个家庭的孙子孙女的内循环
SELECT XMLELEMENT ("grandkids"
,XMLELEMENT("kid1", 'ron')
,XMLELEMENT("age", '12')
) INTO TESTXML2 FROM DUAL; 结束孙子循环;
SELECT XMLELEMENT ("Family"
,XMLELEMENT("father", 'myFather')
,XMLELEMENT("mother", 'myMother')
,XMLELEMENT("children", '2')
<---INSERT TESTXML2 HERE--->
) INTO TESTXML FROM DUAL; 终端族循环;
如何在TESTXML1中插入TESTXML2?
它可以在创建FamilyXML时插入,也可以在将FamilyXML插入数据库后更新。
发布于 2018-07-27 23:52:27
您可以只引用您的testxml2变量:
declare
testxml xmltype;
testxml2 xmltype;
begin
SELECT XMLELEMENT ("grandkids"
,XMLELEMENT("kid1", 'ron')
,XMLELEMENT("age", '12')
) INTO TESTXML2 FROM DUAL;
dbms_output.put_line(testxml2.getstringval());
SELECT XMLELEMENT ("Family"
,XMLELEMENT("father", 'myFather')
,XMLELEMENT("mother", 'myMother')
,XMLELEMENT("children", '2')
,testxml2
) INTO TESTXML FROM DUAL;
dbms_output.put_line(testxml.getstringval());
end;
/
<grandkids><kid1>ron</kid1><age>12</age></grandkids>
<Family><father>myFather</father><mother>myMother</mother><children>2</children><grandkids><kid1>ron</kid1><age>12</age></grandkids></Family>
PL/SQL procedure successfully completed.或者将所有嵌套的XMLElement调用放在一个查询中:
declare
testxml xmltype;
begin
SELECT XMLELEMENT ("Family"
,XMLELEMENT("father", 'myFather')
,XMLELEMENT("mother", 'myMother')
,XMLELEMENT("children", '2')
,XMLELEMENT ("grandkids"
,XMLELEMENT("kid1", 'ron')
,XMLELEMENT("age", '12')
)
) INTO TESTXML FROM DUAL;
dbms_output.put_line(testxml.getstringval());
end;
/
<Family><father>myFather</father><mother>myMother</mother><children>2</children><grandkids><kid1>ron</kid1><age>12</age></grandkids></Family>
PL/SQL procedure successfully completed.如果您实际上是从表中获取数据,那么可以看看XMLAgg、XMLForest等。
https://stackoverflow.com/questions/51560224
复制相似问题