Ste*_*bbi 5 oracle environment-variables oracle11g oracle-sqldeveloper odac
我正在获得协议违规,而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之前安装了SqlDeveloper,但不管怎样,SqlDeveloper似乎都是通过ODAC作为客户端,尽管在PATH环境变量中没有引用ODAC.
更新:当我最初安装ODAC时,我的所有查询都正常运行.然后他们在一天后停止运作,我无法解释原因.我试图卸载ODAC,它在查找要删除的.DLL时失败.然后我手动删除了我的ORACLE_HOME,并重新安装了ODAC,它现在正常工作.我不明白为什么会这样.
SQL Developer 使用 ORACLE_HOME 及其驱动程序(如果可用)。您在此看到的问题是 ORACLE_HOME 与 SQL Developer 中捆绑的 JDBC 驱动程序的版本不同。
对此的“修复”是确保 Oracle 客户端与您安装的 sqldev 版本是最新的。找到它的最简单方法是当连接运行时show 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2554 次 |
| 最近记录: |