在Windows 64位中运行带有ORACLE数据源问题的SSIS时出现问题

时间:2009-11-05 08:35:10

标签: sql-server-2005 ssis oracle10g

我设法将Windows 64位服务器中的SQL Server 2005与ORACLE数据库连接起来。 (感谢Jeyong Park先生:http://knol.google.com/k/jeyong-park/accessing-oracle-data-source-from-64bit/3vywlm4f31xae/12

问题是: 在SSIS中,当我使用Oracle作为OLE DB数据源并预览数据时,它运行,但是,当我运行包时,OLE DB数据源任务失败并显示消息:

[OLE DB源[10882]]错误:SSIS错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。
对连接管理器“PROD_cm”的AcquireConnection方法调用失败,错误代码为0xC0202009 在此之前可能会发布错误消息,其中包含有关AcquireConnection方法调用失败原因的更多信息。

由于我可以预览数据,我认为连接没有问题。

请帮忙......

4 个答案:

答案 0 :(得分:0)

一年前,当我在Windows Server 2003 64位上使用SQL Server 2008遇到此问题时,问题是由错误的驱动程序引起的。您要连接的Oracle数据库的版本是什么?如果要连接到8g或9i Oracle服务器,则需要使用9i Oracle驱动程序。如果要连接到10g或更好的服务器,则可以使用11i驱动程序。

您是否尝试在作为SQL Server代理服务帐户登录服务器时运行SSIS包,或者您是否仅在工作站上对此进行了测试?如果它在您的工作站上工作,并且在作为服务帐户登录服务器时不起作用,则会向我发出驱动器问题。

答案 1 :(得分:0)

另一个可能的问题是您可能无法正确设置tnsnames.ora文件。文件内容应类似于9.2驱动程序的以下代码。请注意,您需要替换,并使用适当的值。

# tnsnames.ora Network Configuration File: C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.


<SERVER_NAME> =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = <IP_ADDRESS>)(PORT = <PORT_NUMBER>))
    )
    (CONNECT_DATA =
      (SID = <SERVER_NAME>
      (SERVER = DEDICATED)
    )
  )

答案 2 :(得分:0)

另一种可能的解决方案。如果您可以使链接服务器连接正常工作,并且由于某种原因无法使数据流正常工作,那么您可以执行链接服务器查询以下拉数据。我记得这样做了大约6个月,当时我们无法让MYSQL驱动程序与SQL Server 2008的CTP一起工作。最终我们找到了正确的解决方案,但这有助于我们在短期内启动并运行。

答案 3 :(得分:0)

以下其中一项应该有效:

  1. 检查tnsnames.ora文件 - 它应该具有您尝试通过包连接的Oracle DB hat的连接详细信息。

  2. 检查您尝试连接的Oracle数据库是否正常工作。我浪费了大约两天找到错误的根本原因,后来才知道Oracle DB已关闭。

  3. 检查配置管理器/连接字符串中的passowrds是否完整。

  4. 如果您已经在包裹上长时间工作,请尝试关闭并再次打开它。