数据库char真的认识它吗?

用文字记录自己的程序人生

事故来源:
按照状态条件进行查询返回相对应结果画面,使用的ibatisoracle,对比sql和传入的参数一一对比都没发现有什么问题,把语句拷贝在数据库执行也没有什么问题,那为什么再程序中会有问题呢?

案例分析:
会不会参数没有传入呢,可是对比的sql发现已经插入了,对比参数的值也没有问题,这怎么回事呢?想着是不是字符串不识别呢,然后转成数字格式去查询,发现结果正确了。但是char应该数字和字符串都可以查询的,应用sql再数据库中模拟过发现是没有问题。那会是什么问题呢?难道这char还有其他的含义?

寻找解决方案:
经度娘查询一番果然发现了问题

长度不满定义的长度。Oracle会用空格补满位。

状态值是一位字符串,而数据库字段长度定义的是5位,所以引发了这次事故的发生。

总结:
创建数据库字段长度的时候一定要符合。切勿发生这种低级错误。

你可能感兴趣的:(Oracle,数据库,字符串)