【发布时间】:2014-04-28 15:04:19
【问题描述】:
我在尝试连接到 SSIS SQL Server 集成包中的 Oracle 数据库 11g 时遇到驱动程序问题。
在 SSIS 中,我使用 Native OLE DB\Microsoft OLE DB Provider for Oracle 创建了一个 OLE 数据库连接。当我测试连接时,结果是成功的,但是当我尝试从 OLE DB 源任务中引用此连接时遇到问题。
在 OLE DB 源任务中,我可以看到所有表,但是当我选择一个时,我收到以下错误:
Exception from HRESULT: 0xC02020E8
Error at Data Flow Task [OLE DB Source [1]]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft OLE DB Provider for Oracle" Hresult: 0x80004005 Description: "Unspecified error".
An OLE DB record is available. Source: "Microsoft OLE DB Provider for Oracle" Hresult: 0x80004005 Description: "Oracle error occurred, but error message could not be retrieved from Oracle.".
An OLE DB record is available. Source: "Microsoft OLE DB Provider for Oracle" Hresult: 0x80004005 Description: "Data type is not supported."
Error at Data Flow Task [OLE DB Source [1]]: Opening a rowset for ""MySchema"."MyTable"" failed. Check that the object exists in the database.
我没有看到任何可供选择的 Oracle OLE 驱动程序。我考虑从这里下载一个(ODAC101040.exe (174MB)):
http://www.oracle.com/technetwork/database/windows/utilsoft-088126.html
但下载量非常大,我的 PC 上已经安装了 2 个非常大的 Oracle 驱动程序。我不想下载更多我需要的驱动程序,因为它们的下载量很大,而且我的公司可能不希望我成为一个特立独行的下载者,但如果我知道我需要什么而不是反复尝试下载,它就会完成。
当我在 PC 上的 Startup->All Programs 下查看时,我看到以下菜单文件夹:
Oracle - OraClient11g_home1
Oracle - OraClient11g_home1_32but
我在我的 PC 上没有管理员权限,但我拥有提升的权限。当我在 32 位文件夹下运行网络配置助手时,我测试了连接,它工作正常。当我尝试运行 64 位版本时,什么也没有出现。
我的电脑上似乎只有 1 个 TNS 文件,
c:\windows\tnsnames.ora
此文件最初是手动编辑的。我怀疑它与我的 32 位驱动程序有关。我希望在这两个文件夹下找到我的 TNS 文件,但没有找到:
C:\Oracle\product\11203_32bit\CLIENT_1\NETWORK\ADMIN\
C:\Oracle\product\11203_62bit\CLIENT_1\NETWORK\ADMIN\
这是我尝试连接的 Oracle 数据库版本:
1 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
2 PL/SQL Release 11.2.0.3.0 - Production
3 CORE 11.2.0.3.0 Production
4 TNS for Linux: Version 11.2.0.3.0 - Production
5 NLSRTL Version 11.2.0.3.0 - Production
我应该安装什么驱动程序才能使我的 SSIS 包工作?我更喜欢下载兼容的(更新的?)MS OLE 驱动程序,但愿意安装其他驱动程序。
添加信息:
我的连接字符串:
Data Source=MyDb.MyCompany.COM;User ID=MyEffinId;Provider=MSDAORA.1;Persist Security Info=True;
【问题讨论】:
-
我以为我这样做了,也许我不清楚或者您不熟悉“拖放”SSIS 包:-):我创建了一个 OLE 源对象并将连接属性设置为工作的 Oracle 连接对象。单击表下拉列表并选择我想从中提取数据的表。当我这样做时,我得到了那个错误。
-
我添加了连接字符串,如果有帮助的话
标签: windows-7 ssis oracle11g driver