【oracle】 blob&clob类型的字段插入字符串

 

---------------------------------------------------------------------
-- 将字符串插入Blob字段
---------------------------------------------------------------------
DECLARE
    content BLOB; -- 或者使用下面这种写法:表名.字段名%TYPE
    -- content T_FIELDS.F_BLOB%TYPE; -- Blob类型
    buff VARCHAR2(4000);

BEGIN
      -- 初始化blob
    dbms_lob.createtemporary(content, true);
    
    buff :='harara';
    -- 向blob中追加内容,LENGTHB()取的是字节数,不是字符数,UTL_RAW.CAST_TO_RAW()将字符串转换为RAW
    dbms_lob.writeAppend(content, LENGTHB(buff), UTL_RAW.CAST_TO_RAW(buff));
    
    -- 如果字符串过长,需分为多次放入blob中,否则会超出varchar2的长度限制
    buff := '第二段字符串....省略一万字....';
    -- 再次向blob中追加内容
    dbms_lob.writeAppend(content, LENGTHB(buff), UTL_RAW.CAST_TO_RAW(buff));

    INSERT INTO "TABLENAME" ("ID", "F_BLOB") VALUES (1, content);
    commit;
END;

 

posted @ 2022-08-10 10:58  harara  阅读(704)  评论(0)    收藏  举报