关于列绑定的SSAS多维数据集处理错误

时间:2013-02-25 16:56:03

标签: sql-server ssas sql-server-2012 cube

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

但是,它没有说明哪个列绑定太小。

如何调试?

10 个答案:

答案 0 :(得分:7)

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

更新:由于该答案似乎仍然相关,我想我会添加一个屏幕截图,显示您可能遇到此问题的区域。如果由于某种原因您使用字符串进行Dimension-to-Fact链接,则可能会受到增加的大小的影响。并且上面描述了解决方案。这是Dimension Attribute上Key,Name和Value Columns问题的补充。 Dimension Usage screen

答案 1 :(得分:4)

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

Dimension Data Type Discrepancy Check

这解决了我的问题。

答案 2 :(得分:2)

  1. 使用SQL Server数据工具打开您的SSAS数据库。
  2. 打开SSAS数据库的数据源视图。
  3. 右键单击空白区域,然后单击Refresh
  4. 将打开一个窗口,显示对基础数据模型的所有更改。
  5. Documentation

答案 3 :(得分:1)

备用修复#1 - SQL Server 2008 R2(2012年没有尝试过,但假设这样可行)。

  1. 更新/刷新您的DSV。 请注意所有已更改的列,以便您查看。
  2. 打开使用已更改列的每个维度。找到相关属性并展开属性 KeyColumns NameColumn ValueColumn
  3. 查看每个属性的DataSize属性,如果这些属性与DSV中的值不匹配,请进行相应编辑。 Property Sheet
  4. 替代修复#2

    1. 打开受影响的* .dim文件并搜索列名称/绑定。
    2. 更改数据大小元素:<DataSize>100</DataSize>
    3. 正如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)

首先尝试的简单方法 - 多年来我已多次发生这种情况。

  1. 转到数据源视图并刷新(可能看起来不是什么事情,但这是一种很好的做法)
  2. 修改尺寸。删除问题属性,然后从数据源视图列表中再次将其拖放。
  3. 重新处理完毕。
  4. 正如其他人所提到的,带有尾随空格的数据也是原因。检查一下:SELECT col FROM tbl WHERE col LIKE '% '