6

这是我在处理 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.

但是,它没有告诉我哪些列绑定太小。

我该如何调试?

4

10 回答 10

8

这个错误信息已经让我发疯了好几个小时。我已经发现哪一列增加了它的长度并更新了源中的数据表,它现在显示了正确的长度。但错误只是不断弹出。事实证明,该字段用于多维数据集的“维度使用”选项卡上的事实到维度链接。并且当您刷新源时,为该链接创建的绑定不会刷新。解决方法是删除(将关系类型更改为“无关系”)并重新创建该链接。

更新:由于该答案似乎仍然相关,我想我会添加一个屏幕截图,显示您可能遇到此问题的区域。如果出于某种原因您将字符串用于 Dimension-to-Fact 链接,则它可能会受到大小增加的影响。解决方案如上所述。这是维度属性上的键、名称和值列问题的补充。 维度使用屏幕

于 2014-08-19T19:17:51.783 回答
4

ESC是正确的。从 CodePlex 安装 BIDS Helper。右键单击Dimensions 文件夹并运行Data Discrepancy Check。

维度数据类型差异检查

这解决了我的问题。

于 2014-09-19T01:49:53.290 回答
2
  1. 使用 SQL Server Data Tools 打开您的 SSAS 数据库。
  2. 打开 SSAS 数据库的数据源视图。
  3. 右键单击空白区域,然后单击Refresh
  4. 将打开一个窗口并显示对基础数据模型的所有更改。

文档

于 2013-02-26T16:31:00.610 回答
2

备用修复 #1 - SQL Server 2008 R2(在 2012 上没有尝试过,但假设这会起作用)。

  1. 更新/刷新您的 DSV。 记下任何更改的列,以便您查看。
  2. 打开使用更改的列的每个维度。找到相关属性并展开属性KeyColumnsNameColumnValueColumn
  3. 查看每个属性的 DataSize 属性,如果这些属性与 DSV 中的值不匹配,请进行相应的编辑。 属性表

备用修复 #2

  1. 打开受影响的 *.dim 文件并搜索您的列名/绑定。
  2. 更改数据大小元素:<DataSize>100</DataSize>

正如 Esc 所指出的,列大小更新会影响多维数据集本身的维度使用情况。您可以按照 Esc 的建议进行操作,也可以直接编辑 *.cube 文件 - 搜索更新的属性和相关的数据大小元素:<DataSize>100</DataSize>

当列大小发生变化时,我已经尝试了这两种修复方法,并且它们都有效。

于 2016-06-28T19:48:24.863 回答
0

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.

于 2013-10-28T12:55:49.323 回答
0

在我的特定情况下,问题是因为我的查询是从 Oracle 读取的,并且硬编码的列有一个尾随空格(我的错误)。

我删除了尾随空格,为了更好地衡量,将硬编码值转换为CAST ('MasterSystem' as VarChar2(100)) as SOURCE

这解决了我的特定问题。

于 2013-02-27T20:19:52.463 回答
0

首先尝试简单的事情 - 这些年来我已经发生过几次这种情况。

  1. 转到数据源视图并刷新(它可能看起来没有发生任何事情,但这是一个好习惯)
  2. 编辑维度。删除问题属性,然后从数据源视图列表中再次将其拖过来。
  3. 重新处理满。

正如其他人所提到的,带有尾随空格的数据也可能是原因。检查它们:SELECT col FROM tbl WHERE col LIKE '% '

于 2015-03-12T15:57:48.743 回答
0

遇到同样的问题,Esc的答案也可以是一个解决方案。原因更“隐藏”,更明显的解决方案“刷新”和“数据类型差异检查”在我的情况下没有任何好处。

我没有找到“调试”这个问题的正确方法。

于 2014-08-20T11:32:49.800 回答
0

我遇到了这个问题。通过删除前导和尾随空格以及函数rtrimltrim 来决定问题。

于 2015-02-04T09:25:50.253 回答
0

我也遇到了同样的问题,刷新数据源也没用。我有一个事实分区的物化引用维度,这给了我错误。在我的 DEV 环境中,我取消选中 Materialize并处理了没有错误的分区。
奇怪的是,现在我可以为相同的关系启用物化,它仍然可以毫无问题地处理。

于 2015-02-05T21:20:31.280 回答