ssis 找不到任何具有 odbc 连接的表

Posted

技术标签:

【中文标题】ssis 找不到任何具有 odbc 连接的表【英文标题】:ssis cannot find any tables with odbc connection 【发布时间】:2019-05-02 20:19:32 【问题描述】:

我正在尝试将 ETL 数据从我的 ServiceNow 实例中提取到 SQL Server 数据库中。我正在通过 ServiceNow ODBC 驱动程序提取数据,并且我使用 SSIS 作为我的 ETL 工具。我的数据流任务中的 ODBC 源出现问题。

在 SSIS 中,我创建了一个到我的 ODBC 驱动程序 DSN 的 ODBC 连接,并且连接测试成功。然后,我将一个 ODBC 源添加到我的数据流任务中。源正在使用给定的 ODBC 连接。当我选择数据访问模式 = 表名时,没有表名出现。因此,我将数据访问模式更改为 SQL 命令,并输入某个 SQL 查询(在 change_request 表上)。当我单击 Parse Query 按钮时,SSIS / Visual Studio 会抛出以下错误:

状态:“42S02”。本机错误代码:10129。[DataDirect][ODBC OpenAccess SDK 驱动程序][OpenAccess SDK SQL 引擎]基表:找不到更改请求。[10129]

是什么导致这在 Visual Studio 中失败?

作为参考,我将 64 位版本的 ODBC 驱动程序安装为系统 DSN。此外,该查询在 ODBC 驱动程序安装随附的 iSQL 实用程序中成功执行。 (因此,查询是“正确的”。)而且,我还能够通过其他工具(例如 Qlik Sense、Power BI)中的 ODBC 驱动程序成功连接到表。因此,问题是特定于 Visual Studio 的。也许我在 Visual Studio 中做错了什么。

我还在 ADO NET 源中尝试了 ADO.NET 连接(使用 ODBC 数据提供程序),但遇到了同样的问题。

【问题讨论】:

您是否尝试将 DSN 添加到 32 位 DSN? 【参考方案1】:

我认为这是一个 32 位/64 位问题,因为 Visual Studio 仅在 32 位模式下运行。所以需要安装32位的ODBC驱动重新测试。

Visual Studio 64 bit?

【讨论】:

经过进一步研究,我发现我同时安装了 32 位和 64 位驱动程序。不幸的是,他们都有相同的名字。我正在尝试确定当前哪个是哪个。 @skyline01 检查以下链接serverfault.com/questions/405742/… 我决定通过在 32 位 odbcad32.exe 文件(不在 x86 文件夹中)中创建一个新的用户 DSN 来回避这个问题。配置此 DSN 时,我只看到 1 个服务名称。所以,我不知道是32位服务还是64位服务。我用新用户 DSN 创建了一个新的 SSIS 包,但我仍然遇到同样的问题。因此,为了排除该服务不是 64 位服务,我将卸载这两个驱动程序并仅重新安装 32 位驱动程序。不过,我需要管理员权限,这需要几天时间才能获得。 我刚刚获得了我机器的管理员权限。所以,我卸载了这两个驱动程序并重新安装了 32 位驱动程序。我现在可以在我的 ODBC 源中看到表。因此,64 位驱动程序是问题的原因。

以上是关于ssis 找不到任何具有 odbc 连接的表的主要内容,如果未能解决你的问题,请参考以下文章

linux中mysql表名默认区分大小写导致表找不到的问题

找不到 ODBC 驱动程序管理器 .. 用 Ja​​va 连接 MSAccess?

PDO 找不到 ODBC 驱动程序

zabbix odbc连接oracle报错libsqora.so.XX.1找不到的解决办法

项目部署操作linux数据库mysql出现表找不到

Mac OSX 的 JDBC ODBC 桥接器