BLOB类型转换成字符串类型

BLOB类型转换成字符串类型

    • blob_to_varchar2

一开始遇到这个问题的时候我走错了方向,一直没有解决,后来再网上找到了一个函数,亲测有效。

blob_to_varchar2

Create Or Replace Function Blob_To_Varchar (Blob_In In Blob) Return Varchar2 
Is
    V_Varchar Varchar2(4000); 
    V_Start Pls_Integer := 1; 
    V_Buffer Pls_Integer := 4000; 
Begin
    If Dbms_Lob.Getlength(Blob_In) Is Null Then
        Return '';
    End If;
    For I In 1..Ceil(Dbms_Lob.Getlength(Blob_In) / V_Buffer) Loop
        --当转换出来的字符串乱码时,可尝试用注释掉的函数
        --V_Varchar := Utl_Raw.Cast_To_Varchar2(Utl_Raw.Convert(Dbms_Lob.Substr(Blob_In, V_Buffer, V_Start),'SIMPLIFIED CHINESE_CHINA.ZHS16GBK', 'AMERICAN_THE NETHERLANDS.UTF8'));
        V_Varchar := Utl_Raw.Cast_To_Varchar2(Dbms_Lob.Substr(Blob_In, V_Buffer, V_Start));
        V_Start := V_Start + V_Buffer; 
    End Loop;
    Return V_Varchar;
End Blob_To_Varchar;

将这个函数再执行一下,这里的列名就不再是BLOB类型了,一定要记得改成VARCHAR类型
- 关于 **Flowchart流程图** 语法,参考 [这儿][4].
在这里插入图片描述
这样查出来的结果就是字符串类型了。
本人也是个小白,第一次遇到这个问题的时候浪费了很长时间,所以记下来,希望可以帮助到大家。

你可能感兴趣的:(BLOB类型转换成字符串类型)