Oracle ODBC连接失败(使用Oracle的常用ODBC驱动程序)

Oracle ODBC连接失败(使用Oracle的常用ODBC驱动程序),oracle,ssis,odbc,Oracle,Ssis,Odbc,希望在Visual Studio 2017/SSIS中使用Oracle ODBC连接,因为它在测试期间比OLE DB快得多 问题: 我不折不扣地遵循甲骨文的步骤 安装即时客户端(v18,也尝试了v12) 在同一库中下载/提取ODBC下载。运行odbc_install.exe 请参阅Windows 10中“ODBC数据源/管理”中的驱动程序 添加新的用户数据源。TNS服务公司的名字很好。试验 连接(用户/通行证)--它可以工作!!连接正常 我在Oracle的64位即时客户端v18.3或12.2中尝

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

问题:

我不折不扣地遵循甲骨文的步骤

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

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

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

添加新的用户数据源。TNS服务公司的名字很好。试验 连接(用户/通行证)--它可以工作!!连接正常

我在Oracle的64位即时客户端v18.3或12.2中尝试了这一点。所有都通过测试连接在Windows的“Oracle Source Administrator”中工作

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

现在,打开VisualStudio。首先尝试64位(我的Windows操作系统是64位的,但Visual Studio数据工具只有32位)。我有预感这行不通

错误消息“系统架构和客户端不相同”或类似信息。明白了

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

现在。。。。SQLORA32.dll位于其命名的文件路径中。就在那里!为什么找不到呢?ODBC源代码管理中的测试连接工作正常!这是怎么回事

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

为了启动,当我尝试第三方“Devart Oracle ODBC连接器”时,它是一个简单的5秒钟安装向导,可以立即完美地工作。问题是这是一个30天的试用期,费用至少为150美元。我如何才能让Oracle创建的ODBC连接器(Oracle因janky azz产品而闻名世界)真正工作

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


甲骨文自己的:比闯入诺克斯堡/学习普通话更难安装。请告知。

我在回答我自己的问题

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


但这里有一个解决办法。在Visual Studio 2017/Data Tools/SSIS IDE中。。。。如果您想要Oracle ODBC连接(由于某些原因比OLE Db快)--在设置连接时,不要选择在ODBC source Administrator中创建的命名“用户或系统数据源”,只需对连接字符串使用“生成器”选项(在“使用连接字符串”左侧)。它执行与ODBC源代码管理完全相同的步骤,但在Visual Studio中。我不知道这里有什么不同,但是有一些巫术///谁知道有什么不同,而且由于某种原因,连接在某种程度上突然起了作用。

首先我建议完全删除Oracle安装,然后,如果您想同时使用32位版本和64位版本的Oracle,遵循以下说明:我想我从一些随机的丹麦人那里找到了2015年的一个晦涩的开源项目,他(在许多其他Oracle数据库博客中)哀叹当前Oracle ODBC市场是垃圾市场。Oracle自己的ODBC驱动程序都是劣质的垃圾;而商业上的那些是荒谬的(有些花费数千美元)。任何阅读本文的人都可以得到专业提示。请尝试免费开源的EDO。如果你能拿出每盒150美元,也许可以贬值。否则,请坚持使用缓慢的OLE Db连接。或者对着你的麦片哭。这些是你的选择;虽然EDO实际上是在VisualStudio中连接的(比Oracle的要多)——但实际上它在SQL查询中的作用并不太好。哎呀。更多的热垃圾。看起来我可能要付150美元。可能吧。股票OLEDB连接按行运行。我不知道是谁决定用这种方式来限制它,但无论如何它看起来都是糟糕透顶的。我认为你也应该结束关于这个问题的老问题(也在dba网站上)。干得好!!:)不幸的是,即使采用这种解决方案,仍然存在滞后问题。我的新建议是:忘记ODBC。我最初认为它更快——但结果是——Oracle字符串中OLEDB或ADO.Net connectoin的默认FetchSize参数需要通过连接字符串增加。一旦完成,它的速度非常快,甚至比几千美元的ODBC连接器还要快,而且是免费的。忘记ODBC是我的建议。@user45867您的最后一条评论非常有用,请更新您的答案并提及,并添加一个示例,说明如何通过连接字符串增加连接需求。