加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle SqlError:协议违规/ OALL8处于不一致状态

发布时间:2020-12-12 13:13:52 所属栏目:百科 来源:网络整理
导读:我正在获得协议违规,而OALL8是一个尝试执行SELECT查询的异常状态异常,但仅限于我的某些表.我在我编写的测试应用程序中首先注意到这一点,它执行了SELECT * FROM SOMETABLE.它会通过几百条记录,然后锁定我.我尝试在Oracle的SQLDeveloper中运行相同的查询,并在
我正在获得协议违规,而OALL8是一个尝试执行SELECT查询的异常状态异常,但仅限于我的某些表.我在我编写的测试应用程序中首先注意到这一点,它执行了SELECT * FROM SOMETABLE.它会通过几百条记录,然后锁定我.我尝试在Oracle的SQLDeveloper中运行相同的查询,并在某些表上获得Protocol Violation异常.最终,对于任何查询,它都指向“OALL8处于不一致状态”的点.

有谁知道为什么会发生这种情况以及如何解决问题?我的不一致状态在哪里? Oracle的SqlDeveloper是独立的客户端,还是依赖于ODAC或Instant Client(在PATH envi var中引用)?

最近唯一改变的是我安装了ODAC,以便我可以使用odp.net来替换.NET中的System.Data.OracleClient. IT是ODAC 11.2.0.3.0,使用Oracle Developer Tools for Visual Studio,32位.我更新了我的PATH environmetn变量,指向我的独立即时客户端.

> Instant Client – 11.2.0.2.0,在Win XP SP3,32位Oracle DB上运行:
> Oracle Database 11g快捷版11.2.0.2.0版 – 生产,在Windows Server 2003,x64上运行
> ODAC:11.2.0.3.0

在安装ODAC之前安装了SqlDeveloper,但不管怎样,SqlDeveloper似乎都是通过ODAC作为客户端,尽管在PATH环境变量中没有引用ODAC.

更新:当我最初安装ODAC时,我的所有查询都正常运行.然后他们在一天后停止运作,我无法解释原因.我试图卸载ODAC,它在查找要删除的.DLL时失败.然后我手动删除了我的ORACLE_HOME,并重新安装了ODAC,它现在正常工作.我不明白为什么会这样.

解决方法

SQL Developer在可用时使用ORACLE_HOME及其驱动程序.您在此看到的问题是ORACLE_HOME与SQL Developer中捆绑的JDBC驱动程序的版本不同.

这个’修复’是为了确保oracle客户端是最新的,你已经安装了sqldev的版本.找到这个的最简单方法是在连接运行时显示jdbc

show jdbc
-- Database Info --
Database Product Name: Oracle
Database Product Version: Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production
Database Major Version: 12
Database Minor Version: 1
-- Driver Info --
Driver Name: Oracle JDBC driver
Driver Version: 12.2.0.1.0
Driver Major Version: 12
Driver Minor Version: 2

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读