想要在PL / SQL中连接两个XML元素,想要连接两个XMLTYPE元素

时间:2014-09-30 19:41:25

标签: xml plsql

declare
var1 XMLTYPE;
var2 XMLTYPE;
var3 XMLTYPE;
var4 XMLTYPE;
Begin
var1 := XMLTYPE('<START>') ;
var2 := XMLTYPE('<DOCUMENT><TITLE>Mr.</TITLE>');
var3 := XMLTYPE('<NAME>Mr.</NAME></DOCUMENT>');
var4 := XMLTYPE('</START>') ;
end;

如何连接上述XMLTYPE变量?

谢谢。

1 个答案:

答案 0 :(得分:1)

您的示例将无法编译,因为没有字符串是有效的XML文档。 (您将获得ORA-31011:XML解析失败)。

您可以将每个片段放在VARCHAR2中,然后在XMLTYPE函数中连接它们:

declare
    var1 varchar2(32);
    var2 varchar2(32);
    var3 varchar2(32);
    var4 varchar2(32);
    varx xmltype;
Begin
    var1 := '<START>';
    var2 := '<DOCUMENT><TITLE>Mr.</TITLE>';
    var3 := '<NAME>Mr.</NAME></DOCUMENT>';
    var4 := '</START>' ;

    varx := xmltype(var1 || var2 || var3 || var4);

    dbms_output.put_line(varx.getStringVal());    
end;

从最后一行可以看出,方法&#39; getStringVal()&#39;将返回XML的varchar2值。