Oracle中char数据类型,length长度不足时,会自动用空格补上,这会导致一些问题的发生
例如 : SELECT COUNT(*) FROM T_AREA WHERE DM = ‘1’
当DM的数据类型为char,length为6时,虽然数据库中确实存在这条数据
但是作比较时,DM=1加上5个空格,这与我们传入的1不相等,导致查询不到数据。
解决办法: SELECT COUNT(*) FROM T_AREA WHERE trim(DM) = '1'
加上trim(),去掉空格,
不过一般char类型是用作固定长度的数据格式,length为多少,一般数据也是length这么长