字符串最大长度限制ORA-01489

时间:2023-01-04 08:08:45
字符串最大长度限制ORA-01489 4月 8, 2008 – 1:30 下午

我们知道varchar2的最大长度是4000,当处理一些大长度的字段时4000有的时候也是不够的。这个4000是单个字段的长度,那么在存储的时候按照4000来存储,在操作的时候在把字符串合并到一起不就可以得到更大长度的字符了么?实际上可以这么处理么?
SQL> create table sunwg1 (id char(2000));
表已创建。
SQL> insert into sunwg1 values(’a') ;
已创建 1 行。
SQL> commit;
提交完成。
SQL> create table sunwg2 (id varchar2(4000));
表已创建。
SQL> insert into sunwg2 select id||id from sunwg1;
已创建 1 行。
SQL> commit;
提交完成。
SQL> select length(id) from sunwg2;
LENGTH(ID)
———-
      4000
SQL> select id||id from sunwg2;
select id||id from sunwg2           
       *
第 1 行出现错误:
ORA-01489: 字符串连接的结果过长
看来oracle对连接后的字符串的长度也是有限制的,所以不能靠连接字符串来处理大字符串。我们只能通过long或者blob来处理。