我想在从数据库中提取时将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;
这背后有什么想法吗?
答案 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;
我认为这会有所帮助。