5

プロトコル違反が発生しています.OALL8はSELECTクエリを実行する際に矛盾した状態が発生しますが、私が最初に書いたテストアプリケーションでこれが気付いたのはSELECT * FROM SOMETABLEでした。それは数百レコードを取得し、私にロックアップします。 OracleのSQLDeveloperで同じクエリを実行しようとしましたが、一部のテーブルでプロトコル違反例外が発生します。最終的には、すべてのクエリで「OALL8が不整合状態にある」ことを示すポイントに到達します。Oracle SqlError:プロトコル違反/ OALL8が矛盾した状態にあります

これがなぜ発生しているのか、問題を解決する方法を知っている人はいますか?私の矛盾した状態はどこですか?オラクルのSqlDeveloperは独自のスタンドアロンクライアントですか、またはODACまたはInstant Client(PATH envi varで参照)に依存していますか?

最近変更されたのは、odp.netを使用して.NETのSystem.Data.OracleClientを置き換えるためにODACをインストールしたことだけでした。 IT部門はODAC 11.2.0.3.0で、Oracle Developer Tools for Visual Studio(32ビット)を使用していました。私は自分のスタンドアロンインスタントクライアントを指すようにPATH環境変数を更新して以来。

  • のInstant Client - 11.2.0.2.0、ウィンXP SP3、32ビットOracle DBで実行されている:

  • Oracle Databaseの11グラムExpress Editionのリリース11.2.0.2.0 - 生産、Windows上で実行されていますServer 2003では、x64の

  • ODAC:私はODACをインストールする前に11.2.0.3.0

のsqldeveloperがインストールされていたが、何とかのsqldeveloperはODACで参照されていないにも関わらず、クライアントとしてODACを通過しているように見えますPATH環境変数。

更新:私が最初にODACをインストールしたとき、すべてのクエリが正常に機能しました。その後、彼らは1日後に機能を停止し、私は理由を説明することはできません。削除する.DLLを探すときに失敗したODACをアンインストールしようとしました。私は手動でORACLE_HOMEを削除し、ODACを再インストールしましたが、現在は正常に動作しています。なぜこれが当てはまるのか分かりません。

答えて

0

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 
関連する問題