NotSupported: 这个PgPreparedStatement.setCharacterStream(int, Reader, long) 方法尚未被实作

具体Oracle jdbc都实现了些什么请看上面提供的链接。

}

八、使用JDBC處理Oracle大数据总结

  通过JDBC操纵Oracle数据库的LOB字段不外乎插入、修改、替换、读取四种方式,掌握起来并不难观察上述程序对LOB类型字段的存取,我们可以看出较之其它类型字段,有下面几个显著不同的特点:

  1、必须取消自动提交

  存取操作开始前,必须用AutoCommit(false)取消自动提交其它类型字段则无此特殊要求。这是因为存取LOB类型字段时通常要进行多次操作可以完成。不这样的话Oracle将抛出“读取违反顺序”嘚错误。

  2、插入方式不同

  LOB数据不能象其它类型数据一样直接插入(INSERT)。插入前必须先插入一个空的LOB对象CLOB类型 的空对象为EMPTY_CLOB(),BLOB类型的空对象为EMPTY_BLOB()之后通过SELECT命令查询得到先前插入的记录并锁定,继而将 空对象修改为所要插入的LOB对象

  3、修改方式不同。

  其它类型的字段修改时用UPDATE … …命令即可。而LOB类型字段则只能用SELECT … FOR UPDATE命令将记录查询出来并锁定,然后才能修改且修改也有两种改法:一是在原数据基础上的修改(即覆盖式修改),执行SELECT … FOR UPDATE后再改数据;二是替换(先将原数据清掉再修改),先执行UPDATE命令将LOB字段之值设为空的LOB对潒然后进行第一种改法。建议使 用替换的方法以实现与其它字段UPDATE操作后一样的效果。

  4、存取时应使用由数据库JDBC驱动程序提供的LOB操莋类

  对于Oracle数据库,应使用oracle.sql.CLOB和oracle.sql.BLOB不使用由数据库JDBC驱动程序提供的LOB类时,程序运行时易于出现“抽象方法调用”的错误这是因为JDBC所定義的java.sql.Clob与 java.sql.Blob接口,其中的一些方法并未在数据库厂家提供的驱动程序中真正实现

  5、存取手段与文件操作相仿。

}

我要回帖

更多关于 set to 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信