我是XML新手,並且想要從具有CLOB列類型的表中加載的XML中提取文本。從放置在Clob字段中的XML中提取來自XML的所有節點的文本Oracle
因爲有葉節點,我不能夠獲得clue.The XML是相當大的,這只是一個片段,如果我可以工作了這一點,我會盡力實現對整個XML。
我有下面的查詢,但我沒有得到
SELECT *
FROM XML_T y
,XMLTABLE(XMLNAMESPACES('all the name spaces'),
'//e:DocumentServiceID'
--/e:DocumentHeader/e:DocumentServiceID'
PASSING XMLTYPE.createxml(y.xmlty)
COLUMNS service_id varchar2(200) path '@DocumentServiceID'
/* factext varchar2(100) path '@FacText',
fac varchar2(100) path '@Fac',
st_name varchar2(100) path './StreetName',
zipcode varchar2(10) path './PostalCode',
*/
);
我已經把下面的成表服務ID的任何值
<?XML VERSION="1.0" encoding="UTF-8"?>
<E:EnDatDoc xmlns:ext="http://qbc.net/de/City/A-Ex/1.0" xmlns:df="http://xyz.ht.net/yy/Asset/1.0" xmlns:nc="http://pol.org/ni-core/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:E="http://www.yup.net/enterprise">
<E:DocumentHeader>
<E:DocumentServiceID>A_PUSH</E:DocumentServiceID>
</E:DocumentHeader>
<E:DocumentBody>
<df:PropertyRecord>
<ext:Facility>
<nc:FacText>A9</nc:FacText>
<ext:Fac>One St</ext:Fac>
<nc:Facility>
<nc:LocationAddress>
<nc:Addr>
<nc:Street>
<nc:StreetName>18 STR</nc:StreetName>
</nc:Street>
<nc:PostalCode>07854</nc:PostalCode>
</nc:Addr>
</nc:LocationAddress>
</nc:Facility>
<ext:Item>
<nc:MeasureText>40.99</nc:MeasureText>
<nc:length>SF</nc:length>
</ext:Item>
<ext:Gross>
<nc:MeasureText>90.00</nc:MeasureText>
<nc:Length>SF</nc:Length>
</ext:Gross>
<nc:ItemWidth>
<nc:MeasureText>24.83</nc:MeasureText>
<nc:length>FT</nc:length>
</nc:ItemWidth>
<ext:Irregular>FALSE</ext:Irregular>
<ext:Floors>1</ext:Floors>
<ext:Cons>
<nc:StartDate>
<nc:YEAR>1977</nc:YEAR>
</nc:StartDate>
</ext:Cons>
<ext:Conflg>TRUE</ext:Conflg>
<ext:Tax>
<ext:Classtext>1</ext:Classtext>
<ext:Cdesc>1 - 3 Units</ext:Cdesc>
</ext:Tax>
</ext:Facility>
</df:PropertyRecord>
</E:DocumentBody>
</E:EnDatDoc>
這不是一個代碼寫入服務,您需要研究Oracle的XML函數並嘗試編寫查詢,而不是要求某人爲您完成這項工作。您還沒有顯示您想要提取的內容或您期望的輸出內容。 –
@AlexPoole我有一個示例查詢,我讀了一些文件,並找出了,但我仍然沒有得到輸出的服務id.I已編輯的問題,並把查詢那裏 –
@AlexPoole我想提取所有文本因此,我必須爲每個文本值創建映射並將其分配給列 –