为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:--03134284336-20250507-272534-20132
【操作系统】:Linux
【问题描述】*:
现状: 我的t表中有个blob_str列是BLOB类型
目标: 我希望写个SQL:select blob_str from t where id=1;(例子) 能够直接把该字段以文本字符串形式来查询显示。目前在manage客户端只会显示成"<二进制>"。
我进行的尝试:
select utl_raw.cast_to_varchar2(DBMS_LOB.SUBSTR(blob_str , 30000)),
utl_raw.cast_to_varchar2(DBMS_LOB.SUBSTR(blob_str , 30000, 30001)) from t;
我用上面的语句,拆成2个字段显示,每个字段显示3w个字符,这样是可以显示出来。
但是我的目标是希望显示到一个字段上,我如果把逗号改成||,则会报错“字符串截断”,说明字符串超过32767左右显示不出来。
是否有办法实现我的目标?

这个没办法,varchar本身就有长度上限
如果希望manager客户端可以显示小于32767的内容,有个类似预览一部分数据的功能,可以参考此方法试试
https://eco.dameng.com/document/dm/zh-cn/faq/FAQ_TOOL.html#DM%20%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7%E5%A6%82%E4%BD%95%E6%94%AF%E6%8C%81%E6%9F%A5%E8%AF%A2%E7%BB%93%E6%9E%9C%E6%98%BE%E7%A4%BA%E5%A4%A7%E5%AD%97%E6%AE%B5%E5%86%85%E5%AE%B9