[英]From an XMl file, an xml element data needs to be put into a clob column in oracle table
[英]Extract/Parse XML data/element from BLOB column in Oracle
我有2个表,CONFIGURATION_INFO和CONFIGURATION_FILE。 我使用以下查询来查找所有员工文件
select i.cfg_id, Filecontent
from CONFIGURATION_INFO i,
CONFIGURATION_FILE f
where i.cfg_id=f.cfg_id
但是我还需要从blob列Filecontent
解析或提取数据,并显示其xml标签PCVERSION
以8开始的所有cfg_id。 有什么办法吗?
需要提取的XML标记为<CSMCLIENT><COMPONENT><PCVERSION>8.1</PCVERSION></COMPONENT></CSMCLIENT>
XML格式
它不必是任何查询,即使它是Java或groovy代码,也可以帮助我。
注意:有些XML可能最大为5MB。
通常,您知道BLOB列中的数据,因此可以在SQL查询中进行解析。
如果它是文本列( varchar
或类似的东西),则可以使用to_char(coloumName)
。
您可以使用很多功能,可以在此链接中找到它们
通常您将使用to_char/to_date/hexToRow/rowTohex
因此,基本上,表CONFIGURATION_INFO
的数据对于列Filecontent
是BLOB?
因此,从数据库的BLOB内容中查询XML的语法是使用此函数XMLType 。
此函数将列的数据类型从BLOB转换为XMLType。 然后使用XPath函数对其进行解析。
甲骨文数据库
select
xmltype(Filecontent, 871).extract('//CSMCLIENT/COMPONENT/PCVERSION/text()').getstringval()
from CONFIGURATION_INFO ...
自行完成WHERE
逻辑的其余部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.