最近一个新项目中,尝试在 oracle 数据库中使用 nclob 来保存大的 xml 字符串。
在代码自动生成工具(通过 jdbc 驱动程序,读数据库表结构,自动生成对应的 java 代码,包含增加、删除、修改、分页查询、根据主键查找等前台 html/js、后台代码 java),将 nclob 字段映射到 string 类型。
运行代码,无报错。使用 squirrel sql 客户端查看数据,觉察数据未保存成功。
网上搜一通,有提到用 setbigstringtryclob 的数据库连接额外属性的。总觉得好傻。也有提到用 setstringforclob 方法的,也比较笨。
最后在 oracle 官网上,找到一个更好的办法:
升级 oracle jdbc 驱动程序,直接用 java jdbc 标准的 setstring 函数,保存成功!
对应网址:
http://docs.oracle.com/cd/e11882_01/java.112/e16548/oralob.htm#jjdbc28534
里面提到:
in oracle database 11g release 2 (11.2), the setbytes, setbinarystream, setstring, setcharacterstream, and setasciistream methods of preparedstatement are extended to enhance the ability to work with blob, clob, and nclob target columns.
…
the setbigstringtryclob connection property of oracle database 10g release 1 (10.1) is no longer used or needed.
…
—————————-
以上这篇巧妙解决oracle nclob读写问题(经验分享)就是www.887551.com分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持www.887551.com。