我的系统结构是ssh,开发过程中一直使用sqlserver数据库,后面换了oracle数据库,本来对于word文档我是用MSSQL的image字段类型,映射成binary,在程序中利用byte[]存取。但是到了oracle换成blob字段类型之后,可以正常存,但是取的时候一直是86字节长度,我换了oracle的好几个驱动,都是不行,不知道是为什么。
不是说oracle10.2的驱动已经可以将blob映射成binary了吗? 

解决方案 »

  1.   

    Blob字段是不能被自动读取的,那个86字节,可能只是BLob的定位描述符的长度吧!建议用byte[] ,这个永远不会错的!可以参考这个文章http://www.zhuoda.org/hofman/30501.html
      

  2.   

    这个我已经看了,不知道在DAO层,我要取得blob数据的时候用getImageBlob()还是用getImage,另外,在存的时候用setImageBlob(Blob imageBlob)还是setImage(byte[] image)?
      

  3.   

    把你hibernate xml语法和class的定义放上来看看?顺便问你一下你的jdk是那个版本
      

  4.   

    1)在你的程序里是否有重复的驱动
    2)hibernate 取blob和clob都应该在事务里,你是这么做的吗?
      

  5.   

    已经可以了,参考的http://www.zhuoda.org/hofman/30501.html,在DAO中调用的任然是getImage和setImage方法,马上结贴