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
逻辑的其余部分