2017-03-04 20 views
0

複雑なXMLからoracleの行にデータを抽出する際に役立つことをお勧めします。 iはEXTRACTVALUEを試みたが、それはエラーを与える:Oracleの複雑なXMLからデータを抽出する

ORA-31011 XML解析は

ORA-19202エラーがXML処理で出力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エラーメッセージとスタックトレースを表示します。 選択EXTRACTVALUE(X、「/ sの:封筒/秒:ボディ/ GetEmploymentStatusMultipleResponse/GetEmploymentStatusMultipleResult/B:EmploymentStatusStructure/C:EmploymentStatusStructure私はコマンドを実行することにより、タグ 'NationalId' を取得しようとした –

+0

こんにちはジム、 /c:Contributor/d:ContributorID/e:NationalID ') Into Var1 デュアルから; –

+0

エラーメッセージは次のとおりです。 ** ORA-31011:XML解析はORA-19202が失敗しました:エラーが** ** LPX-00601 XMLの処理中に発生しました:「\ sの:無効なトークン封筒\ sの:ボディ\ GetEmploymentStatusMultipleResponse \ GetEmploymentStatusMultiPreResult \ b:Employme ntStatusStructure \ c:EmploymentStatusStru cture \ c:Contributor \ d:ContributorID \ N:ナショナルID ** –

答えて

-2

U se Utl_fileまたは 単純に to_char(dbms_xmlgen.getxml( 'select * from ur_table'))をxml_dataからdualに選択します。

関連する問題