Sybase TEXT字段存字符串报ClassCastException,求2k内字符串推荐类型
问题解答
错误原因
- Sybase的TEXT类型属于大对象(LOB)范畴,其JDBC驱动要求写入该类型字段时必须传入
com.sybase.jdbc4.jdbc.SybLob类型的对象,直接传入Java原生String会触发类型强制转换失败——这两个类型属于完全不同的对象体系,驱动无法自动完成转换。 - 额外说明:TEXT字段原本是为存储超长大文本设计的,驱动对其处理逻辑和普通字符串字段完全不同,不能用常规的
setString()方法写入,但你的字符串长度仅1500,根本没必要使用TEXT类型。
Sybase 16推荐数据类型
- 直接使用
VARCHAR(2000):Sybase 16中VARCHAR类型的最大支持长度可达32767字符(不同字符集下略有差异,但完全覆盖2000字符的需求),该类型属于普通可变长度字符串类型,写入时直接用Java String配合setString()方法即可,不会出现类型转换问题,性能和易用性都远优于TEXT。 - 若未来有扩展更长字符串的需求,可考虑
VARCHAR(max),但针对当前2000字符的场景,VARCHAR(2000)是最适配的选择。
内容的提问来源于stack exchange,提问作者user2800089
相关产品推荐
相关产品推荐

