这是我在处理 SSIS Cube 后收到的错误消息
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.
但是,它没有告诉我哪些列绑定太小。
我该如何调试?
这是我在处理 SSIS Cube 后收到的错误消息
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.
但是,它没有告诉我哪些列绑定太小。
我该如何调试?
这个错误信息已经让我发疯了好几个小时。我已经发现哪一列增加了它的长度并更新了源中的数据表,它现在显示了正确的长度。但错误只是不断弹出。事实证明,该字段用于多维数据集的“维度使用”选项卡上的事实到维度链接。并且当您刷新源时,为该链接创建的绑定不会刷新。解决方法是删除(将关系类型更改为“无关系”)并重新创建该链接。
更新:由于该答案似乎仍然相关,我想我会添加一个屏幕截图,显示您可能遇到此问题的区域。如果出于某种原因您将字符串用于 Dimension-to-Fact 链接,则它可能会受到大小增加的影响。解决方案如上所述。这是维度属性上的键、名称和值列问题的补充。
Refresh
备用修复 #1 - SQL Server 2008 R2(在 2012 上没有尝试过,但假设这会起作用)。
备用修复 #2
<DataSize>100</DataSize>
正如 Esc 所指出的,列大小更新会影响多维数据集本身的维度使用情况。您可以按照 Esc 的建议进行操作,也可以直接编辑 *.cube 文件 - 搜索更新的属性和相关的数据大小元素:<DataSize>100</DataSize>
当列大小发生变化时,我已经尝试了这两种修复方法,并且它们都有效。
In my case the problem was working on the cube on live server. If you are working on the cube live, connecting to the server this error message pops up. But when you are working on the cube as a solution saved on the computer you do not get the error message. So work on the cube locally and deploy after making changes.
在我的特定情况下,问题是因为我的查询是从 Oracle 读取的,并且硬编码的列有一个尾随空格(我的错误)。
我删除了尾随空格,为了更好地衡量,将硬编码值转换为CAST ('MasterSystem' as VarChar2(100)) as SOURCE
这解决了我的特定问题。
首先尝试简单的事情 - 这些年来我已经发生过几次这种情况。
正如其他人所提到的,带有尾随空格的数据也可能是原因。检查它们:SELECT col FROM tbl WHERE col LIKE '% '
遇到同样的问题,Esc的答案也可以是一个解决方案。原因更“隐藏”,更明显的解决方案“刷新”和“数据类型差异检查”在我的情况下没有任何好处。
我没有找到“调试”这个问题的正确方法。
我遇到了这个问题。通过删除前导和尾随空格以及函数rtrim和ltrim 来决定问题。
我也遇到了同样的问题,刷新数据源也没用。我有一个事实分区的物化引用维度,这给了我错误。在我的 DEV 环境中,我取消选中 Materialize并处理了没有错误的分区。
奇怪的是,现在我可以为相同的关系启用物化,它仍然可以毫无问题地处理。