我想知道是否有人能够帮助我解决我目前面临的 ORACLE SQL 查询问题,
我有一个 ORACLE SQL 数据库,其中包含数千行和多列,其中一列包含通过内部流程放置在那里的文本格式的 XML 消息。
下面是从包含 XML 字符串的所述列中摘录的单行:
<XXXAlertMessage>
<XXXAlertCode>XXX</XXXAlertCode>
<XXXAlert>
<XXXaaaXXXaaaXXX>
<XXXXXXaaaXXXaaaXXX>
<XXXID>XX-XX-XX-XX-XX-XX-XX-XX</XXXID>
<XXXType>GXXXXXE</XXXType>
<MPxNs>
<ImportMPxN>7432921709</ImportMPxN>
</MPxNs>
</XXXXXXaaaXXXaaaXXX>
</XXXaaaXXXaaaXXX>
</XXXAlert>
</XXXAlertMessage>
我正在尝试更新我的 ORACLE SQL 查询以从 XML 列中提取,只是两个
表称为“Transaction”,列称为“XML”,
我目前的基本 ORACLE SQL 查询是:
从事务中选择 XML;
我尝试了多种选择,但目前我不知道解决方案......
我做了一些谷歌搜索,发现了以下主题:
但是我已经尝试了一些建议的方法,但我仍然一片空白......
我也尝试过:
带有测试数据(原始文本)
作为
(从事务中选择xml)
选择
regexp_substr(raw_text,'
查询运行正常,但是它返回一个空列(没有结果):o(
我现在有点不知所措,需要 Stack Overflow 上好心人的帮助、建议或帮助,希望能帮助我完成我的任务 :o)
提前非常感谢任何可以提供帮助的人,
真的非常感谢
问候
冲浪十字军
您可以使用内置的 XMLQuery 函数,而不是尝试将 XML 作为字符串进行操作(这很少有好的结果):
select xmlquery('//MPxNs/ImportMPxN/text()'
passing xmltype(xml)
returning content).getstringval() as ImportMPxN
from transaction;
导入MPXN |
---|
7432921709 |