[英]Connecting to Oracle Database through Excel
我正在尝试从Excel工作表连接到服务器上的Oracle数据库,但无法理解原因。
我目前在不同的ORACLE_HOME
安装了 32位和64位Oracle 12c,并且在我的64位计算机上安装了32位Excel。
我正在尝试使用“ 新建查询”向导连接到Excel中的Oracle数据库。
当我单击来自Oracle数据库时 ,出现以下错误/消息。
我可以继续使用当前的提供程序,但是当我实际上尝试连接到数据库时,我得到了:
我不明白的是为什么在计算机上同时安装32位和64位版本的Oracle 12c时出现此错误。 两者都包含在我的PATH
变量中(第一个32位),并且我还包括一个特定的ORACLE_HOME
和TNS_ADMIN
来指向我的32位安装,因为我的Excel是32位。
我真的很希望能够通过Excel从数据库查询,但是这个问题使我感到困惑。
编辑
我还刚刚将Oracle主目录中的ODBC驱动程序添加到ODBC数据源管理员工具中。
目前可以通过此工具进行连接。
但是,当我尝试通过ODBC连接向导进行连接时 ,我知道得到以下信息:
有任何想法吗?
您如何安装32位和64位Oracle Client?
请查看以下指令: BadImageFormatException。 在安装了32位Oracle客户端组件的64位模式下运行时,会发生这种情况
您的excel是32位的,您尝试使用32位的Oracle。 我假设您启动64位版本的“ ODBC管理器”-可能不匹配。 或者您的PATH
关于%ORACLE_HOME%
和/或%ORACLE_HOME%\\bin
文件夹的问题
您的Excel是32位的,因此通常您将32位的客户端放入PATH
进行了正确的选择,对于ORACLE_HOME
,您不能在一个进程中混合使用32位和64位程序集。 顺便说一句,当您按照上面的说明进行操作时,Windows将自动对其进行管理。
我假设您安装了Oracle Instant Client。 默认的Instant Client不包含任何ODBC驱动程序或Oracle Data Provider(ODP.NET, Oracle.DataAccess.Client
)
您可能有2个ODBC驱动程序,一个来自Oracle,通常称为OraClient12_home1中的Oracle ,另一个来自Microsoft,称为Microsoft ODBC for Oracle (应在Windows的默认安装中安装,但它也需要一个Oracle Client)。
Oracle的ODBC驱动程序适用于32位和64位,而Microsoft驱动程序仅适用于32位。 您有2位ODBC管理员:32位(运行c:\\Windows\\SysWOW64\\odbcad32.exe
)和64位(运行c:\\Windows\\System32\\odbcad32.exe
)。 在那里,您应该看到已安装的32位驱动程序。 64位。
对于数据提供者,您有类似的情况。 您有一个来自Microsoft( 针对Oracle的Microsoft .NET Framework数据提供程序 , System.Data.OracleClient
)和来自Oracle( 针对.NET的Oracle数据提供程序 , Oracle.DataAccess.Client
,多个版本)。 两者均适用于32位和64位。
原则上,使用哪种驱动程序/提供程序连接到Oracle都没有关系-只是架构(即32位和64位)必须匹配。 每个驱动程序/提供程序都需要根据Oracle Client安装。 Microsoft的所有驱动程序/提供程序已被弃用,您应该首选Oracle驱动程序/驱动程序(如警告消息中所述)
Oracle还提供了ODP.NET托管驱动程序 ,它不需要任何其他Oracle Client安装,并且可以在32位和64位上运行。 但是,我不知道您是否可以在Excel中使用它。
最后但并非最不重要的一点,您还具有OLE DB提供程序。 再次来自Microsoft( 针对Oracle的Microsoft OLE DB提供程序 )和来自Oracle( 针对OLE DB的Oracle提供程序 )。 Microsoft提供程序仅适用于32位,并且已弃用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.