【问题标题】:How to fix SSIS : "Value, does not fall within expected range"?如何修复 SSIS:“值,不在预期范围内”?
【发布时间】:2010-12-02 08:39:27
【问题描述】:

当我打开包含同事创建的 SSIS 包的解决方案时,我收到了这个尴尬的错误,它没有告诉我应该做什么来修复它。

在打开解决方案之前,他留下了手动从 dtsx 文件中的连接字符串中取出所有“变量”的说明。我已经这样做了,现在当尝试在设计器中查看包时,我只得到一个红色 x 的图像和这条消息。

编辑:您看不到任何设计元素,顶部没有选项卡可以切换到错误或数据流。只是屏幕上的灰色中心区域带有一个红色的 x,并且消息,它就像 VisualStudio 在读取 dtsx 文件的过程中死亡。

【问题讨论】:

  • 您能否提供更多信息。什么组件类型显示红色 x?数据源?数据转换?目的地?数据流中还列出了哪些其他组件以及按什么顺序列出?
  • 它甚至没有走那么远,它只是用软管冲洗,设计表面的灰色区域带有这个 x 和消息,我几乎认为这是它应该做的,然后我从头开始创建了一个新项目,我的新东西可以工作,但我们的其他开发人员所做的没有加载。

标签: ssis


【解决方案1】:

这个问题相当不具体,所以在这里当然很难走上正轨。所有给出的答案都关注不同的问题。我会说 PeterX 有最好的猜测。错误的原因可能很简单,就像修改了数据源一样。

在向需要由现有 SSIS 包处理的表添加新列时,我经常遇到一个错误“错误输出没有相应的输出”。此错误伴随着一条错误消息出现,指出“值不在预期范围内”。

新添加的列需要由现有 SSIS 包处理。预期的行为是 SSIS 将识别出有一个新列,并在要处理的 OLEDB 源任务 SSIS 的列页面上选择此列。但是,在修改表后第一次打开 OLEDB 源任务时,我收到了两次以下错误消息:“值不在预期范围内。”打开编辑器和打开编辑器的“列”页面时出现错误消息。在 OLEDB 源任务的高级编辑器中,新列显示在 OLEDB 源输出列树中,但不在 OLEDB 源错误输出列树中。这是错误消息的实际潜在问题。不幸的是,似乎没有办法手动添加缺失的列。

如Jeff所说,为了解决这个问题,在普通编辑器的Columns Page上删除并重新添加新添加的列。

值得一提的是OLEDB Source任务的数据源是修改后的MDS View。 Microsoft CRM Dynamics(如相关线程中所述)也在使用视图。这使我得出结论,在修改数据类型或添加/删除列时,使用视图作为数据源可能会产生上述任何一种错误。

相关话题:Error" ...The OLE DB Source.Outputs[OLE DB Source Output].Columns[XXXXXXXX] on the non-error output has no corresponding output

所描述的解决方法是指带有 Mircorsoft.NET Framework 3.5 SP1 的 Visual Studio 2008 版本 9.0.30729.4462 QFE。数据库是 SQL Server 2008 R2 (SP2)。

【讨论】:

  • 我在 SQL 命令源中添加新列时遇到了同样的错误。我在设计 gui 中得到了 Value does not fal 错误作为警告和非错误输出错误。您建议取消选中列选择器中的列,然后选择它为我清除了它,tks。
【解决方案2】:

我必须在我的数据流中删除并重新创建 OLE DB 数据源 - 这是我得到错误的地方。我还注意到我必须在下拉列表中“重新选择”“OLE DB 连接管理器”以强制它识别新连接。

这可能是从 TFS 获取解决方案(我注意到数据源没有正确遇到并且它抱怨缺少连接 GUID)和/或从另一个包中复制和粘贴元素的组合。

(对于 2008 年投标)。

【讨论】:

    【解决方案3】:

    在将新列添加到数据库后,我的 OLE DB 源组件使用 SQL 命令遇到了这个问题,它不允许我选择列或其他任何内容来添加新列。

    我正在使用 Oracle 数据库,我可以对其进行更新的唯一方法是将 SQL 查询更改为 select 1 from dual,然后进行预览。然后将其恢复为我的旧查询。

    【讨论】:

    • 这在连接到 SQL Server 2012 的 SSIS 中为我​​修复了它。完全相同的情况:我向 SQL 添加了新列,但随后无法预览或单击“确定”。我把查询改成select 'hello' as test,然后预览,把我的SQL放回去,问题就解决了。
    【解决方案4】:

    如果有人使用 EncryptAllWithUserKey 作为 ProtectionLevel,您会收到类似的消息。但是,我相信信息略有不同(即使您得到带有红色 X 的灰色设计表面)。

    您是否尝试过在记事本中查看文件?它只是一系列 GUID 还是其中有任何人类可读的内容?如果它没有任何可读代码,那么它可能被用户密钥加密。

    如果员工将包部署到服务器并使用 SQL Server 作为部署目标(不是文件系统或 SSIS Pacakge 存储),那么您可以将包下载到您的计算机。只需连接到 SQL Server Integration Services 引擎,展开 Stored Packages,展开 MSDB,展开相关文件夹,右键单击包,然后单击导出包。将文件保存在本地计算机上并打开它。该包可能会丢失注释和漂亮的格式,但否则它应该与员工部署的相同。

    【讨论】:

      【解决方案5】:

      我刚刚遇到了同样的问题。折腾了一会儿,我发现解决方案是编辑解决方案配置。

      解决方案配置似乎具有匹配的项目配置,如下所示:

      但是,单击该项目的下拉箭头(本示例中为 SSIS-Advance)显示该项目没有名为“生产 - 子报告”的项目配置。我不确定这是怎么产生的 - 这个解决方案已有 7 年的历史,并且有很多开发人员。

      无论如何,一旦我创建了一个新项目配置(使用相同的下拉菜单),现在一切都很开心。

      【讨论】:

        【解决方案6】:

        如果它有 Oracle 数据源,您可能需要安装 Attunity 的 Microsoft Connectors v4.0 for Oracle: https://www.microsoft.com/en-us/download/details.aspx?id=52950

        我还必须使用 VS 2015 - 最初用于创建项目和包的版本。

        我遇到了这个确切的问题,安装这些连接器并使用 VS 2015 解决了这个问题。

        【讨论】:

          【解决方案7】:

          当我尝试使用 OLE DB 调用带有 OUTPUT 参数的存储过程时,我也遇到了这种情况。

          我发现了这个:http://sqlsolutions.blogspot.com/2013/04/ssis-value-does-not-fall-within.html,它解决了我的问题。相关操作是将 SSIS 参数映射重命名为“0”、“1”等。

          因此,例如,当调用dbo.StoredProc @variable0 = ?, @variable1 = ? OUTPUT, @variable2 = ?; 时,在参数映射对话框中,您可以将参数命名为“0”、“1”、2”以对应这些参数。啊,SSIS

          【讨论】:

            【解决方案8】:

            当我不遵循参数命名约定时,我会得到这个,例如不以正确的顺序命名参数 0,1,2,... 用于 OLE DB 连接。 详细信息记录在here

            【讨论】:

              【解决方案9】:

              是什么帮助我打开了一个 SSIS 包(之前在打开它时出现上述错误而失败),是在项目选项中更改目标服务器版本:

              • 从 SQL Server 2019 更改为 SQL Server 2017。
              • 使用 Visual Studio 2017。

              【讨论】:

                【解决方案10】:

                在 SSIS 项目中添加现有连接管理器后,我遇到了这个问题。我只是将另一个项目 (.conmgr) 中的项目连接管理器导入到我的项目中。我的解决方案是:

                • 删除导入的.conmgr
                • 从头开始重新创建它

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2011-08-09
                  • 2015-02-21
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多