2017-03-04 61 views
0

請幫我從複雜的XML中將數據提取到Oracle中的行中。 我試過extractValue一起,但它給人的錯誤:從Oracle中複雜的XML中提取數據

ORA-31011的XML解析失敗的XML處理髮生

ORA-19202錯誤

輸出XML如下:

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
    <s:Body> 
     <GetEmploymentStatusMultipleResponse xmlns="http://MSB.Services.Integration.External.ServicesContracts.GOSI.IGOSIService"> 
     <GetEmploymentStatusMultipleResult xmlns:b="http://MSB.Services.Integration.External.DataContracts.GOSI.MultipleEmploymentStatusStructure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
      <b:EmploymentStatusStructure xmlns:c="http://MSB.Services.Integration.External.DataContracts.GOSI.EmploymentStatusStructure"> 
       <c:EmploymentStatusStructure> 
        <c:Contributor xmlns:d="http://MSB.Services.Integration.External.DataContracts.GOSI.ContributorStructure"> 
        <d:ContributorID xmlns:e="http://MSB.Services.Integration.External.DataContracts.GOSI.NationalIdentifierSummaryStructure"> 
         <e:NationalID>1086828181</e:NationalID> 
        </d:ContributorID> 
        </c:Contributor> 
        <c:ContributorName xmlns:d="http://MSB.Services.Integration.External.DataContracts.GOSI.PersonNameDetailsStructure"> 
        <d:Item xmlns:e="http://MSB.Services.Integration.External.DataContracts.GOSI.PersonNameBodyStructure"> 
         <e:Title i:nil="true" xmlns:f="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/> 
         <e:Prefix i:nil="true" xmlns:f="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/> 
         <e:FirstName>test1</e:FirstName> 
         <e:SecondName>test2</e:SecondName> 
         <e:ThirdName>test3</e:ThirdName> 
         <e:FourthName i:nil="true"/> 
         <e:LastName>test4</e:LastName> 
         <e:Suffix i:nil="true" xmlns:f="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/> 
        </d:Item> 
        <d:Language>AR</d:Language> 
        </c:ContributorName> 
        <c:ContributorStatus>2</c:ContributorStatus> 
       </c:EmploymentStatusStructure> 
      </b:EmploymentStatusStructure> 
     </GetEmploymentStatusMultipleResult> 
     </GetEmploymentStatusMultipleResponse> 
    </s:Body> 
</s:Envelope> 
+1

XML在語法上是有效的。顯示COMPLETE錯誤消息和任何堆棧跟蹤。 –

+0

嗨,吉姆, 我試圖通過運行以下命令來檢索標籤 'NationalId': 選擇extractValue一起(X,「/ S:信封/ S:身體/ GetEmploymentStatusMultipleResponse/GetEmploymentStatusMultipleResult/B:EmploymentStatusStructure/C:EmploymentStatusStructure/c:Contributor/d:ContributorID/e:NationalID') Into Var1 From Dual; –

+0

錯誤消息是: ** ORA-31011:XML解析失敗ORA-19202:發生了錯誤的XML處理** ** LPX-00601:無效的令牌:「\ S:信封\ S:車身系統\ GetEmploymentStatusMultipleResponse \ GetE mploymentStatusMultipleResult \ b:EmploymentStatusStructure \ c:EmploymentStatusStru cture \ c:Contributor \ d:ContributorID \ e:Na tionalID'** –

回答

-2

U se Utl_file或 只需 從dual中選擇to_char(dbms_xmlgen.getxml('select * from ur_table'))作爲xml_data;