求教大文本类型CLOB的处理!

zwei27 2011-12-21 10:53:30
本人开发用的oracle9i,接收CONFIG_VALUE CLOB类型的字段我用的是字符串类型的,在ibatis中有条sql是这样写的:
<resultMap id="baseconfigMap" class="baseconfig" >
<result column="CONFIG_ID" property="configId"/>
<result column="CONFIG_VALUE" property="configValue" />
<result column="ISDELETE" property="isDelete"/>
</resultMap>
<select id="IbatisBaseConfigDAO.queryBaseConfigById" parameterClass="int" resultMap="baseconfigMap">
SELECT CONFIG_ID,to_char(CONFIG_VALUE) as CONFIG_VALUE,ISDELETE FROM X_TM_CONFIG WHERE CONFIG_ID = #value#
</select>
这样对于字段的值小于4000才有效,现在由于系统升级,字段值有可能会大于4000,如果超过了4000上面的sql就会报错了,不用我解释为什么了吧?
现在我需要就是超过4000一样可以执行,我用过如下的办法:
1.去掉to_char(),可以成功,但是在unix系统中就不行了
<select id="IbatisBaseConfigDAO.queryBaseConfigById" parameterClass="int" resultMap="baseconfigMap">
SELECT CONFIG_ID,CONFIG_VALUE as CONFIG_VALUE,ISDELETE FROM X_TM_CONFIG WHERE CONFIG_ID = #value#
</select>
2.试着在对应关系中加下转换:不行
<resultMap id="baseconfigMap" class="baseconfig" >
.............................
<result property="configValue" column="CONFIG_VALUE" jdbcType="CLOB" javaType = "java.lang.String" typeHandler =" OracleClobTypeHandlerCallback "/>
</resultMap>

我需要更好的办法,望高手们帮帮位帮我解决下,谢谢!!!!
...全文
207 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwei27 2011-12-21
  • 打赏
  • 举报
回复
应该有高手吧!!!!急等,等到最后实在不行,只有4000内4000内的截取在拼接了,我不想用这办法,求高手!!!!
zwei27 2011-12-21
  • 打赏
  • 举报
回复
楼上的朋友,我不是要你们看sql,也不是要关注字段要啥类型,定死了就是CLOB类型,你改类型也不可能的,因为是系统升级字段类型能随便改?在说CLOB长度本来就可以超4000的,这是正确的,to_char()超4000就会报错,我现在要的是如果当超4000后如何作处理?java接收的类型是字段串的,我就是要CLOB类型的java用String类型来接收,有什么办法?可以从ibatis映射关系作手不?可以从类型转换的时候作手不?可以在接收值过来后在java代码中做转换成字符串也行??有没高手遇到过,帮帮忙!!!!!
  • 打赏
  • 举报
回复
不知oracle9i 有没有哪个配置是来设置允许最大字段的大小的
友情帮顶下~
cjj7876199 2011-12-21
  • 打赏
  • 举报
回复
不懂啊 哈哈哈

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧