当前位置:   article > 正文

oracle数据库通过sql实现blob类型字段转字符串_oracle blob转换成string

oracle blob转换成string

        最近遇到一个问题,数据表tabA中有一个字段content是blob类型。现在需要通过sql把这个字段的内容展示出来。一般情况我们都是通过后端实现blob转string。但是通过sql查询出blob类型的内容还没遇到过,今天把解决这个问题的心理路程记录下。

        首先,通过网上查询用to_char函数把blob转string

select to_char(content) from tabA

这个方法确实可以把blob转string,但是当blob的长度超过4000时,就不行了。经过查询oracle支持字符串最长为4000,如果content内容超过4000,sql就报错。显然这个不是解决问题的办法

        接着,DBMS.LOB.SUBSTR这个函数可以截取字符串。但是只能最大截取2000个字符,而且返回的不是字符串。

         DBMS.LOB.SUBSTR(content,2000,1):第一个参数是blob字段,第二参数截取多少个字符,第三个参数开始位置。

select utl_raw.cast_to_varchar2(DBMS.LOB.SUBSTR(content,2000,1)) from tabA

 utl_raw.cast_to_varchar2函数是把blob转string

这个sql最大能截取2000个字符如果想截取更大长度,需求拼接sql,最终sql如下

select utl_raw.cast_to_varchar2(DBMS.LOB.SUBSTR(content,2000,1)) || utl_raw.cast_to_varchar2(DBMS.LOB.SUBSTR(content,2000,1)) from tabA

 在oracle中最大能截取4000个字符,所以只能拼接一次。

其他:也可以对blob字段进行排序

select * from tabA  order by DBMS_LOB.GETLENGTH(content) desc

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/723051
推荐阅读
相关标签
  

闽ICP备14008679号