如何将blob转换为xml类型?

时间:2013-11-29 09:58:17

标签: xml oracle blob

我想在从数据库中提取时将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;

这背后有什么想法吗?

1 个答案:

答案 0 :(得分:2)

在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;

我认为这会有所帮助。