【问题标题】:Oracle ODBC connection failure (using oracle's stock ODBC drivers)Oracle ODBC 连接失败(使用 oracle 的库存 ODBC 驱动程序)
【发布时间】:2019-08-04 13:31:46
【问题描述】:

想要在 Visual Studio 2017/SSIS 中使用 Oracle-ODBC 连接,因为它在测试期间比 OLE DB 快得多。

问题:

我完全按照 Oracle 的步骤进行操作。

安装即时客户端(v18,也尝试过 v12)。

在同一个库中下载/提取 ODBC 下载。运行 odbc_install.exe。

请参阅 Windows 10 中“ODBC 数据源/管理员”中的驱动程序。

添加新的用户数据源。 TNS 服务名称拉起来很好。测试 连接(用户/通行证)——有效!!连接有效!!

我在 Oracle 中使用 64 位、他们的即时客户端 v18.3 或 12.2 都试过这个。所有工作都通过测试连接在 Window 的“Oracle Source Administrator”中运行。

我也尝试过 32 位下载。一切都很好。

现在,打开 Visual Studio。首先尝试 64 位(我的 Windows 操作系统是 64 位,但 Visual Studio Data Tools 只有 32 位)。预感到它不会起作用。

错误信息“系统架构和客户端不一样”之类的。明白了。

尝试了 32 位 Oracle ODBC 驱动程序(用户源)。我不断收到相同的消息(尝试了 18_3 和 12_2 版本)。

现在 .... SQLORA32.dll 位于它命名的文件路径中。它就在那里!为什么找不到? ODBC Source Admin 中的测试连接有效!这是怎么回事?

我不确定我是否必须通过命令行“注册”某些东西,我之前必须这样做一次,也许这是一个不相关的问题。

启动时,当我尝试使用第 3 方“Devart Oracle ODBC 连接器”时——它是一个简单的 5 秒安装向导,可以立即完美运行。问题是这是一个 30 天的试用期,至少要花费 150 美元。我怎样才能让 Oracle 创建的 ODBC 连接器(Oracle 因 janky-azz 产品而享誉全球)实际工作?

Devart,可能还有 Attunity Oracle ODBC:5 秒安装

Oracle 自己的:安装比闯入 Fort Knox/学习普通话更难。请指教。

【问题讨论】:

  • 首先我建议完全删除 Oracle 安装,请参阅 stackoverflow.com/questions/8450726/… 然后,如果您想同时使用 32 位版本和 64 位版本的 Oracle,请按照以下说明操作:@987654323 @
  • 我想我在 2015 年从一些随机的丹麦人那里找到了一个不起眼的开源软件,他(在许多其他 Oracle 数据库博主中)感叹当前的 Oracle ODBC 市场是废话。 Oracle 自己的 ODBC 驱动程序是伪劣热垃圾;而商业的则很荒谬(有些要花费数千美元)。给任何阅读本文的人的专业提示。免费试用 EDO 进行开源。如果你能以每盒 150 美元的价格出售,也许是德瓦特。否则坚持使用缓慢的 OLE Db 连接。或者对着你的麦片哭泣。这些是您的选择。
  • 从头开始;虽然 EDO 实际上是在 Visual Studio 中连接的(比 Oracle 的还多)——它实际上并不能很好地处理 SQL 查询。哎呀。更多热垃圾。看起来我可能会卸下 150 美元。也许吧。

标签: oracle ssis odbc


【解决方案1】:

我正在回答我自己的问题。

不幸的是,我们中的一些 ETL/BI 人员需要在问题上走得太远,以至于没有时间弄清楚 Oracle 的每一个小细节/故障......无论他们现在在做什么。

但这里有一个修复。在 Visual Studio 2017/Data Tools/SSIS IDE .... 如果您想要一个 Oracle ODBC 连接(由于某种原因比 OLE Db 快)---当您设置它时,而不是选择一个命名的“用户或您在 ODBC 源管理器中创建的系统数据源”,只需使用“构建器”选项(在使用连接字符串的左侧)作为连接字符串。它执行与 ODBC Source Admin 完全相同的步骤,但在 Visual Studio 中。我不知道这里有什么区别,但是一些巫术///谁知道有什么不同,并且不知何故,突然,出于某种原因,这种联系起作用了。

【讨论】:

  • 库存 OLEDB 连接逐行运行。我不知道是谁决定以这种方式扼杀它,但无论如何它看起来很糟糕。
  • 我认为您还应该关闭有关此问题的旧问题(也在 dba 网站上)。做得好!! :)
  • 不幸的是,即使使用此解决方案仍然存在滞后问题。我的新建议:忘记 ODBC。我最初认为它更快——但事实证明——OLEDB 或 ADO.Net 连接的 Oracle 字符串中的默认 FetchSize 参数需要通过连接字符串增加。完成后,它的速度非常快,甚至比数千美元的 ODBC 连接器还要快,而且是免费的。忘记 ODBC 是我的建议。
  • @user45867 您的最后评论很有帮助,请更新您的答案并提及这一点,并添加一个示例,说明如何通过连接字符串增加连接需求。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-11
相关资源
最近更新 更多