Sql 从LOB内容获取部分消息
我在LOB(大对象)列中有一些XML内容(小于2000字节)。我使用了Sql 从LOB内容获取部分消息,sql,oracle,substring,xml-column,Sql,Oracle,Substring,Xml Column,我在LOB(大对象)列中有一些XML内容(小于2000字节)。我使用了dbms\u lob\u substr(messagebody)来获取实际的XML内容,但我需要获取特定节点的确切值 例如 xyz abcd 我需要say的值。如何实现这一点?您的XML似乎缺少根节点?如果XML数据如您所示,则如果将其放入伪根节点,则可以使用XMLTable()函数对其进行解析,例如: select x.firstname from mytable, xmltable( '/rootnode'
dbms\u lob\u substr(messagebody)
来获取实际的XML内容,但我需要获取特定节点的确切值
例如
xyz
abcd
我需要say
的值。如何实现这一点?您的XML似乎缺少根节点?如果XML数据如您所示,则如果将其放入伪根节点,则可以使用XMLTable()函数对其进行解析,例如:
select x.firstname
from mytable,
xmltable(
'/rootnode'
passing xmltype('<rootnode>'||myclobcol||'</rootnode>')
columns
firstname varchar2(100) path 'firstname'
) x
选择x.firstname
从mytable中,
xmltable(
“/rootnode”
传递xmltype(“”| | myclobcol | |“”)
柱
firstname varchar2(100)路径“firstname”
)x
如果需要同时获取多个值,只需添加到columns子句:
select x.*
from mytable,
xmltable(
'/rootnode'
passing xmltype('<rootnode>'||myclobcol||'</rootnode>')
columns
firstname varchar2(100) path 'firstname',
lastname varchar2(100) path 'lastname',
middleini varchar2(10) path 'middleinitial'
) x
选择x*
从mytable中,
xmltable(
“/rootnode”
传递xmltype(“”| | myclobcol | |“”)
柱
firstname varchar2(100)路径“firstname”,
lastname varchar2(100)路径“lastname”,
middleini varchar2(10)路径“middleinitial”
)x
它的所有XMl节点。。XYZ..我如何获得特定节点的值,比如说查看我以前的伟大方法..但将另一个标记为正确,因为他首先响应。谢谢大家
select x.*
from mytable,
xmltable(
'/rootnode'
passing xmltype('<rootnode>'||myclobcol||'</rootnode>')
columns
firstname varchar2(100) path 'firstname',
lastname varchar2(100) path 'lastname',
middleini varchar2(10) path 'middleinitial'
) x