Oracle char 类型注意事项--导致sql查询查不到数据


在数据库设计的时候,有时候针对一些状态字段会设计为char类型,这时候一定要记得位数,char(1):状态位是一个字符,如:0,1,2这样的。char(2):状态位是2个字符,如:01,02这样的。


如果使用char(3),这时候,Oracle保存数据的时候会对不足位数的内容进行补位(是在后面补位,这样的数据在PLSQL里面很容易忽略)。如果你存入的数据是1,那么在数据库里面就会是"1  ",补位了2个空格。这时候如果用条件查询,如mybatis,如果你传递的是1(String),这个时候生成的sql是查询不到数据库。(因为有空格)



此问题记录,以防不注意的导致程序出现问题。

你可能感兴趣的:(温故)