Oracle
 sql >> Database >  >> RDS >> Oracle

Connessione a Oracle Database tramite Excel

Come hai installato Oracle Client a 32 bit e 64 bit?

Dai un'occhiata a queste istruzioni:BadImageFormatException. Ciò si verificherà durante l'esecuzione in modalità a 64 bit con i componenti client Oracle a 32 bit installati

Versione breve:

Il tuo excel è a 32 bit e provi a utilizzare Oracle a 32 bit. Presumo che tu avvii la versione a 64 bit di "Amministratore ODBC" - potrebbe esserci la mancata corrispondenza. Oppure hai un problema nel tuo PATH riguardo a %ORACLE_HOME% e/o %ORACLE_HOME%\bin cartella

Versione lunga:

Il tuo Excel è a 32 bit, quindi in generale hai fatto l'approccio giusto inserendo il client a 32 bit in PATH e per ORACLE_HOME , non è possibile combinare assembly a 32 bit e 64 bit in un processo. A proposito, quando segui le istruzioni sopra, Windows lo gestirà automaticamente.

Presumo che tu abbia installato Oracle Instant Client. L'Instant Client predefinito non include alcun driver ODBC né Oracle Data Provider (ODP.NET, Oracle.DataAccess.Client )

ODBC

Potresti avere 2 driver ODBC, uno di Oracle in genere chiamato come Oracle in OraClient12_home1 e uno di Microsoft chiamato Microsoft ODBC per Oracle (che dovrebbe essere installato per impostazione predefinita di Windows, tuttavia richiede anche un client Oracle).

Il driver ODBC di Oracle è disponibile per 32 bit e 64 bit, il driver Microsoft è disponibile solo per 32 bit. Hai 2 amministratori ODBC, 32 bit (esegui c:\Windows\SysWOW64\odbcad32.exe ) e 64 bit (esegui c:\Windows\System32\odbcad32.exe ). Lì dovresti vedere i driver installati per 32 risp. 64 bit.

Fornitore di dati Oracle

Per il fornitore di dati hai una situazione simile. Ne hai uno di Microsoft (provider di dati Microsoft .NET Framework per Oracle , System.Data.OracleClient ) e da Oracle (Oracle Data Provider for .NET , Oracle.DataAccess.Client , diverse versioni). Entrambi sono disponibili per 32 bit e 64 bit.

In linea di principio, non importa quale driver/provider usi per connetterti a Oracle:solo l'architettura (cioè 32 contro 64 bit) deve corrispondere. Ciascun driver/provider richiede l'installazione di Oracle Client. Tutti i driver/provider di Microsoft sono stati ritirati, dovresti preferire quelli Oracle (come indicato nel messaggio di avviso)

Altri

Oracle fornisce anche ODP.NET, Managed Driver che non richiede ulteriore installazione di Oracle Client e funziona sia a 32 bit che a 64 bit. Tuttavia, non so se puoi usarlo in Excel.

Ultimo ma non meno importante, hai anche il provider OLE DB. Ancora uno di Microsoft (provider Microsoft OLE DB per Oracle ) e uno da Oracle (Provider Oracle per OLE DB ). Il provider Microsoft esiste solo per 32 bit ed è stato deprecato.