该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2005-06-03
我看你们真够懒的,行不行,自己动手试试不就知道了?光等人家喂给你?
|
|
返回顶楼 | |
发表时间:2005-06-03
可惜odjbc14.jar是for jdk1.4的
|
|
返回顶楼 | |
发表时间:2005-06-04
我在oracle817上,字段类型为clob,4000字符以内也会出错;在oracle920上,超过4000字符时才会出错。
|
|
返回顶楼 | |
发表时间:2005-06-17
梅 写道 引用 也就是说,如果你使用最新的Oracle JDBC Driver,使用比较新的Oracle版本,你就可以直接像操作varchar2那样操作clob,没有任何限制了
比较新的Oracle版本 ?? 那如果用 最新的Oracle JDBC Driver用oracle 8i会不会仍然会有限制 ???? 4000字符的限制完全是因为Oracle的Thin Driver造成的,用OCI Driver是不会有这个问题的。也就是说,这个限制与驱动相关与数据库无关。 我试过使用10g的驱动跑9i的数据库,操作CLOB字段就和操作varchar2一样,并且没有4000的限制。一换成9i的Driver就错误依旧。。。8i的没有测试过,不过原理应该一样。 |
|
返回顶楼 | |
发表时间:2005-06-19
楼主总结的不错,我在半年前也是参考了Robbin的那片文章后,这样解决了在Session Bean中传递的序列化问题,直接在DAO层将 大字段 和String进行转换,当时想总结出来贡献给大家,由于项目紧,暂时就搁浅了,呵呵,被楼主抢先了,楼主总结的更全面,支持!
|
|
返回顶楼 | |
发表时间:2005-06-25
像Robbin说的那样,我用的是最新的最新的Oracle Database 10g (10.1.0.2.0) 驱动程序,数据库是Release 9.2.0.1.0 ,插入一条10万多字符的数据到clob类型的字段,抛出异常:Caused by: java.sql.SQLException: setString 只能处理少于 32766 个字符的字符串。我试了多次,还是无法解决。
|
|
返回顶楼 | |
发表时间:2005-06-26
Robbin说的没错,我试过了在xxx.hbm.xml中将数据库中Clob类型的字段映射成Hibernate的text类型,没有任何限制,但是映射成java.lang.String类型却有32K大小的限制。
|
|
返回顶楼 | |
发表时间:2005-07-22
robbin 写道 粗粗看了一遍,非常精彩!总结的非常全面,是一个很好的教材。
但是我要补充说明一点: Oracle9iR2和Oracle10G以上版本已经可以直接进行clob的插入,条件查询,模糊查询了。这一点,你可以试一试,我这周周一刚刚在Oracle10.1.0.3 Linux x86上面试过,不管是where还是like,就像varchar2一样处理。 另外将Oracle JDBC Driver升级到最新的版本,即Oracle10.1.0版本同时发布的odjbc14.jar,那么你将直接可以对clob进行操作。即 ..... pstmt.setString(x, 'xxxxx');; // 不需要setClob ..... .... pstmt.getString(x,'xxx');; // 不需要getClob .... 也就是说,如果你使用最新的Oracle JDBC Driver,使用比较新的Oracle版本,你就可以直接像操作varchar2那样操作clob,没有任何限制了。 hibernate配置有需要改的吗? |
|
返回顶楼 | |
发表时间:2005-07-28
我用DB2 7.2 也开发过一个相当于日志系统,其中日志内容字段也是用的Clob,配置文件类型都是用String到目前为止也没有问题,不知道会不会有32K大小的限制。
|
|
返回顶楼 | |
发表时间:2005-09-22
oracle 10g 的驱动的确好
thin driver 也能顺利按照 String 方式处理 Clob 字段,可以适用于 8.16 以后的所有版本 |
|
返回顶楼 | |