Oracle中Blob转Clob

      

出处:http://blog.sina.com.cn/s/blog_59ca2c2a0101ilv1.html

      BlobToClob函数,代码如下:

-- 先创建Blog转换为Clob的function
CREATE  OR  REPLACE  FUNCTION BlobToClob(blob_in  IN BLOB)  RETURN CLOB  AS
    v_clob    CLOB;
    v_varchar  VARCHAR2( 32767);
    v_start   PLS_INTEGER : =  1;
    v_buffer  PLS_INTEGER : =  32767;
BEGIN
    DBMS_LOB.CREATETEMPORARY(v_clob, TRUE);
     FOR i  IN  1 .. CEIL(DBMS_LOB.GETLENGTH(blob_in)  / v_buffer) LOOP
        v_varchar : = UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(blob_in,
                                                              v_buffer,
                                                              v_start));
        DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar);
        --DBMS_OUTPUT.PUT_LINE(v_varchar);
        v_start : = v_start  + v_buffer;
     END LOOP;
     RETURN v_clob;
END BlobToClob;

 

  

你可能感兴趣的:(oracle)