将大数存储为十进制值时出现错误的im映射

2020-09-24 23:32发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我目前在一个项目中,我们...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我目前在一个项目中,我们必须使用DataServices在某些列中存储大值。 列的数据类型为十进制(30,0)。

为了了解我的问题,我将其简化了:

我创建了一个带有" test_id"和" test_number"列的测试文件,以及我们数据库中具有相同列的表。 在查询中,我像这样对" test_number"进行了映射:100000000000000000000000000000 * 2 + 1000000000000000000000000000 * 2因为'202000000000000000000000000000'是我在数据库中需要的值。

不幸的是,这没有用。 我收到以下错误:

[Query:q_test_decimal]列的无效映射表达式。 附加信息:<数字的最大位数为<28>。 您试图存储值或常量<1000000000000000000000000000>,其<29>位数字超过最大值。 1个错误,0个警告。 检查并修复语法,然后重试该操作。 (BODI-1112394)>。 (BODI-1111081)

当我直接使用202000000000000000000000000000进行映射时,一切正常。 但是,只要输入上面的内容,就会出现错误...

简化的DataFlow:

映射和错误消息:

感谢您的帮助!

(10.7 kB)
1条回答
何必丶何苦呢
2020-09-25 00:05

有关我的环境的更多详细信息:我安装了64位版本的DataServices,并且笔记本电脑的系统类型是基于x64的PC。 这些信息可能会有所帮助,因为当我使用其他笔记本电脑执行上述工作时,一切正常。

我发现的另一个主题是,当我使用'100000000000000000000000000000 * 2 + 1000000000000000000000000000.00 * 2'进行映射时,一切都很好。

因此,问题似乎在于加法中使用的第二个数字必须恰好具有30个小数位,以便DataServices正确执行操作。 但是从我的角度来看,这是一个非常奇怪的行为。 而且当用另一台笔记本电脑执行作业时,我不需要在逗号后面添加第二个数字的位置...

也许有人可以为我提供上述补充信息。

亲切的问候,

乔纳斯

一周热门 更多>