【问题标题】:How to fix the error can not obtain the schema rowset DBSCHEMA_TABLES_INFO?如何修复无法获取架构行集 DBSCHEMA_TABLES_INFO 的错误?
【发布时间】:2013-02-18 09:05:51
【问题描述】:

我正在尝试纠正 SSIS 作业中的一些错误。错误数是 12,我知道我到了 5

我收到以下错误消息,它是法语

[OLE DB 源 [1]] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80040E14。 OLE DB 记录可用。来源:"Microsoft SQL Server Native Client 10.0" Hresult:0x80040E14 描述:"Impossible d'obtenir l'ensemble de lignes du schéma "DBSCHEMA_TABLES_INFO" pour le Fournisseur OLE DB "SQLNCLI10" du serverur lié "serverur3"。Lefournisseur prend en charge l'interface, mais retourne un code d'erreur lorsqu'elle est utilisée."。 [SSIS.Pipeline] 错误:组件“OLE DB Source”(1) 预执行阶段失败并返回错误代码 0xC0202009

错误消息用英语翻译成以下内容。

[OLE DB 源 1] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80040E14。 OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 10.0”Hresult:0x80040E14 描述:“无法获取架构行集”DBSCHEMA_TABLES_INFO“用于 OLE DB 提供程序”SQLNCLI10“用于链接服务器”server3。 “提供者支持接口,但使用时返回失败码。”。 [SSIS.Pipeline] 错误:组件“OLE DB Source”(1) 未通过预执行阶段并返回错误代码 0xC0202009。

如何修复错误信息?

【问题讨论】:

  • 没有别的了吗?这有点模糊。
  • 我认为这不是全部信息。您需要向我们展示所有错误消息。如果您可以运行 SSIS 包并显示“输出”窗口中的所有文本。
  • 我们知道 1) 您连接到 Oracle 2) 连接失败 3) 可能还有其他可能相关的错误。按照其他人的要求,请提供所有的错误信息。如果您没有更多信息,请打开package logging 并捕获 OnError、OnTaskFailed、OnInformation、OnWarning、OnPre/PostValidate、OnPre/PostExecute。这超出了您的需要,但应该可以帮助我们诊断问题。
  • 知道 Oracle 参与其中并且这是一个连接错误,我会检查 a) 我是否安装了 正确 驱动程序 b) 是我的 tnsnames.ora 条目吗 c) 我是否需要在这台机器上创建任何 DSN d) 那些驱动程序是 32 位的,我是否在 64 位模式下运行这个包 e) 确实有 32/64 位 DSN 阻抗不匹配 f) 我是否在这个环境中使用了正确的帐户/密码 g) Oracle 服务器上是否有任何基于 IP 的过滤?
  • 仅供参考:这是 SQL Server 而不是 Oracle。我已经在关于我的问题的“OnError”部分发布了整个错误。我不知道还能提供什么...欢迎任何建议。谢谢。

标签: ssis oledb


【解决方案1】:

翻译错误信息:

您在评论中添加的错误消息是法语的。使用 Google 翻译,错误消息会翻译成以下内容:

[OLE DB 源 1] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80040E14。 OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 10.0”Hresult:0x80040E14 描述:“无法获取架构行集”DBSCHEMA_TABLES_INFO“用于 OLE DB 提供程序”SQLNCLI10“用于链接服务器”server3。 “提供者支持接口,但使用时返回失败码。”。 [SSIS.Pipeline] 错误:组件“OLE DB Source”(1) 未通过预执行阶段并返回错误代码 0xC0202009。

  • 该消息暗示您可能正在尝试使用 SQL Server Native Client 10.0 查询链接服务器。根据网络搜索,我猜测链接服务器指向SQL Server 2000

检查以下内容:

阅读下面的 Microsoft Connect 网站错误报告,了解如何解决您的问题。

Unable to query linked SQL Server 2000

网站引述:

这里的问题似乎是您的 SQL 2000 服务器上的 instcat 版本已过时。按照 KB 906954 (http://support.microsoft.com/kb/906954) 中的步骤应该可以解决这个问题。

其他链接:

可能有助于解决您的问题的其他链接:

Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider

Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI10" for linked server "XXXXXX"

链接建议在 master 数据库中创建以下存储过程并授予适当的用户帐户执行权限。

USE master;
GO

CREATE PROCEDURE sp_tables_info_rowset_64
        @table_name SYSNAME
    ,   @table_schema SYSNAME = NULL
    ,   @table_type nvarchar(255) = NULL
AS 
    DECLARE @Result INT 
    SET @Result = 0
    EXEC @Result = sp_tables_info_rowset @table_name, @table_schema, @table_type
GO


运行程序(只需要一次)

USE master
GRANT EXEC ON sp_tables_info_rowset_64 TO PUBLIC

创建数据源以从 SSIS 2008 R2 连接到 SQL Server 实例的步骤

以下是使用 Business Intelligence Development Studio (BIDS) 2008 R2 创建 Data Source 以连接到 SQL Server 实例的步骤。

在 BIDS 项目解决方案上,右键单击文件夹 Data Sources,然后单击 New Data Source...

在数据源向导上,单击新建...以创建新连接。

在“连接管理器”对话框中,执行以下步骤:

  • 根据您要连接的 SQL Server 版本选择适当的 Provider。您只会看到机器上安装的提供程序。
  • 对于 SQL Server 2000,选择 Microsoft OLE DB Provider for SQL Server
  • 对于 SQL Server 2005 - 2008 R2,选择 Native OLE DB\SQL Server Native Client 10.0
  • 对于 SQL Server 2012,选择 Native OLE DB\SQL Server Native Client 11.0

  • 输入服务器名称或实例名称,例如MachineName\InstanceName

  • 根据您希望如何连接到 SQL Server 实例,选择 Windows 身份验证或 SQL Server 身份验证。如果选择 SQL Server 身份验证,请输入有效的用户名和密码。

  • 单击测试连接以确保凭据有效。

  • 选择要连接的数据库。

  • 点击确定

单击数据源向导上的下一步。在最后一步,为数据源起一个正确的名称,例如 OLEDB_AdventureWorksOLEDB 表示连接类型,AdventureWorks 表示数据库名称。点击完成。

新创建的数据源 OLEDB_AdventureWorks 将显示在 SSIS 项目的 Data Sources 文件夹下。

要将数据源添加到包中,请右键单击显示在 SSIS 包底部的 Connection Manager 选项卡,然后单击 New Connection From Data Source...

选择数据源对话框将显示 SSIS 项目中所有可用的数据源。选择您要添加到包中的那些,然后单击“确定”。

新数据源将出现在包连接管理器上。您现在可以在包任务中使用连接管理器。

其他选项:

您也可以直接在包本身上创建连接管理器,而不是创建数据源。右键单击显示在 SSIS 包底部的 Connection Manager 选项卡,然后选择要创建的适当连接。此连接管理器仅对包可见,对 SSIS 项目解决方案中的其他包不可见。

忠告:

  • 阅读 FAQ,了解如何发布包含足够信息供他人回答的问题。

  • 不要在 cmets 中添加错误消息。阅读和理解信息非常困难。

  • 始终编辑您的问题以详细解释问题或添加更多信息。

  • 如果错误消息不是英文,请翻译它。

【讨论】:

  • 我再次尝试了这个解决方案,它终于奏效了。我在错误的服务器上创建了程序...再次感谢您
猜你喜欢
  • 1970-01-01
  • 2021-09-11
  • 1970-01-01
  • 1970-01-01
  • 2016-01-30
  • 2016-06-13
  • 2019-11-15
  • 2017-07-13
相关资源
最近更新 更多