标签:
今天发现一个非常奇怪的现象,同样的SQL语句,在PL/SQL中能查询到结果,放到MyBatis下怎么也查不出东西。后来仔细研究,发现如下问题:
1、如果数据库中定义的字段为CHAR(20),而传入的参数只有18位,在PL/SQL中会该工具应该会自动的去除空格或者添加空格以便进行匹配;
2、但是在MyBatis中,没有这样的功能,使用=#{paramName}根本查询不到结果。
3、所以解决方式是:使用like ‘${paramName}%‘来处理或者把对应的数据字段更改为VARCHAR2类型。
MyBatis对Oracle的CHAR和VARCHAR2的处理
标签:
原文地址:http://my.oschina.net/u/2245029/blog/501606