一.字符串緩衝區可容納範圍內
如果你的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;
/