我在尝试连接到SSIS SQL Server集成包中的Oracle Database 11g时遇到驱动程序问题。
在SSIS中,我使用Native OLE DB \ Microsoft OLE DB Provider for Oracle创建了一个OLE数据库连接。当我测试连接时,结果是成功的,但是当我尝试从OLE DB Source任务引用此Connection时,我遇到了问题。
在OLE DB Source任务中,我能够看到所有表,但是当我选择一个表时,我收到以下错误:
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驱动程序。我讨厌下载更多我需要的驱动程序,因为它们下载量很大,而我的公司可能宁愿我不是一个特立独行的下载程序,但如果我知道我需要什么而不是试用和下载错误,那么它就会出现问题。完成。
当我在启动时看到我的电脑 - >所有程序时,我看到以下菜单文件夹:
Oracle - OraClient11g_home1
Oracle - OraClient11g_home1_32but
我的PC上没有管理员权限,但我确实拥有更高的权限。当我在32位文件夹下运行Net Configuration Assistant时,我测试连接,它工作正常。当我尝试运行64位版本时,什么都没有出现。
我的PC上似乎只有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;
答案 0 :(得分:0)
我更喜欢Attunity然后是Oracle,然后是Microsoft驱动程序。 Attunity需要SQL Server企业版。
我倾向于只安装32位版本并强制软件包以32位模式运行,以避免浪费时间在setup,config&修补每个开发人员机器和服务器,并避免版本之间的模糊问题。
Microsoft驱动程序似乎是调用Oracle存储过程和传递参数的最佳驱动程序。