Java 从Oracle中的BLOB列提取/解析XML数据/元素

Java 从Oracle中的BLOB列提取/解析XML数据/元素,java,sql,oracle,groovy,plsql,Java,Sql,Oracle,Groovy,Plsql,我有两个表,配置信息和配置文件。我使用下面的查询查找所有员工文件 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\u id。有办法吗 需要提取的XML标记是8.1 XML 它不需要是任何查询,即使是java或

我有两个表,配置信息和配置文件。我使用下面的查询查找所有员工文件

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\u id。有办法吗

需要提取的XML标记是
8.1

XML

它不需要是任何查询,即使是java或groovy代码,也会对我有所帮助


注意:一些XML可能大到5MB。

通常,您知道BLOB列中的数据是什么,因此可以在SQL查询中进行解析

如果它是一个文本列(
varchar
或类似的内容),您可以使用
来\u char(coloumName)

你可以使用很多函数,你可以在这里找到它们

通常,您将使用
进行字符/日期/hexToRow/rowTohex


因此,表
配置信息中
文件内容列的数据基本上是BLOB

因此,从数据库的BLOB内容中查询出XML的语法是使用这个函数XMLType

此函数用于将列的数据类型从BLOB转换为XMLType。然后使用XPath函数解析它

Oracle数据库

select
 xmltype(Filecontent, 871).extract('//CSMCLIENT/COMPONENT/PCVERSION/text()').getstringval()
from CONFIGURATION_INFO ...
自己完成
WHERE
逻辑的其余部分