原sql:SELECT t.name AS name,b.value AS comments FROM sys.objects t LEFT JOIN sys.extended_properties b ON b.major_id=t.object_id and b.minor_id=0 and b.class=1 AND b.name='MS_Description' WHERE t.type='U' <if test="name != null and name != ''"> AND t.name = upper(#{name}) </if> ORDER BY t.name
修改后:SELECT cast(t.name as varchar(500)) AS name,cast(b.value as varchar(500)) AS comments FROM sys.objects t LEFT JOIN sys.extended_properties b ON b.major_id=t.object_id and b.minor_id=0 and b.class=1 AND b.name='MS_Description' WHERE t.type='U' <if test="name != null and name != ''"> AND t.name = upper(#{name}) </if> ORDER BY t.name
原因: 是由于SqlServer的JDBC的缺陷, 需要强制转换.
PS:可能由于用惯了mysql,遇到这种恶心人的玩意我就想骂娘。