oralce在处理sql的时候,会把传入的字符串转化为varchar2处理,varchar2的最大长度是4000,如果insert语句中单个字符串的长度超过4000,那就肯定会报错
有两种比较简单的方式:一种是拼接字符串;一种是绑定变量。
1.拼接字符串:
拼接字符串的处理非常的简单粗暴,就是把超长的字符串切分成若干个长度不超过4000的子串,逐个update进去。比如这么写:
update usertable set name='abcdefg' where userId = 'aaa';
update usertable set name = name||'hijklmn' where userId = 'aaa';
2.绑定变量
这样子只要每一次拼接进去的字符串长度不超过4000,就不会报错,非常的简单。但是如果字符串的长度达到5位数,那显然实际操作起来就太麻烦。这时候就要采取第二种办法,绑定变量。
绑定变量也不复杂,就是把要插入的字符串先绑定给一个变量,然后在insert或者update语句中用变量代替实际字符串执行,就不会报错。写法如下:
declare
cntent clob :='abcdefg';
begin
insert into table usertable values('aaa',content);
end