【问题标题】:Extract/Parse XML data/element from BLOB column in Oracle从 Oracle 中的 BLOB 列中提取/解析 XML 数据/元素
【发布时间】:2013-12-20 06:42:03
【问题描述】:

我有 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 标记 PCVERSION8 开头的所有 cfg_id。有什么办法吗?

需要提取的XML标签是<CSMCLIENT><COMPONENT><PCVERSION>8.1</PCVERSION></COMPONENT></CSMCLIENT>

XML

它不需要是任何查询,即使它是 java 或 groovy 代码,它都会帮助我。

注意:某些 XML 文件可能高达 5MB。

【问题讨论】:

    标签: java sql oracle groovy plsql


    【解决方案1】:

    所以基本上来自表CONFIGURATION_INFO的数据,对于列Filecontent是BLOB?

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

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

    Oracle 数据库

    select
     xmltype(Filecontent, 871).extract('//CSMCLIENT/COMPONENT/PCVERSION/text()').getstringval()
    from CONFIGURATION_INFO ...
    

    您自己完成WHERE 的其余逻辑。

    【讨论】:

      【解决方案2】:

      通常你知道 BLOB 列中的数据是什么,所以你可以在 SQL 查询中解析..

      如果它是一个文本列(varchar 或类似的东西),您可以使用to_char(coloumName)

      有很多你可以使用的功能,你可以在link找到它们

      通常你会使用to_char/to_date/hexToRow/rowTohex

      convert blob to file link

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-05
        • 1970-01-01
        • 2017-05-05
        • 2012-12-19
        • 1970-01-01
        • 2016-07-17
        相关资源
        最近更新 更多