当尝试使用SQL Server Management Studio导入和导出向导将数据从Oracle 11g数据库导入到我的SQL Server数据库时,在测试我与配置的Oracle数据源的连接时遇到错误。我在向导上选择了“ Oracle的.Net Framework数据提供程序”作为“数据源”。
下面是错误日志的粘贴,后面是屏幕截图:
操作无法完成。
试图加载Oracle客户端库时抛出BadImageFormatException。在安装了32位Oracle客户端组件的64位模式下运行时,将发生此问题。 (System.Data.OracleClient)
我的计算机上安装了64位版本的Oracle Instant Client 18.3,并且我的PATH
环境变量中包含了Instant Client的路径。
答案 0 :(得分:1)
事实证明,此错误是由于SQL Server Management Studio的64位版本的Oracle客户端存在问题所致。因此,解决方法是安装32位版本的Oracle Client,然后指向该安装
以下是我要解决的确切步骤:
我在计算机上安装了Oracle Instant Client 12.2(当前是Oracle Instant Client的最新32位版本)
然后我将此32位客户端的安装路径添加到PATH环境变量中。
我重新启动了SQL Server Management Studio
完成此操作并重新打开“导入和导出向导”后,就可以无缝连接到Oracle数据库,然后继续完成从Oracle数据库中的表到SQL Server数据库中的表的数据迁移。
我使用的连接字符串的格式如下:
Data Source=$ORACLE_DB_HOST:$PORT/$SERVICE_NAME;User Id=$USERNAME
答案 1 :(得分:0)
您可以使用“ C:\ ProgramData \ Microsoft \ Windows \开始菜单\ Programs \ Microsoft SQL Server 2016”中提供的SQL Server 2016导入和导出数据(64位),这与Oracle Client 64位完美配合。