如何使用SQLDeveloper从XML的重复标记中提取值
我想从oracle表的XML列中提取如何使用SQLDeveloper从XML的重复标记中提取值,sql,xml,oracle-sqldeveloper,Sql,Xml,Oracle Sqldeveloper,我想从oracle表的XML列中提取标记的值。 但是在我的XML中,标记是两倍的,并且它总是具有相同的值 我使用以下查询获得输出: select extractvalue(extract(xmltype(body),'//CallID'),'//CallID') from table123; 但我得到错误“ExtractValue只返回一个节点的值” 如何在pl/sql developer中获取CallID标记的值 <Update Destination="ABC" CreatedBy=
标记的值。
但是在我的XML中,标记
是两倍的,并且它总是具有相同的值
我使用以下查询获得输出:
select extractvalue(extract(xmltype(body),'//CallID'),'//CallID')
from table123;
但我得到错误“ExtractValue只返回一个节点的值”
如何在pl/sql developer中获取CallID标记的值
<Update Destination="ABC" CreatedBy="NETWORK">
<Assignment>
<Comment/>
<Engineers>
<Value Key="0">
<Engineer>
<ID>123</ID>
<Team>
<Name>12345</Name>
</Team>
</Engineer>
</Value>
</Engineers>
<Finish>2014-11-07 09:35:00</Finish>
<Key>123456</Key>
<Location/>
<Revision>3</Revision>
<Stamp>
<CreatedBy>Customer</CreatedBy>
<CreatingProcess>0</CreatingProcess>
<ModifiedBy>NETWORK</ModifiedBy>
<ModifyingProcess>632753</ModifyingProcess>
<TimeCreated>2014-11-03 13:24:14</TimeCreated>
<TimeModified>2014-11-06 12:49:14</TimeModified>
</Stamp>
<Start>2014-11-07 07:45:00</Start>
<Task>
<CallID>977277212</CallID>
<ModifiedByTorUser/>
</Task>
</Assignment>
<PrevAssignment>
<Assignment>
<Comment/>
<Engineers>
<Value Key="0">
<Engineer>
<ID>123</ID>
<Team>
<Name>12345</Name>
</Team>
</Engineer>
</Value>
</Engineers>
<Finish>2014-11-07 09:50:00</Finish>
<Key>123456</Key>
<Location/>
<Revision>3</Revision>
<Stamp>
<CreatedBy>Customer</CreatedBy>
<CreatingProcess>0</CreatingProcess>
<ModifiedBy>NETWORK</ModifiedBy>
<ModifyingProcess>632753</ModifyingProcess>
<TimeCreated>2014-11-03 13:24:14</TimeCreated>
<TimeModified>2014-11-06 12:49:14</TimeModified>
</Stamp>
<Start>2014-11-07 08:00:00</Start>
<Task>
<CallID>977277212</CallID>
<ModifiedByTorUser/>
<Number>0</Number>
<SlaStatus>0</SlaStatus>
</Task>
</Assignment>
</PrevAssignment>
</Update>
123
12345
2014-11-07 09:35:00
123456
3.
顾客
0
网络
632753
2014-11-03 13:24:14
2014-11-06 12:49:14
2014-11-07 07:45:00
977277212
123
12345
2014-11-07 09:50:00
123456
3.
顾客
0
网络
632753
2014-11-03 13:24:14
2014-11-06 12:49:14
2014-11-07 08:00:00
977277212
0
0
示例XML中有2个
元素。如果只需要其中一个,请尝试//CallID[1]
或//CallID[2]
。(免责声明:我不是oracle专家,甚至不是它的常规用户)感谢har07的建议,我使用下面的查询来获得所需的结果:从table123中选择extractvalue(extract(xmltype(body),“//CallID[1]”,“//CallID[2]”);事实上,我一直在寻找一个查询来获取“CallID”值,而不管XML中是否出现调用。上述查询不适用于XML中的单个查询。