巧妙解决Oracle NClob读写问题(经验分享)
最近一个新项目中,尝试在Oracle数据库中使用NCLOB来保存大的xml字符串。
在代码自动生成工具(通过JDBC驱动程序,读数据库表结构,自动生成对应的java代码,包含增加、删除、修改、分页查询、根据主键查找等前台html/js、后台代码java),将NCLOB字段映射到String类型。
运行代码,无报错。使用SQuirreLSQL客户端查看数据,觉察数据未保存成功。
网上搜一通,有提到用SetBigStringTryClob 的数据库连接额外属性的。总觉得好傻。也有提到用setStringForClob方法的,也比较笨。
最后在Oracle官网上,找到一个更好的办法:
升级OracleJDBC驱动程序,直接用javaJDBC标准的setString函数,保存成功!
对应网址:
http://docs.oracle.com/cd/E11882_01/java.112/e16548/oralob.htm#JJDBC28534
里面提到:
InOracleDatabase11grelease2(11.2),thesetBytes,setBinaryStream,setString,setCharacterStream,andsetAsciiStreammethodsofPreparedStatementareextendedtoenhancetheabilitytoworkwithBLOB,CLOB,andNCLOBtargetcolumns.
...
TheSetBigStringTryClobconnectionpropertyofOracleDatabase10gRelease1(10.1)isnolongerusedorneeded.
...
----------------------------
以上这篇巧妙解决OracleNClob读写问题(经验分享)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。