【问题标题】:How to convert blob to xml type?如何将 blob 转换为 xml 类型?
【发布时间】:2013-12-15 11:39:30
【问题描述】:

我想在从数据库中提取的过程中将blob数据类型转换为xml数据类型

下面是我的数据库场景

SQL> select * from lmm_schedule_dates
  2  ;

RECID
--------------------------------------------------------------------------------
XMLRECORD
--------------------------------------------------------------------------------
MM073390000800
32303037333430FD44FE32303037333436FD44FE32303037333533FD44FE32303037333630FD44FE
32303038303032FD44FE32303038303039FD44FE32303038303136FD41

在 XMLRECORD 列中,我有 blob 数据类型。我想在从数据库中提取时将其转换为 xml 数据类型。

以下是我尝试过的查询:

select utl_raw.cast_to_varchar2(dbms_lob.substr(xmlrecord)) from lmm_schedule_dates;

这背后有什么想法吗?

【问题讨论】:

    标签: xml oracle blob


    【解决方案1】:

    Oracle 中有 XMLType 构造函数,可以进行这种转换:

    constructor function XMLType(
       xmlData IN blob, csid IN number,
       schema IN varchar2 := NULL,
       validated IN number := 0,
       wellformed IN number := 0)
    return self as result deterministic
    

    所以试着像这样使用它:

    select xmltype(xmlrecord,873) from lmm_schedule_dates
    

    我的例子中的873是UTF-8编码的csid,你可以通过执行带有相应参数的查询来找到特定的csid:

    select nls_charset_id('UTF8') from dual;
    

    我认为这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2013-05-09
      • 2018-08-05
      • 1970-01-01
      • 1970-01-01
      • 2017-11-28
      • 1970-01-01
      • 2015-10-27
      • 2015-12-14
      • 1970-01-01
      相关资源
      最近更新 更多