5

Sto diventando protocollo Violazione e OALL8 è un inconsistenti eccezioni statali tentativo di eseguire query SELECT, ma solo su alcuni dei miei tavoli. Per prima cosa ho notato questo in un'applicazione di test che ho scritto che ha fatto un SELECT * FROM SOMETABLE. Avrebbe superato diverse centinaia di record e poi mi avrebbe bloccato. Ho provato a eseguire la stessa query in Oracle 'SQLDeveloper e avrei ottenuto l'eccezione Violazione protocollo su alcune tabelle. Alla fine arriva a un punto in cui indica "OALL8 è in uno stato inconsistente" per qualsiasi query.Oracle SqlError: Protocollo Violazione/OALL8 è in uno stato incoerente

Qualcuno sa perché questo sta accadendo e come risolvere il problema? Dov'è il mio stato incoerente? Oracle sqldeveloper è il suo proprio client standalone, o lo fa affidamento su ODAC o Instant Client (si fa riferimento nel PATH ENVI var) di essere presente?

L'unica cosa che ha cambiato di recente è stato che ho installato ODAC modo che io possa utilizzare odp.net per sostituire System.Data.OracleClient in .NET. IT era ODAC 11.2.0.3.0 con Oracle Developer Tools per Visual Studio, 32 bit. Da allora ho aggiornato la variabile PATH environmetn in modo che punti al mio client istantaneo autonomo.

  • Immediata cliente - 11.2.0.2.0, in esecuzione su Win XP SP3 a 32 bit di Oracle DB:

  • Oracle Database 11g Express Edition uscita 11.2.0.2.0 - Produzione, esecuzione su Windows Server 2003, x64

  • ODAC: 11.2.0.3.0

sqldeveloper è stato installato prima ho installato ODAC, ma in qualche modo sqldeveloper sembra andare attraverso ODAC come client, nonostante ODAC non essere riferimento nella Variabile d'ambiente PATH.

Aggiornamento: Quando ho installato inizialmente ODAC, tutte le mie domande funzionato normalmente. Poi hanno smesso di funzionare dopo un giorno e non so spiegare perché. Ho tentato di disinstallare ODAC, che non è riuscito durante la ricerca di una DLL da eliminare. Quindi ho cancellato manualmente il mio ORACLE_HOME e reinstallato ODAC, e per ora funziona bene. Non capisco perché questo è il caso.

risposta

0

SQL Developer utilizza ORACLE_HOME ed è driver quando disponibili. Il problema che si sta verificando in questo è che ORACLE_HOME non è la stessa versione del driver JDBC in bundle in SQL Developer.

La 'correzione' per questo è garantire che il client Oracle sia aggiornato con la versione di sqldev installata. Il modo più semplice per trovarlo è quando la connessione viene eseguita 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