2014-09-30 37 views
-1
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變量?想要在PL/SQL中連接兩個XML元素,想要連接兩個XMLTYPE元素

謝謝。

+0

我也想知道如何將varchar2轉換爲XMLTYPE和XMLTYPE轉換爲varchar2 .. 上述變量會給出錯誤,因爲XMLTYPE變量應該有起始和結束標記並且格式正確。 – Smashinsameer 2014-09-30 19:54:03

+2

您無法'串聯'XML,因爲它沒有意義。如果'A'和'B'是兩個格式良好的XML文檔,那麼''A || B''本身就不會很好,因爲它有兩個根元素。爲什麼你認爲你需要能夠以這種方式連接XML文檔? – 2014-09-30 22:04:52

回答

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; 

你可以從最後一行看到,該方法「getStringVal()」將返回的VARCHAR2值XML。