【问题标题】:SQL Server Management Studio Import Data from Oracle BadImageFormatExceptionSQL Server Management Studio 从 Oracle BadImageFormatException 导入数据
【发布时间】:2019-04-05 15:44:45
【问题描述】:
在尝试使用 SQL Server Management Studio 导入和导出向导将数据从 Oracle 11g 数据库导入我的 SQL Server 数据库时,我在测试与配置的 Oracle 数据源的连接时遇到了错误。我在向导中选择了“.Net Framework Data Provider for Oracle”作为“数据源”。
下面是错误日志的粘贴和屏幕截图:
操作无法完成。
尝试加载 Oracle 客户端库会引发 BadImageFormatException。在安装了 32 位 Oracle 客户端组件的 64 位模式下运行时会出现此问题。 (System.Data.OracleClient)
我的计算机上安装了 Oracle Instant Client 18.3,64 位版本,并且我在 PATH 环境变量中包含了 Instant Client 的路径。
【问题讨论】:
标签:
sql-server
oracle11g
ssms
【解决方案1】:
事实证明,此错误是由于 SQL Server Management Studio 与 64 位版本的 Oracle 客户端存在问题所致。因此,解决方法是安装 32 位版本的 Oracle 客户端并指向该安装
以下是我解决错误所遵循的具体步骤:
我在我的计算机上安装了 Oracle Instant Client 12.2(目前是最新的 32 位版本的 Oracle Instant Client)
然后我将这个 32 位客户端的安装路径添加到我的 PATH 环境变量中。
我重新启动了 SQL Server Management Studio
完成此操作并重新打开导入和导出向导后,我就能够无缝连接到我的 Oracle 数据库,并继续完成将数据从 Oracle 数据库中的表迁移到我的 SQL Server 数据库中的表.
我使用的连接字符串格式如下:
Data Source=$ORACLE_DB_HOST:$PORT/$SERVICE_NAME;User Id=$USERNAME
【解决方案2】:
您可以使用“C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft SQL Server 2016”中提供的 SQL Server 2016 导入和导出数据(64 位),这与 Oracle 客户端 64 位完美配合。