我试图在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?
答案 0 :(得分:2)
您应该substr
而不是blob列utl_raw.cast_to_varchar2
message
。因此,最终查询将如下所示:
select dbms_lob.substr(utl_raw.cast_to_varchar2(message),100) from XML_MESSAGE;