当我打开包含同事创建的SSIS包的解决方案时,我得到了这个尴尬的错误,它没有告诉我应该做些什么来修复它。
他打开指令,在打开解决方案之前手动从dtsx文件中的连接字符串中取出所有“变量”。我已经这样做了,现在当我尝试在设计器中查看包时,我只得到一个红色x和此消息的图像。
编辑:您无法看到任何设计元素,顶部没有标签可切换到错误或数据流。屏幕上只有一个带有红色x的灰色中心区域,消息就像VisualStudio在读取dtsx文件的过程中死掉一样。
答案 0 :(得分:3)
这个问题相当不明确,所以当然很难在这里走上正轨。所有给出的答案都集中在不同的问题上。我会说PeterX有最好的猜测。出错的原因可能与修改后的数据源一样简单。
在向需要由现有SSIS包处理的表中添加新列时,我经常遇到错误“错误输出没有相应的输出”。此错误附带一条错误消息,指出“值不在预期范围内”。
新添加的列需要由现有SSIS包处理。预期的行为是SSIS将识别出有一个新列,并在要处理的OLEDB源任务SSIS的列页面上选择此列。但是,在修改表格后第一次打开OLEDB源任务时,我收到以下错误消息的两倍:“值不在预期范围内。”打开编辑器和打开编辑器的“列”页面时出现错误消息。在OLEDB源任务的高级编辑器中,新列显示在OLEDB源输出列树中,但不显示在OLEDB源错误输出列树中。这是错误消息的实际根本问题。不幸的是,似乎无法手动添加缺失的列。
要解决此问题,请删除并重新添加普通编辑器的列页面上新添加的列,如Jeff所述。
值得一提的是,OLEDB Source任务的数据源是修改后的MDS View。 Microsoft CRM Dynamics - 如相关主题中所述 - 也在使用视图。这导致我得出结论,在修改数据类型或添加/删除列时,使用视图作为数据源可能会产生上述错误之一。
所描述的解决方法是指使用Mircorsoft.NET Framework 3.5 SP1的Visual Studio 2008版本9.0.30729.4462 QFE。该数据库是SQL Server 2008 R2(SP2)。
答案 1 :(得分:2)
我必须在我的数据流中删除并重新创建OLE DB数据源 - 这是我收到错误的地方。我还注意到我必须在下拉列表中“重新选择”“OLE DB连接管理器”以强制它识别新连接。
这可能是从TFS获取解决方案的组合(我注意到数据源没有正确接入并且抱怨缺少连接GUID)和/或从另一个包中复制和粘贴元素。
(对于BIDS 2008)。
答案 2 :(得分:1)
如果有人使用EncryptAllWithUserKey作为ProtectionLevel,则会收到类似的消息。但是,我相信这个消息略有不同(即使你得到一个带有红色X的灰色设计表面)。
您是否尝试在记事本中查看该文件?它只是一系列GUID还是其中有任何人类可读的内容?如果它没有任何可读代码,那么它可能是用用户密钥加密的。
如果员工将软件包部署到服务器并使用SQL Server作为部署目标(而不是文件系统或SSIS Pacakge Store),那么您可以将软件包下载到您的计算机。只需连接到SQL Server Integration Services引擎,展开“存储的包”,展开“MSDB”,展开相关文件夹,右键单击该包,然后单击“导出包”。将文件保存在本地计算机上并打开它。该软件包可能会丢失注释和漂亮的格式,但除此之外它应该与员工部署的内容相同。
答案 3 :(得分:1)
我刚刚遇到同样的问题。在稍微喋喋不休之后,我发现解决方案是编辑解决方案配置。
解决方案配置似乎具有匹配的项目配置,如下所示:
但是,单击该项目的下拉箭头(此示例中为SSIS-Advance)显示该项目没有名为Production - Sub Reports的项目配置。我不确定是怎么发生的 - 这个解决方案有7年的历史和许多开发人员。
无论如何,一旦我创建了一个新项目配置(使用相同的下拉菜单),现在都很开心。
答案 4 :(得分:1)
在向数据库添加新列后,我的OLE DB Source组件出现了这个问题,并且不允许我选择列或其他任何内容来添加新列。
我正在使用Oracle数据库,我可以让它更新的唯一方法是将SQL查询更改为select 1 from dual
,然后进行预览。然后将其还原为我的旧查询。
答案 5 :(得分:1)
如果它有Oracle数据源,您可能需要通过Attunity安装Microsoft Connectors v4.0 for Oracle: https://www.microsoft.com/en-us/download/details.aspx?id=52950
我还必须使用VS 2015--最初用于创建项目和包的版本。
我遇到了这个问题,安装这些连接器并使用VS 2015解决了这个问题。
答案 6 :(得分:0)
当我尝试使用带有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< 3
答案 7 :(得分:0)
当我不遵循参数命名约定时,例如不是以正确的顺序为OLE DB连接命名参数0,1,2,...。 详细信息记录在here中。
答案 8 :(得分:0)
在使用32位部署向导而不是64位部署向导时,我在部署过程中遇到此错误。
从SSMS部署时,默认情况下会启动32位向导(任何人都知道如何更改此设置吗?)您可以从命令行运行64位向导:
%ProgramFiles%\ Microsoft SQL Server \ 130 \ DTS \ Binn \ isdeploymentwizard.exe
答案 9 :(得分:0)
帮助我打开 SSIS 包(之前我打开它时出现上述错误而失败)的原因是在项目选项目标服务器版本中发生了变化:
答案 10 :(得分:-1)
我在 SSIS 项目中添加现有连接管理器后遇到此问题。我只是将项目连接管理器从不同的项目 (.conmgr
) 导入到我的项目中。我解决这个问题的方法是:
.conmgr