一.字符串缓冲区可容纳范围内
如果你的Clob字段不超过字符串的缓冲区最大值,那么只需要用下面这种方式即可。
declare
V_SQL clob = '不超过字符串缓冲区最大值的字符串,大概3w左右';
begin
-- 执行insert语句
insert into TEST_TABLE(ID,TEST_CLOB) VALUES('1',V_SQL);
-- 提交事务
commit;
end;
/
二.CLOB超过了字符串缓冲区可容纳范围内
如果你的Clob字段超过字符串的缓冲区最大值,那么用下面这种方式即可。
declare
V_SQL clob;
begin
DBMS_LOB.CREATETEMPORARY(V_SQL, true);
-- 需要将字符串拆分为多个缓冲区以内的字符串,然后逐个拼接
DBMS_LOB.APPEND(V_SQL, '不超过字符串缓冲区范围的第一段');
DBMS_LOB.APPEND(V_SQL, '不超过字符串缓冲区范围的第二段');
-- 执行insert语句
insert into TEST_TABLE(ID,TEST_CLOB) VALUES('1',V_SQL);
-- 释放变量
DBMS_LOB.FREETEMPORARY(V_SQL);
-- 提交事务
commit;
end;
/