最近一个新项目中,尝试在 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 setBytessetBinaryStreamsetStringsetCharacterStream, and setAsciiStream methods of PreparedStatement are extended to enhance the ability to work with BLOBCLOB, and NCLOB target columns.

...

The SetBigStringTryClob connection property of Oracle Database 10g Release 1 (10.1) is no longer used or needed.

...

----------------------------

转发请注明出处。当心我晚上变大灰狼来摸你肚子哟。我是 jacklondon , at , cnblogs.com.

编程经验点滴----巧妙解决 Oracle NClob 读写问题的更多相关文章

  1. 编程经验点滴----在 Oracle 数据库中保存空字符串

    写程序这么多年,近几天才发现,向 Oracle 数据库表中,保存空字符串 '' ,结果成了 null. 由于数据库数值 null 的比较.判断,与空字符串 '' 存在差异.一不留神,代码中留下了 bu ...

  2. iOS开发编码建议与编程经验

    作者:乞力马扎罗的雪(GitHub) 原文 在开发过程中,我们不仅要去看别人的代码,也要让别人看我们的代码.那么,有一个良好的编码习惯将会非常重要.下面将会罗列使用Objective-C来开发iOS的 ...

  3. C++的XML编程经验――LIBXML2库使用指南[转]

    C++的XML编程经验――LIBXML2库使用指南 写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的XML ...

  4. C++的XML编程经验――LIBXML2库使用指南

    C++的XML编程经验――LIBXML2库使用指南 写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的XML ...

  5. Python/Numpy大数据编程经验

    Python/Numpy大数据编程经验 1.边处理边保存数据,不要处理完了一次性保存.不然程序跑了几小时甚至几天后挂了,就啥也没有了.即使部分结果不能实用,也可以分析程序流程的问题或者数据的特点.   ...

  6. PHP解决多进程同时读写一个…

    原文地址:PHP解决多进程同时读写一个文件的问题作者:陌上花开 首先PHP是支持进程的而不支持多线程(这个先搞清楚了),如果是对于文件操作,其实你只需要给文件加锁就能解决,不需要其它操作,PHP的fl ...

  7. 解决 Oracle 11g 不能导出空表的问题

    --解决 Oracle 11g 不能导出空表的问题 --执行下面语句,查询数据库中的空表,同时产生分配空间.把生成的结果复制出来并执行. select 'alter table '||table_na ...

  8. 解决oracle数据库 ora-00054:resource busy and acquire with NOWAIT specified 错误

    解决oracle数据库 ora-00054:resource busy and acquire with NOWAIT specified 错误 本人在使用pl/sql developer 客户端调用 ...

  9. 解决Oracle用户被锁定的方法

    解决Oracle用户被锁定的方法 1,cmd控制台: 使用sqlplus 命令:sqlplus sys/密码@ip/orcl as sysdba; 2,先设置具体时间格式,以便查看具体时间 SQL&g ...

随机推荐

  1. Apace、Ngnix、Tomcat三者关系

    Apache,指的应该是Apache软件基金会下的一个项目--Apache HTTP Server Project:Nginx同样也是一款开源的HTTP服务器软件(当然它也可以作为邮件代理服务器.通用 ...

  2. HTTP/2协议–特性扫盲篇

    HTTP/2协议–特性扫盲篇 随着web技术的飞速发展,1999年制定的HTTP 1.1已经无法满足大家对性能的要求,Google推出协议SPDY,旨在解决HTTP 1.1中广为人知的性能问题.SPD ...

  3. sql server 备份与恢复系列五 完整模式下的备份与还原

    一.概述 前面介绍了简单恢复模式和大容量恢复模式,这篇继续写完整恢复模式下的备份与还原.在完整恢复模式里最大的优点是只要能成功备份尾日志,就可以还原到日志备份内包含的任何时点("时点恢复&q ...

  4. sql server 性能调优之 逻辑内存消耗最大资源分析1 (自sqlserver服务启动以后)

    一.概述 IO 内存是sql server最重要的资源,数据从磁盘加载到内存,再从内存中缓存,输出到应用端,在sql server 内存初探中有介绍.在明白了sqlserver内存原理后,就能更好的分 ...

  5. Python爬虫、自动化常用库&帮助文档URL

    一.Python下载地址 Windows终端Cmder.exe下载--->http://cmder.net/ Python下载(Windows)        ---> https://w ...

  6. flex布局常见用法小结

    1,display:flex 这个在父容器中声明: 2,flex-direction:row / column 默认为横向,也在父容器中设置,定义flex布局的主轴方向:一条轴为主轴,那么另一条轴自然 ...

  7. 用POLARDB构建客到智能餐饮系统实践

    在新零售成为大趋势的今天,餐饮行业也加入到这一浪潮之中.智能餐饮系统将帮助餐饮行业从多个维度提升自己的运营能力和收益,而打造智能餐饮系统SaaS化能力也成为了目前的一个热点.本文中果仁软件联合创始人& ...

  8. 进程间通信IPC-内存共享

    函数: (1)int shmget(key_t key, int size, int shmflg),开辟或使用一块共享内存. (2)void *shmat(int shmid, const void ...

  9. PHP中的__set和__get方法

    当调用或者设置类不存在的方法时,_会调用_set和__get方法 以下是示例 <?php class HandsonBoy { private $name = 'chenqionghe'; pr ...

  10. [总结] 动态DP学习笔记

    学习了一下动态DP 问题的来源: 给定一棵 \(n\) 个节点的树,点有点权,有 \(m\) 次修改单点点权的操作,回答每次操作之后的最大带权独立集大小. 首先一个显然的 \(O(nm)\) 的做法就 ...