Oracle 违反协议 OALL8 处于不一致状态

http://blog.sina.com.cn/s/blog_a45aac720100yu3h.html

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有关,具体我就没有多做深究了。)

时间: 2024-08-09 09:44:22

Oracle 违反协议 OALL8 处于不一致状态的相关文章

ORACLE数据库用户账号处于expired状态如何处理

账户过期,必须要用户更改密码, 账户才能重新使用. 但有些时候, 因为各种原因, 我们并不知道原密码的明文是什么,但很多时候又不能修改已有密码,好在可以用原密码来更改密码. 在11G中,dba_users.password已经不再显示用户的密码: SQL> select username,ACCOUNT_STATUS from dba_users where username in ('SYSTEM','SCOTT'); USERNAME ACCOUNT_STATUS -------------

oracle中函数处于无效状态

编译后错误提示为pls-00103:出现符号""在需要下列之一时:begin case declare 原因是:有非法字符,如:存在全角空格.

安装失败,并出现以下错误:Exchange Server 处于不一致状态。只有灾难恢复模式可用

删除 Active Directory 中的 Exchange 服务器对象 安装 ADSI Edit. 启动 ADSI Edit.要这样做,请单击"开始",再单击"运行",在文本框中键入 adsiedit.msc,然后单击"确定". 转至以下位置,找到 Exchange 服务器对象:CN=Configuration, DC= Domain Name, DC=com, CN=Services, CN=Microsoft Exchange, CN=&

jQuery停止动画和判断是否处于动画状态

1.停止元素的动画 stop([clearQueue][,gotoEnd]); 参数clearQHCHC和gotoEnd都足町选的参数,为Boolean值(ture或flase).clearQueue代表足胥婴清空术执{j.完的动嘶队列,90toEnd代表是否直接将萨在执行的动画跳转到术状态. 如粜商接使川stop()方法.![!IJ会.一即停.l卜专前一在进行的动画,如.粜接下来还有动画等待继续进行.呲0以当前状态J r始接下柬的动画.经常会遇到这种情况.在为.’个元索绑定hover事件之后.

jQuery如何停止元素的animate动画,还有怎样判断是否处于动画状态?【转】

停止元素的动画方法:stop() 语法结构:stop([clearQueue],[gotoEnd]) clearQueue 和 gotoEnd 都为可选参数,为布尔值. clearQueue : 是否要清空未执行玩的动画列表 gotoEnd : 是否直接将正在执行的动画跳转到末状态 经常在hover时间的动画效果里用到 stop() 方法,可以避免动画效果与光标动作不一致时导致的延迟动画. 例如: $(".test").hover(function(){     $(this).sto

锋利的jQuery-4--停止动画和判断是否处于动画状态(防止动画加入队列过多的办法)

1.停止元素的动画:stop([cleanQueue, gotoEnd]):第一个参数代表是否要清空未执行完的动画队列,第二个参数代表是否直接将正在执行的动画跳转到末状态. 无参数stop():立即停止当前的动画,如果接下来还有动画则以当前状态开始接下来的动画. 举例:为元素绑定hover事件之后,如果光标移入移出的速度太快,导致移入的动画还没执行完,就移出光标,则移出的动画效果就会被放到队列,等移入的动画完成后在执行.因此如果光标的移入移出速度太快,就会导致动画效果与移动光标不一致的情况. 此

Android判断当前的android设备是否处于联网状态

首先,要想获得当前android设备是否处于联网状态,那么android本身给我们提供了一个服务 private ConnectivityManager connectivityManager;//用于判断是否有网络 connectivityManager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);//获取当前网络的连接服务 NetworkInfo info = con

Vmware报错:此主机支持IntelVTx 但IntelVTx处于禁用状态

"此主机支持IntelVTx 但IntelVTx处于禁用状态",报错原因:电脑未开启虚拟化 解决方案: 电脑关机(是关机不是重启)--开机,进BIOS --选择 configuration --再选择intel virtual technology --回车--将状态由disabled修改为enabled--F10保存并退出

DevExpress XtraGrid网格控件示例三:获取当前处于编辑状态的值

使用下面的示例代码,以获得当前编辑的值. C# 1 string editingValue; 2 if(gridControl1.KeyboardFocusView.IsEditing) 3 editingValue = gridControl1.KeyboardFocusView.EditingValue.ToString(); DevExpress XtraGrid网格控件示例三:获取当前处于编辑状态的值,布布扣,bubuko.com