问题描述:
Hibernate 4.0.2
Spring 3.2.3
ojdbc6
oracle使用的是 10.0.2版本

系统偶尔会出现以下错误:

java.sql.SQLException: Protocol violation: [1]
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:527)

网络搜索了一下, 基本上认为是ojdbc的版本不对导致, 回退一下ojdbc, 使用ojdbc14版本。
好像以上状况是不会出现了, 但是在处理Blog字段是会报如下错误:

java.lang.AbstractMethodError
at org.apache.commons.dbcp.DelegatingPreparedStatement.setCharacterStream(DelegatingPreparedStatement.java:328)
 
查了一下,原因还是和数据库相关。
JDBC库往数据库写入blob字段值的吧,blob字段写入的时候不能直接写在insert语句里,insert的时候blob字段要配个empty_blob()替代,然后在修改刚刚写入的数据,通过二进制流写入blob字段值。

看一下 Oracel JDBC驱动的历史

1. 随Oracle 8i发布的Oracle JDBC驱动8.1.7版本
classes111.zip 适用于JDK 1.1.x
classes12.zip  适用于JDK 1.2.x
只有zip文件,无jar文件。

2. 随Oracle 9i发布的Oracle JDBC驱动9.2.0版本
classes111.jar  适用于JDK 1.1.x
classes12.jar   适用于JDK 1.2 and JDK 1.3 (我的项目环境JDK1.6,oracle 10g,windows,用了这个目前没发现问题)
ojdbc14.jar     适用于JDK 1.4
classes111.zip  适用于JDK 1.1.x
classes12.zip   适用于JDK 1.2.x

3. 随Oracle 10.2发布的Oracle JDBC驱动10.2版
classes12.jar  适用于JDK 1.2 and JDK 1.3. 
ojdbc14.jar    适用于 JDK 1.4 and 5.0

4.随Oracle 11.1发布的Oracle JDBC驱动11.1版本
ojdbc5.jar:   适用于jdk5
ojdbc6.jar:   适用于jdk6 (如果你使用jdk1.5,就不能使用这个驱动)

汇总一下:
Oracle版本
jdk版本
推荐jar包
备注
Oracle 8i
JDK 1.1.x
classes111.zip
 
Oracle 8i
JDK 1.1.x
classes12.zip
 
Oracle 9i
JDK 1.1.x
classes111.jar或者 classes111.zip
 
Oracle 9i
JDK 1.2 and JDK 1.3
classes12.jar 或者 classes12.zip
 
Oracle 9i
JDK 1.4
ojdbc14.jar
 
Oracle 9i
JDK 1.5
ojdbc5.jar
 
Oracle 9i
JDK 1.6
ojdbc6.jar
 
Oracle 10g
JDK 1.2 and JDK 1.3.
classes12.jar
 
Oracle 10g
JDK 1.4 and 5.0
ojdbc14.jar
 
Oracle 11g
jdk5
ojdbc5.jar
 
Oracle 11g
jdk6
ojdbc6.jar

看起来要解决这个问题,只能是升级Oralce的版本了。

不过网络上还遇到一种状况就是在批量处理LONG型数据的时候也遇到过这种问题, 取消批量处理就正常了。批量代码段如下:
PreparedStatement ps = conn.prepareStatement(sql);  
ps.setString(1, xml);  
ps.executeUpdate();

java.sql.SQLException: Protocol violation 问题解析相关推荐

  1. java.sql.SQLException: Protocol violation 解决方法

    本篇承接这一篇 :java.sql.SQLException: Protocol violation 问题解析 问题描述 应用可以正常启动,但是运行一段时间时候偶尔会出现这个错误. java.sql. ...

  2. 使用Mybatis时由于粗心遇到Cause: java.sql.SQLException: sql injection violation异常

    使用Mybatis插入数据时,由于粗心书写错误导致出现Cause: java.sql.SQLException: sql injection violation异常,SQL语句如下: <inse ...

  3. Oracle Caused by: java.sql.SQLException: sql injection violation, syntax error: syntax error, expect

    参考:https://blog.csdn.net/qq_36326332/article/details/102938147 https://blog.csdn.net/fly_captain/art ...

  4. 解决 Error querying database. Cause: java.sql.SQLException: sql injection violation....

    解决 Error querying database. Cause: java.sql.SQLException: sql injection violation- 最近在开发的时候老板的需求就是将模 ...

  5. 完美解析解决java.sql.SQLException:Access denied for user ‘‘@‘localhost‘ (using password: NO)

    用springboot项目连接数据库时报了这个错误java.sql.SQLException: Access denied for user 'root'@'localhost' (using pas ...

  6. java.sql.SQLException: 无效的列类型: 错误解析

    八月 16, 2018 8:47:40 下午 org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service( ...

  7. ORACLE各种常见java.sql.SQLException归纳

    java.sql.SQLException错误! ORA-00904:     --invalid column name 无效列名 ORA-00942: --table or view does n ...

  8. oracle错误(一) ORA-各种常见java.sql.SQLException小结

    ORA-00904: --invalid column name 无效列名ORA-00942: --table or view does not exist 表或者视图不存在ORA-01400: -- ...

  9. oracle ora-各种常见java.sql.SQLException归纳

    va.sql.SQLException错误! ORA-00904:     --invalid column name 无效列名 ORA-00942: --table or view does not ...

最新文章

  1. pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动加和(rolling sum)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额加和
  2. Swift 泛型參数
  3. kubernetes(七)项目部署方式:蓝绿部署,灰度发布/金丝雀发布,滚动更新
  4. 怎么关超声_肋骨骨折——超声的优势
  5. linux oracle手动启动两个实例
  6. android透明像素效率,android-非透明像素上的ImageView ColorFilter.夹
  7. 显示用户上次访问时间
  8. 代码批量加引号_如何用Word批量制作员工工作证?1分钟搞定1000份!只需三步
  9. 谐波合成法matlab,基于Kaimal谱采用谐波合成法生成脉动风场
  10. MapReduce-深度剖析
  11. c#重点知识解答(五)
  12. 在线工具:找到神器,助你轻松应对各种职场难题
  13. zblog伪原创插件(2021最新版)
  14. 计算机科学技术学报官网convex,计算机学报chin
  15. cesium api 学习之旋转角 heading(yaw)、pitch、roll
  16. 求s = a + aa + aaa +aaaa +……a的值
  17. 计算机应用知识试题 上学吧,自考计算机应用高分技巧,自考计算机应用作答技巧...
  18. CC2530--串口实验的回显
  19. ly-tab第三方组件使用记录
  20. python程序run不了_无法通过计划程序正确运行Python脚本

热门文章

  1. ios swift 实现饼状图进度条,swift环形进度条
  2. 数据结构 顺序串笔记
  3. C#程序通过模板自动创建Word文档.doc
  4. Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法[转]
  5. linq to entity 错误 1 错误 75: 类型 视图名称 的键部分 “主键的列名1”无效。该键的所有部分都必须不可以为 null。(转)...
  6. VIRT,RES,SHR,虚拟内存和物理内存(转)
  7. coursera 视频总是缓冲或者无法观看,有什么方法解决?
  8. 【报告分享】2022微信视频号生态发展研究报告.pdf(附下载链接)
  9. leetcode力扣647. 回文子串
  10. 电商场景中的精排服务实践