OLE DB无法将值转换为请求的数据类型

时间:2019-05-21 10:00:37

标签: sql-server ssms ssas cube

以下情况发生在SQL Server Edition(2017 Standard),SSAS版本为14.0.6.443

通过处理过程中的错误消息可以最好地总结问题:

  

后端数据库访问模块中的错误。 OLE DB无法将值转换为“ dbo_Fact_Purchase_Order_Detail0_2”列所请求的数据类型。

     

OLAP存储引擎中的错误:在处理SSAS PRD数据库中“多维数据集名称”多维数据集的“供应商交易”度量值组的“事实采购订单明细”分区时发生错误。

错误似乎与值0.000000的值有关,该值比没有问题的值高。

  • 源表字段是数字(26,10)

  • 此目标多维数据集字段是Double

  • 在多维数据集中,我们对源字段求和

该错误发生在多维数据集中的每个度量值组上

情况

我们正忙于安装新的开发和生产sql服务器。 ETL(使用SSIS)已经可以正常工作了,我们开始处理多维数据集,但是效果并不理想。

在Visual Studio中,我们可以将相同的SSAS多维数据集项目部署到新服务器和旧服务器。旧服务器能够处理多维数据集,但是新服务器无法处理多维数据集。 基础数据源视图仅在服务器名称上有所不同

在谷歌搜索和测试后,我们认为/认为该问题与归类或语言设置有关:因为我们在Google上发现了以下可能的有用信息:

我们尝试了以下方法:

  • 在源数据库上执行为多维数据集处理生成的查询:成功

  • 将SSAS项目部署并处理到旧的生产和开发阶段 服务器:成功

  • 在度量值组的分区属性中使用自定义查询排除了0.000000值。 成功处理

  • 比较新旧服务器和SSAS数据库的设置相同。 它们相同

  • 仅处理维度为成功

  • 的维度
  • 将运行SSAS服务代理的用户更改为我的个人帐户,处理不成功

  • 比较上面发布的doc.microsoft.com链接提出的所有设置没有区别

  • 备份旧生产服务器上的活动多维数据集并将其还原到新生产服务器,并处理多维数据集处理不成功

  • 刷新数据源视图没有帮助

  • 检查表和数据库中的无效值所有值均有效

  • 将0.000000更改为NULL没有帮助

  • 在数据源的连接字符串中添加了Packet Size=32767未成功

  • 我们还尝试使用本地OLE DB \ SQL Server本机客户端11.0 代替SQL Server的本地OLE DB \ Microsoft OLE DB提供程序,没有给出任何积极的结果。

  • 将值从Decimal转换为Float。 SSAS中使用的FloatDouble是相同的,但是仍然在同一错误上处理失败

ssas生成的用于处理多维数据集的查询

SELECT 
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_0] AS [dbo_Fact_Purchase_Order_Detail0_0],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_1] AS [dbo_Fact_Purchase_Order_Detail0_1],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_2] AS [dbo_Fact_Purchase_Order_Detail0_2],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_3] AS [dbo_Fact_Purchase_Order_Detail0_3],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_4] AS [dbo_Fact_Purchase_Order_Detail0_4],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_5] AS [dbo_Fact_Purchase_Order_Detail0_5],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_6] AS [dbo_Fact_Purchase_Order_Detail0_6],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_7] AS [dbo_Fact_Purchase_Order_Detail0_7],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_8] AS [dbo_Fact_Purchase_Order_Detail0_8],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_9] AS [dbo_Fact_Purchase_Order_Detail0_9],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_10] AS [dbo_Fact_Purchase_Order_Detail0_10],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_DetailSK_DateTransaction0_11] AS [dbo_Fact_Purchase_Order_DetailSK_DateTransaction0_11],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_12] AS [dbo_Fact_Purchase_Order_Detail0_12],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_13] AS [dbo_Fact_Purchase_Order_Detail0_13],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_14] AS [dbo_Fact_Purchase_Order_Detail0_14],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_15] AS [dbo_Fact_Purchase_Order_Detail0_15],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_16] AS [dbo_Fact_Purchase_Order_Detail0_16],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_17] AS [dbo_Fact_Purchase_Order_Detail0_17],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_18] AS [dbo_Fact_Purchase_Order_Detail0_18],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_19] AS [dbo_Fact_Purchase_Order_Detail0_19],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_20] AS [dbo_Fact_Purchase_Order_Detail0_20],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_21] AS [dbo_Fact_Purchase_Order_Detail0_21],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_22] AS [dbo_Fact_Purchase_Order_Detail0_22],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_Detail0_23] AS [dbo_Fact_Purchase_Order_Detail0_23],
[dbo_Fact_Purchase_Order_Detail].[dbo_Fact_Purchase_Order_DetailSK_ActualShipDate0_24] AS [dbo_Fact_Purchase_Order_DetailSK_ActualShipDate0_24]
FROM 
(
SELECT 1   AS 
[dbo_Fact_Purchase_Order_Detail0_0],[AmountReceived (PDAREC)] AS [dbo_Fact_Purchase_Order_Detail0_1],
[AmountUnitVolume (PDITVL)] AS [dbo_Fact_Purchase_Order_Detail0_2],
[UnitsPrimaryQtyOrder (PDPQOR)] AS [dbo_Fact_Purchase_Order_Detail0_3],
[AmountUnitWeight (PDITWT)] AS [dbo_Fact_Purchase_Order_Detail0_4],
[AmountExtendedCost (PDECST)] AS [dbo_Fact_Purchase_Order_Detail0_5],
[CumulativeReceived (PDCREC)] AS [dbo_Fact_Purchase_Order_Detail0_6],
[UnitsTransactionQty (PDUORG)] AS [dbo_Fact_Purchase_Order_Detail0_7],
[AmountExtendedPrice (PDAEXP)] AS [dbo_Fact_Purchase_Order_Detail0_8],
[UnitsSecondaryQtyOr (PDSQOR)] AS [dbo_Fact_Purchase_Order_Detail0_9],
[AddressNumber (PDAN8)] AS [dbo_Fact_Purchase_Order_Detail0_10],
[SK_DateTransaction] AS [dbo_Fact_Purchase_Order_DetailSK_DateTransaction0_11],
[CompanyKeyOrderNo (PDKCOO)] AS [dbo_Fact_Purchase_Order_Detail0_12],
[DocumentOrderInvoiceE (PDDOCO)] AS [dbo_Fact_Purchase_Order_Detail0_13],
[OrderType (PDDCTO)] AS [dbo_Fact_Purchase_Order_Detail0_14],
[OrderSuffix (PDSFXO)] AS [dbo_Fact_Purchase_Order_Detail0_15],
[LineNumber (PDLNID)] AS [dbo_Fact_Purchase_Order_Detail0_16],[Location (PDLOCN)] AS [dbo_Fact_Purchase_Order_Detail0_17],
[CostCenter (PDMCU)] AS [dbo_Fact_Purchase_Order_Detail0_18],
[AddressNumberShipTo (PDSHAN)] AS [dbo_Fact_Purchase_Order_Detail0_19],
[Company (PDCO)] AS [dbo_Fact_Purchase_Order_Detail0_20],
[OutsideReverence1 (PDVR04)] AS [dbo_Fact_Purchase_Order_Detail0_21],
[IdentifierShortItem (PDITM)] AS [dbo_Fact_Purchase_Order_Detail0_22],
[ProjectNumber (PDPRJM)] AS [dbo_Fact_Purchase_Order_Detail0_23],
[SK_ActualShipDate] AS [dbo_Fact_Purchase_Order_DetailSK_ActualShipDate0_24]
FROM [dbo].[Fact_Purchase_Order_Detail]
)
 AS [dbo_Fact_Purchase_Order_Detail]```


We expected that the cube should process successfully since we have the same database structure as data source view and we could not found any differentiation in the general and connection properties between the old and new servers.

0 个答案:

没有答案