Sql 选择太长的blob数据会产生奇怪的结果
我试图在SQL developer中运行以下查询,该查询在输出中给出奇怪的结果:Sql 选择太长的blob数据会产生奇怪的结果,sql,oracle,blob,varchar2,Sql,Oracle,Blob,Varchar2,我试图在SQL developer中运行以下查询,该查询在输出中给出奇怪的结果: select utl_raw.cast_to_varchar2(dbms_lob.substr(message,100)) from XML_MESSAGE; 我的问题是,结果对某些行显示了正确的XML消息,但对其他行显示了随机值,如:x�[o]�~߯���m0��$N�K��M��~�s�_���|D�G��质量管理�7.拔���� 我不知道为什么会发生这种情况。这是因为将BLOB投射到varchar2吗?您应
select utl_raw.cast_to_varchar2(dbms_lob.substr(message,100))
from XML_MESSAGE;
我的问题是,结果对某些行显示了正确的XML消息,但对其他行显示了随机值,如:x�[o]�~߯���m0��$N�K��M��~�s�_���|D�G��质量管理�7.拔����代码>
我不知道为什么会发生这种情况。这是因为将BLOB投射到varchar2吗?您应该在utl\u raw.cast\u to\u varchar2
上执行substr
,而不是BLOB列message
。因此,最终的查询如下所示:
select dbms_lob.substr(utl_raw.cast_to_varchar2(message),100) from XML_MESSAGE;