这是我在处理SSIS多维数据集后得到的错误消息
Errors in the back-end database access module. The size specified for a binding was too small, resulting in one or more column values being truncated.
但是,它没有说明哪个列绑定太小。
如何调试?
答案 0 :(得分:7)
此错误消息让我疯狂了好几个小时。我已经找到哪个列增加了它的长度并更新了源中的数据表,该数据表现在显示了正确的长度。但错误一直在突然出现。事实证明,该字段用于多维数据集的“维度用法”选项卡上的事实 - 维度链接。当您刷新源时,为该链接创建的绑定不会刷新。修复方法是删除(将关系类型更改为“无关系”)并重新创建该链接。
更新:由于该答案似乎仍然相关,我想我会添加一个屏幕截图,显示您可能遇到此问题的区域。如果由于某种原因您使用字符串进行Dimension-to-Fact链接,则可能会受到增加的大小的影响。并且上面描述了解决方案。这是Dimension Attribute上Key,Name和Value Columns问题的补充。
答案 1 :(得分:4)
ESC是正确的。从CodePlex安装BIDS Helper。右键单击Dimensions文件夹并运行Data Discrepancy Check。
Dimension Data Type Discrepancy Check
这解决了我的问题。
答案 2 :(得分:2)
Refresh
答案 3 :(得分:1)
备用修复#1 - SQL Server 2008 R2(2012年没有尝试过,但假设这样可行)。
替代修复#2
<DataSize>100</DataSize>
正如Esc所指出的,列大小更新可能会影响多维数据集本身的维度用法。你可以像Esc建议的那样做,也可以直接编辑* .cube文件 - 搜索更新的属性和相关的数据大小元素:<DataSize>100</DataSize>
当列大小发生变化时,我尝试了两种修复方式,它们都有效。
答案 4 :(得分:0)
在我的特定情况下,问题是因为我的查询是从Oracle读取的,而硬编码列有一个尾随空格(我的错误)。
我删除了尾随空格,并且为了一个好的衡量标准,将硬编码值转换为CAST ('MasterSystem' as VarChar2(100)) as SOURCE
这解决了我的特殊问题。
答案 5 :(得分:0)
在我的情况下,问题是在实时服务器上的多维数据集上工作。 如果您正在处理多维数据集,则连接到服务器会弹出此错误消息。 但是当您作为保存在计算机上的解决方案处理多维数据集时,您不会收到错误消息。 因此,在本地处理多维数据集并在进行更改后进行部署。
答案 6 :(得分:0)
遇到同样的问题,Esc的答案也是一个解决方案。原因更加“隐藏”,更明显的解决方案“刷新”和“数据类型差异检查”对我的情况没有任何好处。
我找不到“调试”这个问题的正确方法。
答案 7 :(得分:0)
我遇到了这个问题。通过删除前导和尾随空格和函数 rtrim 和 ltrim 来确定问题。
答案 8 :(得分:0)
我遇到了同样的问题,刷新数据源无法正常工作。我有事实分区的物化参考维度,它给了我错误。在我的DEV环境中,我取消选中Materialise 并处理了没有错误的分区 奇怪的是,现在我可以为相同的关系启用Materialization,它仍然可以毫无问题地处理。
答案 9 :(得分:0)
首先尝试的简单方法 - 多年来我已多次发生这种情况。
正如其他人所提到的,带有尾随空格的数据也是原因。检查一下:SELECT col FROM tbl WHERE col LIKE '% '