最近开发中向oracle中存储长度超过4000的字符串时报错,本来字符设置的是varchar2(4000),后改为clob类型,发现还是报错,百度了下发现因为oracle在插入CLOB的数据默认会以varchar2的类型插入,所以此法行不通。
解决办法,通过存储过程实现。
DECLARE
clobValue 表名.字段名%TYPE;
BEGIN
clobValue := '值'; --字段内容
INSERT INTO 表名(...,字段) VALUES(...,clobValue);
COMMIT;
END;
修改同理
DECLARE
clobValue 表名.字段名%TYPE;
BEGIN
clobValue := '值'; --字段内容
UPDATE 表名 T SET T.字段名 = clobValue WHERE 条件;
COMMIT;
END;