在oracle中解析XML数据
我是oracle XML领域的新手。我正在尝试解析XML,但失败了 下面是XML数据在oracle中解析XML数据,xml,oracle11g,Xml,Oracle11g,我是oracle XML领域的新手。我正在尝试解析XML,但失败了 下面是XML数据 ===================================== 下面是我期待的简单示例 谢谢你宝贵的回复 您发布的查询工作正常。但正如您所看到的,有些字段生成为NULL。 例如。第一个DataObjectElement包含2个CollectionItem(604008604008A),但在CollectionItem中没有“SystemName”,因此我希望 主DataObjectElement标
===================================== 下面是我期待的简单示例 谢谢你宝贵的回复 您发布的查询工作正常。但正如您所看到的,有些字段生成为NULL。 例如。第一个DataObjectElement包含2个CollectionItem(604008604008A),但在CollectionItem中没有“SystemName”,因此我希望 主DataObjectElement标记中的SystemName。。这就是“会计关系”。 ObjectType也是如此
WITH t AS (SELECT XMLType('<CompositeDataObject Type="ApplicantsAAT" Version="0">
<DataObjectElement SystemName="AccountRelationship" ObjectType="DataObjectCollection">
<CollectionItem ID="604008" EncryptedID="4GnX1!b8epwsAmwbfvZjo;xAAAAAB6r2wy" DataObjectCategory="RepeatingAttribute" DataObjectType="AccountRelationshipAAT"/>
<CollectionItem ID="604008a" EncryptedID="4GnX1!b8epwsAmwbfvZjo;xAAAAAB6r2wy" DataObjectCategory="RepeatingAttribute" DataObjectType="AccountRelationshipAAT"/>
</DataObjectElement>
<DataObjectElement SystemName="ApplicantCreditRefDetailsAATSL" ObjectType="DataObject" ID="603979" EncryptedID="4PPEFaEyt2Q!K48f13wy7gzAAAAAB6r2wR" DataObjectCategory="RepeatingAttribute" DataObjectType="ApplicantCreditRefDetailsAATSL"/>
<CompositeDataObjectElement SystemName="Tabs" ObjectType="DataObject" ID="378409" EncryptedID="4J!pTqS7x4XxIYZjRd2jA2UAAAAAB6o51z" CompositeDataObject="ApplicantsViewsAAT"/>
</CompositeDataObject>') xmlcol
FROM dual)
SELECT extractvalue(value(x), '/*/@ID') id,
extractvalue(value(x), '/*/@EncryptedID') EncryptedID,
extractvalue(value(x), '/*/@SystemName') SystemName,
extractvalue(value(x), '/*/@DataObjectCategory') DataObjectCategory,
extractvalue(value(x), '/*/@ObjectType') ObjectType,
extractvalue(value(x), '/*/@DataObjectType') DataObjectType,
extractvalue(value(x), '/*/@CompositeDataObject') CompositeDataObject
FROM t, TABLE(XMLSequence(extract(t.xmlcol,'//*[@ID]'))) x;
我期望的只是一点小小的变化(下面的结果包含SYSTEMNAME和OBJECTTYPE的值)
请将我的内容复制到一些文本板中,以便查看更清晰。
非常感谢您的帮助我不完全确定您想要什么,但每个“id”是否有一行?如果是的话
谢谢你宝贵的回复。在上面的查询中,我希望对获取SystemName和ObjectType做一点小小的更改。您发布的查询工作正常。但正如您所看到的,有些字段(SystemName和ObjectType)生成为NULL。例如。第一个DataObjectElement包含2个CollectionItem(604008604008A),但CollectionItem中没有“SystemName”,因此我希望主DataObjectElement标记中有SystemName。。这就是“会计关系”。ObjectType也是一样,有人能帮我回答上面的问题吗please@Arkesh没问题。如果这一切都完成了,请接受答案
WITH t AS (SELECT XMLType('<CompositeDataObject Type="ApplicantsAAT" Version="0">
<DataObjectElement SystemName="AccountRelationship" ObjectType="DataObjectCollection">
<CollectionItem ID="604008" EncryptedID="4GnX1!b8epwsAmwbfvZjo;xAAAAAB6r2wy" DataObjectCategory="RepeatingAttribute" DataObjectType="AccountRelationshipAAT"/>
<CollectionItem ID="604040" EncryptedID="4IrPkqeoo7EVLEuSm7egK96AAAAAB6r2zS" DataObjectCategory="RepeatingAttribute" DataObjectType="AccountRelationshipAAT"/>
</DataObjectElement>
<DataObjectElement SystemName="ApplicantCreditRefDetailsAATSL" ObjectType="DataObject" ID="603979" EncryptedID="4PPEFaEyt2Q!K48f13wy7gzAAAAAB6r2wR" DataObjectCategory="RepeatingAttribute" DataObjectType="ApplicantCreditRefDetailsAATSL"/><DataObjectElement SystemName="CreditCardsTPF" ObjectType="DataObjectCollection"/><CompositeDataObjectElement SystemName="CreditObligations" ObjectType="DataObjectCollection"/><DataObjectElement SystemName="CreditScoring" ObjectType="DataObject" ID="603970" EncryptedID="4CWx;PRGqbV1IMzP4DtnY2IAAAAAB6r2wY" DataObjectCategory="RepeatingAttribute" DataObjectType="CreditScoring"/><DataObjectElement SystemName="DependantDetails" ObjectType="DataObject" ID="603978" EncryptedID="4OReRldXZeF8IU9a2e3RZk9AAAAAB6r2wQ" DataObjectCategory="RepeatingAttribute" DataObjectType="ApplicantDependantDetailsAATSL"/><DataObjectElement SystemName="EmploymentAATSL" ObjectType="DataObject" ID="603972" EncryptedID="4GkF83Ll!xLiLqS1zL;FMG4AAAAAB6r2we" DataObjectCategory="RepeatingAttribute" DataObjectType="EmploymentAperioOnlyAATSL"/><DataObjectElement SystemName="ExpenditureDetailsTPF" ObjectType="DataObject" ID="603980" EncryptedID="4G6EGC6aL8LmN94xr9LNgRxAAAAAB6r2wW" DataObjectCategory="RepeatingAttribute" DataObjectType="ExpenditureTPF"/><DataObjectElement SystemName="Fields" ObjectType="DataObject" ID="9251" EncryptedID="4MEw5;;AiwprG2uKYJGudrLAAAAAB6pn95" DataObjectCategory="Party" DataObjectType="Personal"/><DataObjectElement SystemName="FinancialAssetsAATSL" ObjectType="DataObjectCollection"/><DataObjectElement SystemName="FinancialExpenseAATSL" ObjectType="DataObjectCollection"/><DataObjectElement SystemName="FinancialLiabilitiesAATSL" ObjectType="DataObjectCollection"/><DataObjectElement SystemName="FinancierDeductionAATSL" ObjectType="DataObjectCollection"/><DataObjectElement SystemName="IncomeSalariedAATSL" ObjectType="DataObject" ID="603973" EncryptedID="4J04bAAaMKqPIXbr7AAUfoQAAAAAB6r2wf" DataObjectCategory="RepeatingAttribute" DataObjectType="ApplicantFinancialIncomeSalariedFinalAATSL"/><DataObjectElement SystemName="IncomeSelfEmployedAATSL" ObjectType="DataObject" ID="603974" EncryptedID="4D;pvvFrYPDyLjkipR7sYyQAAAAAB6r2wc" DataObjectCategory="RepeatingAttribute" DataObjectType="ApplicantFinancialIncomeSelfEmplAATAP"/>
<CompositeDataObjectElement SystemName="Tabs" ObjectType="DataObject" ID="378409" EncryptedID="4J!pTqS7x4XxIYZjRd2jA2UAAAAAB6o51z" CompositeDataObject="ApplicantsViewsAAT"/>
</CompositeDataObject>') xmlcol
FROM dual)
SELECT extract(value(x),'//*[@ID]/@ID') linked_object_id,
extractValue(value(x),'//*[@ID]/ancestor-or-self::*[@EncryptedID]/@EncryptedID') linked_object_encrypted_id,
extractValue(value(x),'//*[@ID]/ancestor-or-self::*[@SystemName]/@SystemName') system_name,
extractValue(value(x),'//*[@ID]/ancestor-or-self::*[@DataObjectCategory]/@DataObjectCategory') data_object_category,
extractValue(value(x),'//*[@ID]/ancestor-or-self::*[@ObjectType]/@ObjectType') object_type,
extractValue(value(x),'//*[@ID]/ancestor-or-self::*[@DataObjectType]/@DataObjectType') data_object_type,
extractValue(value(x),'//*[@ID]/ancestor-or-self::*[@CompositeDataObject]/@CompositeDataObject') composite_data_object
FROM t, TABLE(XMLSequence(extract(t.xmlcol,'/CompositeDataObject/*'))) x;
WITH t AS (SELECT XMLType('<CompositeDataObject Type="ApplicantsAAT" Version="0">
<DataObjectElement SystemName="AccountRelationship" ObjectType="DataObjectCollection">
<CollectionItem ID="604008" EncryptedID="4GnX1!b8epwsAmwbfvZjo;xAAAAAB6r2wy" DataObjectCategory="RepeatingAttribute" DataObjectType="AccountRelationshipAAT"/>
<CollectionItem ID="604008a" EncryptedID="4GnX1!b8epwsAmwbfvZjo;xAAAAAB6r2wy" DataObjectCategory="RepeatingAttribute" DataObjectType="AccountRelationshipAAT"/>
</DataObjectElement>
<DataObjectElement SystemName="ApplicantCreditRefDetailsAATSL" ObjectType="DataObject" ID="603979" EncryptedID="4PPEFaEyt2Q!K48f13wy7gzAAAAAB6r2wR" DataObjectCategory="RepeatingAttribute" DataObjectType="ApplicantCreditRefDetailsAATSL"/>
<CompositeDataObjectElement SystemName="Tabs" ObjectType="DataObject" ID="378409" EncryptedID="4J!pTqS7x4XxIYZjRd2jA2UAAAAAB6o51z" CompositeDataObject="ApplicantsViewsAAT"/>
</CompositeDataObject>') xmlcol
FROM dual)
SELECT extractvalue(value(x), '/*/@ID') id,
extractvalue(value(x), '/*/@EncryptedID') EncryptedID,
extractvalue(value(x), '/*/@SystemName') SystemName,
extractvalue(value(x), '/*/@DataObjectCategory') DataObjectCategory,
extractvalue(value(x), '/*/@ObjectType') ObjectType,
extractvalue(value(x), '/*/@DataObjectType') DataObjectType,
extractvalue(value(x), '/*/@CompositeDataObject') CompositeDataObject
FROM t, TABLE(XMLSequence(extract(t.xmlcol,'//*[@ID]'))) x;
ID ENCRYPTEDID SYSTEMNAME DATAOBJECTCATEGORY OBJECTTYPE DATAOBJECTTYPE COMPOSITEDATAOBJECT
604008 4GnX1!b8epwsAmwbfvZjo;xAAAAAB6r2wy RepeatingAttribute AccountRelationshipAAT
604008a 4GnX1!b8epwsAmwbfvZjo;xAAAAAB6r2wy RepeatingAttribute AccountRelationshipAAT
603979 4PPEFaEyt2Q!K48f13wy7gzAAAAAB6r2wR ApplicantCreditRefDetailsAATSL RepeatingAttribute DataObject ApplicantCreditRefDetailsAATSL
378409 4J!pTqS7x4XxIYZjRd2jA2UAAAAAB6o51z Tabs DataObject ApplicantsViewsAAT
ID ENCRYPTEDID SYSTEMNAME DATAOBJECTCATEGORY OBJECTTYPE DATAOBJECTTYPE COMPOSITEDATAOBJECT
604008 4GnX1!b8epwsAmwbfvZjo;xAAAAAB6r2wy AccountRelationship RepeatingAttribute DataObjectCollection AccountRelationshipAAT
604008a 4GnX1!b8epwsAmwbfvZjo;xAAAAAB6r2wy AccountRelationship RepeatingAttribute DataObjectCollection AccountRelationshipAAT
603979 4PPEFaEyt2Q!K48f13wy7gzAAAAAB6r2wR ApplicantCreditRefDetailsAATSL RepeatingAttribute DataObject ApplicantCreditRefDetailsAATSL
378409 4J!pTqS7x4XxIYZjRd2jA2UAAAAAB6o51z Tabs DataObject ApplicantsViewsAAT
10 select id, EncryptedID,
11 nvl(SystemName, extractvalue(xmlcol, '//*[child::*/@ID="' || id || '"]/@SystemName')) SystemName,
12 DataObjectCategory,
13 nvl(ObjectType, extractvalue(xmlcol, '//*[child::*/@ID="' || id || '"]/@ObjectType')) ObjectType,
14 DataObjectType,
15 CompositeDataObject
16 from (SELECT t.xmlcol, extractvalue(value(x), '/*/@ID') id,
17 extractvalue(value(x), '/*/@EncryptedID') EncryptedID,
18 extractvalue(value(x), '/*/@SystemName') SystemName,
19 extractvalue(value(x), '/*/@DataObjectCategory') DataObjectCategory,
20 extractvalue(value(x), '/*/@ObjectType') ObjectType,
21 extractvalue(value(x), '/*/@DataObjectType') DataObjectType,
22 extractvalue(value(x), '/*/@CompositeDataObject') CompositeDataObject
23 FROM t, TABLE(XMLSequence(extract(t.xmlcol,'//*[@ID]'))) x)
24 ;
ID ENCRYPTEDID SYSTEMNAME DATAOBJECTCATEGORY OBJECTTYPE DATAOBJECTTYPE COMPOSITEDATAOBJECT
---------- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------
604008 4GnX1!b8epwsAmwbfvZj AccountRelationship RepeatingAttribute DataObjectCollection AccountRelationshipA
o;xAAAAAB6r2wy AT
604040 4IrPkqeoo7EVLEuSm7eg AccountRelationship RepeatingAttribute DataObjectCollection AccountRelationshipA
K96AAAAAB6r2zS AT
603979 4PPEFaEyt2Q!K48f13wy ApplicantCreditRefDe RepeatingAttribute DataObject ApplicantCreditRefDe
7gzAAAAAB6r2wR tailsAATSL tailsAATSL
603970 4CWx;PRGqbV1IMzP4Dtn CreditScoring RepeatingAttribute DataObject CreditScoring
Y2IAAAAAB6r2wY
603978 4OReRldXZeF8IU9a2e3R DependantDetails RepeatingAttribute DataObject ApplicantDependantDe
Zk9AAAAAB6r2wQ tailsAATSL
603972 4GkF83Ll!xLiLqS1zL;F EmploymentAATSL RepeatingAttribute DataObject EmploymentAperioOnly
MG4AAAAAB6r2we AATSL
603980 4G6EGC6aL8LmN94xr9LN ExpenditureDetailsTP RepeatingAttribute DataObject ExpenditureTPF
gRxAAAAAB6r2wW F
9251 4MEw5;;AiwprG2uKYJGu Fields Party DataObject Personal
drLAAAAAB6pn95
603973 4J04bAAaMKqPIXbr7AAU IncomeSalariedAATSL RepeatingAttribute DataObject ApplicantFinancialIn
foQAAAAAB6r2wf comeSalariedFinalAAT
SL
603974 4D;pvvFrYPDyLjkipR7s IncomeSelfEmployedAA RepeatingAttribute DataObject ApplicantFinancialIn
YyQAAAAAB6r2wc TSL comeSelfEmplAATAP
378409 4J!pTqS7x4XxIYZjRd2j Tabs DataObject ApplicantsViewsAAT
A2UAAAAAB6o51z