处理CLOB时,遇到超4000报错,解决过程如下:
http://blog.csdn.net/bamuta/article/details/10073025
SP2-0027: 输入太长 (> 2499 个字符) - 行已忽略
处理CLOB时遇到SP2-0027: 输入太长 (> 2499 个字符) - 行已忽略
update rdm_lifecycle set xml_data =v_clob where life_id = '0';
*
第 4 行出现错误:
ORA-06550: 第 4 行, 第 36 列:
PL/SQL: ORA-00904: "V_CLOB": 标识符无效
ORA-06550: 第 4 行, 第 1 列:
PL/SQL: SQL Statement ignored
原因:
例子:
declarev_clob clob:='大对象字符串,超过4000.。。。大对象字符串,一行超2499.。。。';
begin
insert into erm_license values(111,5,v_clob);
end;
/
commit;
假设上面的v_clob是一行,且长度超4000.直接按上面的方法会报错SP2-0027,
解决方案:
使用
'||
'
将一行拆分:
declare
v_clob clob:='大对象字符串,超过4000.。。。'||
'大对象字符串,一行超2499.。。。';
begin
insert into erm_license values(111,5,v_clob);
end;
/
commit;
总结:
sqlplus工具中好像一行的长度不能超过2499个字节, 1条SQL语句不能超4000,但是使用过程无限制。