选择太长的blob数据会产生奇怪的结果

时间:2015-11-12 04:54:05

标签: sql oracle blob varchar2

我试图在SQL开发人员中运行以下查询,这会在输出中产生奇怪的结果:

select utl_raw.cast_to_varchar2(dbms_lob.substr(message,100))
from XML_MESSAGE;

我的问题是,结果显示某些行的正确XML消息,但其他人的随机值如下:x�[o�~߯���m0��$N�k��m��~�S�_���|d�G��qmD�7拔����

我不确定为什么会这样。是因为将BLOB转换为varchar2?

1 个答案:

答案 0 :(得分:2)

您应该substr而不是blob列utl_raw.cast_to_varchar2 message。因此,最终查询将如下所示:

select dbms_lob.substr(utl_raw.cast_to_varchar2(message),100) from XML_MESSAGE;