我有一个映射,在源表和目标表中,我使用聚合器将一些金额相加,字段定义为decimal(15,2)。表在Teradata中。当我在没有下推的情况下运行工作流时,我得到了正确的数字,例如16,11。如果我选中下推选项(完全下推),我发现插入到目标表中的结果丢失了小数(在我们的示例中为16.00)。我猜测,当数据到达聚合器时,它仍然具有小数部分,并且在聚合器之后丢失了小数部分,因为如果它已经丢失了小数部分,结果将小于16。我已经查看了sql表单的下推,它似乎没有将任何内容转换为整数。我还尝试在表达式和聚合器中转换数据,以强制Teradata转换为正确的转换,但我得到了相同的结果。有人知道这可能是什么原因吗?
非常感谢你提前
发布于 2019-01-15 17:57:55
完全下推会导致运行SQL语句,而Informatica不会处理数据,因此您需要详细查看查询。
您可以尝试检查一些有限数量的数据、某些子集上的查询,以使分析更容易。
请检查是否已启用Allow Temporary View for Pushdown会话属性。如果是这样,请特别注意PM_视图的创建。查看定义。
发布于 2019-01-16 19:29:38
为了防止任何人遇到类似的问题,问题是将null传递给联合,然后将该字段解释为char。
https://stackoverflow.com/questions/54144979
复制相似问题