百家号网站开发属于什么领域,淘宝网站打算找人做,正规自媒体培训学校,wordpress hashoneSQL*PLUS对文本长度的限制 一、可解决SQL * Plus行长限制的部分选项#xff1a;二、SQL * plus 因为以上限制导致脚本执行过程可能遇到的错误1、CLOB字段超4000报ORA-22835或ORA-017042、CLOB处理#xff1a;SP2-0027: 输入太长 ( 2499 个字符) 收到错误SP2-0027#xf… SQL*PLUS对文本长度的限制 一、可解决SQL * Plus行长限制的部分选项二、SQL * plus 因为以上限制导致脚本执行过程可能遇到的错误1、CLOB字段超4000报ORA-22835或ORA-017042、CLOB处理SP2-0027: 输入太长 ( 2499 个字符) 收到错误SP2-0027输入太长( 2499个字符)-行被忽略 输入的SQL文本本身太长单行超过2500个字符与数据库内部的数据无关是对SQLPlus具有命令行大小限制。 此外单条SQL语句长度不能超4000但是使用过程无限制。
一、可解决SQL * Plus行长限制的部分选项
一升级到12.2()客户端。在12.2上客户端最多允许4999个字符。如果Oracle最终承认2499还不够为什么他们只将限制提高到4999-----仍然不是解决问题一劳永逸的方式 二添加换行符。将结果分成多行。如果使用Windows请确保同时使用回车符和换行符-chr(13)||chr(10)。 三使用其他程序。许多程序都有类似SQL* Plus的选项。通常我建议不要使用SQL* Plus克隆。SQL* Plus的主要优点是它是一个简单的工具并且在任何地方都可以使用。没有SQL* Plus克隆是完全兼容的如果在克隆上运行SQL* Plus脚本许多程序将中断。
二、SQL * plus 因为以上限制导致脚本执行过程可能遇到的错误
1、CLOB字段超4000报ORA-22835或ORA-01704
当CLOB大对象的字段值超过4000时并且直接Insert或update时会报如下的错 ORA-22835: 缓冲区对于 CLOB 到 CHAR 转换或 BLOB 到 RAW 转换而言太小 (实际: 5679, 最大: 4000) ORA-06512: 在 line 111 ORA-01704: 文字字符串过长 可用下面的方法解决
declare
v_clob clob:大对象字符串超过4000.....;
begin
insert into erm_license values(111,5,v_clob);
end;
/
commit;update也可以用同样的方法解决。
2、CLOB处理SP2-0027: 输入太长 ( 2499 个字符)
原因CLOB的所有内容在一行上一行超过2499就报错了解决的办法是将原来的一行拆成N行。
例子
declare
v_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;