是在oracle里出现的,取数据库中一个字符类型列的长度,是个类别字段用的是char(10) bigcata 
如 大类都是两位数 01,02等 类别不多 小类就是0101,0102,0201,0202
本来我想 select xxx from xxx where length(bigcata ) = 2 没结果
select bigcata , length(bigcata )from xxx 结果全是10
01   10
02   10
测试了下varchar2类型的 却是好的(bigcata 的类型改成 varchar2(10))
123aa   5
aa2     3是不是在oracle中 length()函数对char类型无效呢

解决方案 »

  1.   

    char(10)   的意思是:不足10个字符用空格添满,  把类型变成varchar(10)就是你要的结果了。
      

  2.   

    是不是在oracle中 length()函数对char类型无效呢---------------------不是length()对char无效,而是char类型是长度不足就用空格补全,除非是null,否则length()返回的都是10
      

  3.   

    哦  对头  char(10)这个长度是固定的 不管达没达到10个长度,所有存入那列的都是10个长度
    但是这个表是另外一个公司给我们的,现在这个项目是一个公司维护一部分,要结合,让他们改恐非易事:(  , 不过这个问题处理方法还是比较多的,换其他方法算了
      

  4.   

    leo_lesley(leo)  非常感谢
      

  5.   

    select xxx from xxx where length(trim(bigcata)) = 2  那这样就可以了 测试也通过