函数说明
官方文档
DBMS_LOB. WRITEAPPEND (
lob_loc IN OUT NOCOPY BLOB ,
amount IN BINARY_INTEGER,
buffer IN RAW
) ;
DBMS_LOB. WRITEAPPEND (
lob_loc IN OUT NOCOPY CLOB CHARACTER SET ANY_CS,
amount IN BINARY_INTEGER,
buffer IN VARCHAR2 CHARACTER SET lob_loc% CHARSET
) ;
建一个表,用来测试
CREATE TABLE "T_FIELDS" (
"ID" NUMBER NOT NULL ENABLE ,
"F_BLOB" BLOB ,
"F_CLOB" CLOB,
"F_NCLOB" NCLOB,
PRIMARY KEY ( "ID" )
) ;
将字符串插入Blob字段
DECLARE
content BLOB ;
buff VARCHAR2( 4000 ) ;
BEGIN
dbms_lob. createtemporary( content, true ) ;
FOR i IN 1. .1000 LOOP
buff := buff|| '1234' ;
END LOOP ;
dbms_lob. writeAppend( content, LENGTHB( buff) , UTL_RAW. CAST_TO_RAW( buff) ) ;
buff := '第二段字符串....省略一万字....' ;
dbms_lob. writeAppend( content, LENGTHB( buff) , UTL_RAW. CAST_TO_RAW( buff) ) ;
INSERT INTO "T_FIELDS" ( "ID" , "F_BLOB" ) VALUES ( 1 , content) ;
commit ;
END ;
将字符串插入Clob字段
DECLARE
content CLOB;
buff VARCHAR2( 4000 ) ;
BEGIN
dbms_lob. createtemporary( content, true ) ;
FOR i IN 1. .1000 LOOP
buff := buff|| '1234' ;
END LOOP ;
dbms_lob. writeAppend( content, LENGTH( buff) , buff) ;
buff := '第二段字符串....省略一万字....' ;
dbms_lob. writeAppend( content, LENGTH( buff) , buff) ;
INSERT INTO "T_FIELDS" ( "ID" , "F_CLOB" ) VALUES ( 2 , content) ;
commit ;
END ;
其实Clob还有种简便写法
DECLARE
content T_FIELDS. F_CLOB% TYPE ;
buff1 VARCHAR2( 4000 ) ;
buff2 VARCHAR2( 4000 ) ;
BEGIN
FOR i IN 1. .1000 LOOP
buff1 := buff1 || '1234' ;
buff2 := buff2 || '0987' ;
END LOOP ;
content := buff1 || buff2;
INSERT INTO "T_FIELDS" ( "ID" , "F_CLOB" ) VALUES ( 3 , content) ;
commit ;
END ;
如果本文对你有帮助,还请点个赞喔!(●’◡’●)