varchar2最多能存多少个字符,是4000还是2000,为什么我存到1333就不行了,
再多一个字符就不行了,保如下措:
ORA-01480:trailling missing from STR bin有那位大虾在varchar2中存过3000-4000个字符,我必须使用varchar2类型来存,用
long,clob 可以存进去,但比较时麻烦,不能写sql直接比较,还要取出来,大家想个
办法? 谢了!
再多一个字符就不行了,保如下措:
ORA-01480:trailling missing from STR bin有那位大虾在varchar2中存过3000-4000个字符,我必须使用varchar2类型来存,用
long,clob 可以存进去,但比较时麻烦,不能写sql直接比较,还要取出来,大家想个
办法? 谢了!
解决方案 »
- 大侠教我看一下这个问题
- ORACEL学习视频大集合-不喜勿喷
- 内存不释放???
- 存储过程 blob参数赋值
- 不用 PL/SQL语句查询,这样的sql语句怎么办啊,【急】。。大虾们请进
- 如何得到上周的记录?
- ★★★100分拜会各位老大,顺便问几个问题:如何设置数据库用户名和Oracle Enterprise Manager 管理员名?我的EMCA怎么也连接不上,就是
- 我需要重新建立一张表上的主键索引(就是索引正好建立在构成主键的几个字段上),应该如何写SQL??
- 我想问各位大侠的是我该装哪种版本的ORACLE
- 各位csdn的xdjm,跪求oracle数据库问题,在线等,给分不是问题
- 感谢各位同仁,今天宣誓就职
- oracle8i双机热备下的TNSlistener的切换?
declare
-- Local variables here
i integer;
str varchar2(4000);
begin
-- Test statements here
i:=0;
str:='';
while i<1000 loop
str:=str||'1';
i:=i+1;
end loop;
while i<2000 loop
str:=str||'2';
i:=i+1;
end loop;
while i<3000 loop
str:=str||'3';
i:=i+1;
end loop;
while i<4000 loop
str:=str||'4';
i:=i+1;
end loop;
insert into test1 values(str);
commit;
end;
//////////////////
SQL> select * from test1;ID
--------------------------------------------------------------------------------
11111111111111111111111111111111111111111111111111111111111111111111111111111111SQL> select length(trim(id)) from test1;LENGTH(TRIM(ID))
----------------
4000SQL> select substr(id,1000,100) from test1;SUBSTR(ID,1000,100)
--------------------------------------------------------------------------------
12222222222222222222222222222222222222222222222222222222222222222222222222222222SQL> select substr(id,2000,100) from test1;SUBSTR(ID,2000,100)
--------------------------------------------------------------------------------
23333333333333333333333333333333333333333333333333333333333333333333333333333333SQL> select substr(id,3000,100) from test1;SUBSTR(ID,3000,100)
--------------------------------------------------------------------------------
34444444444444444444444444444444444444444444444444444444444444444444444444444444SQL> select substr(id,3900,100) from test1;SUBSTR(ID,3900,100)
--------------------------------------------------------------------------------
44444444444444444444444444444444444444444444444444444444444444444444444444444444SQL>
你用
[HKEY_LOCAL_MACHINE\Software\ORACLE]
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
[HKEY_LOCAL_MACHINE\Software\ORACLE\ORACLE_HOME0]
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
再试一试的说
是不是你字段设定的长度不对阿?
在8i以后的版本中varchar2最大支持4000个字符,我试验过,2000多个是可行的。
如果你存的是汉字的话,4000/2=2000。
还是看看你的字符集设置吧。
可能是那样一种情况,我在pl/sql developer里面调试的时候,看到1000个字符后面的就见不到了,但是我把字符串写进表里面结果是4000。这个可能跟你的工具有关系。
唉!我们经常被表象所迷惑。