日期:2014-05-17  浏览次数:20798 次

varchar2长度定义的问题
一个字段想保存a、b、c之类的字符,所以定义成varchar2(1),可以正常插入,作为条件查询时也能返回记录,但该字段显示的值却是空。比如表名叫test,有两个字段,分别是sex,类型为varchar2(1)和name,类型是varchar2(10),用insert into test (sex,name) values('a','jobs'),insert into test (sex,name) values ('a','gas'),可以正常插入两条记录,用select * from test where (sex='a')也能返回两条记录,但sex那里显示出来的却是空。sex类型改成varchar2(2)就没这问题了。啥原因呢?

------解决方案--------------------
经过测试,没有这种情况出现滴~~~
------解决方案--------------------
探讨

经过测试,没有这种情况出现滴~~~

------解决方案--------------------
无图无真相。。。楼主把结果发出来看看。。。
SQL code

create table test(sex varchar2(1),name varchar2(10));
insert into test (sex,name) values('a','jobs');
insert into test (sex,name) values ('a','gas');
SQL> select * from test where (sex='a');
 
SEX NAME
--- ----------
a   jobs
a   gas

------解决方案--------------------
select table_name,column_name,data_type,data_length where table_name='TEST'。

看看内容是否和预期的一样。 楼主不是测试了好几次,然后有好几个名称相似的表吧