`

JDBCExceptionReporter>: 违反协议;JDBCExceptionReporter>: OALL8 处于不一致状态!

阅读更多
ERROR-util.JDBCExceptionReporter>: 违反协议
ERROR-util.JDBCExceptionReporter>: OALL8 处于不一致状态!

最近被这个问题纠结了很久,昨天终于找到了正确的解决方案,总结下, 出现这种问题的原因大致有
种:
1、连接oracle驱动不匹配。比如说在11g+jdk6.0的环境下,使用ojdbc5.jar。

2、中途修改了表结构等信息,也会导致上述错误。(重启WEB就不会再出现了)

3、操作字段数据时,不按照字段类型规范去操作。这也是一种比较隐藏的一个问题。比如说,我有一个表table,该表就2个字段,一个number类型tid,一个varchar2类型tname。从数据库建表规范上来说,表应该要有主键的,所以就设定第一个字段为主键,按序列递增。那么,怎么样使异常重现呢?请看如下sql:
select * from table where tid = '1';
    从结果上来说,这个sql是没有问题的,不信大家可以在PL/SQL上试一试。但是,很明显,tid明明是number类型,但是后面却是比较了一个字符串类型的值。
    而我出现这样的问题也是因为这个,在我JAVA中写的hql语句(hibernate)里面,有好几处都是这样(由于使用的是模板,所以当时拷贝的时候没注意这些),导致频繁出现这类问题。(也有可能跟hibernate有关,具体我就没有多做深究了。)
分享到:
评论

相关推荐

    Hibernate+c3p0连接池SQLServer 2000

    <property name="c3p0.unreturned_connection_timeout">2</property> <property name="c3p0.validate">true</property> <!-- 映射文件 --> <mapping resource="dao/wzlist.hbm.xml"/> </session-factory> ...

    关键字user附近有语法错误解决方案

    警告: SQL Error: 156, SQLState: S0001 org.hibernate.exception.SQLGrammarException: could not ...org.hibernate.util.JDBCExceptionReporter logExceptions 严重: 关键字 'user' 附近有语法错误。 的解决方案。

    MySql 错误Incorrect string value for column

    <property name="connection.characterEncoding">utf8</property> <property name="connection.useUnicode">true</property> ``` 5. **测试与验证**: - 在实施上述解决方案后,应对应用进行全面测试,特别是在...

    Jboss数据源配置总结[归纳].pdf

    2009-07-02 12:08:30,902 DEBUG [org.hibernate.util.JDBCExceptionReporter] Cannot open connection [???] org.jboss.util.NestedSQLException: Could not enlist in transaction on entering meta-aware object!...

    关于MySQL的wait-timeout连接超时问题报错解决方案.docx

    ERROR [org.hibernate.util.JDBCExceptionReporter] - Communications link failure Last packet sent to the server was 0 ms ago. 这种错误信息表明,MySQL 连接已经超时,无法与服务器进行通信。如果不是第一次...

Global site tag (gtag.js) - Google Analytics