对于在源和目标中为 FLOAT 的字段,我应该在 Informatica 中保留什么数据类型?
What should I keep as datatype in Informatica for a field that is FLOAT in source and target?
我在 SQL 服务器中有一个数据类型为 FLOAT(53)
的字段。在 Informatica 中导入后,它变成 FLOAT(15)
.
我应该使用什么数据类型来获得最大可能的准确度?
好的,这里有很多问题。
- 检查此 doc 以了解 Informatica 中的可用数据类型
- 如果您想要“最大可能的精度”,您应该使用 DECIMAL :) FLOAT(甚至是 Double)- 不是精确的数据类型。它允许大数,它允许分数——但它不精确。实际上不可能代表0.1! :)
- 如果您使用 DECIMAL,只要不超过 15 位数字,您就会得到精确的数字。对于更大的数字,无论如何你最终都会得到 DOUBLE,除非...
- 您在会话属性中启用
HIGH PRECISION
。然后您将继续使用最多 38 位的精确 DECIMAL 数字。
- 如果超过 38 位数字,您最终会得到 non-precise DOUBLE。是的 - 即使启用
HIGH PRECISION
- 检查 this doc.
在你的情况下,我认为你应该使用 DOUBLE
- 你的 SQL 服务器中的 FLOAT
无论如何都不是精确类型。
This 也是对这个问题的一个很好的总结。
我在 SQL 服务器中有一个数据类型为 FLOAT(53)
的字段。在 Informatica 中导入后,它变成 FLOAT(15)
.
我应该使用什么数据类型来获得最大可能的准确度?
好的,这里有很多问题。
- 检查此 doc 以了解 Informatica 中的可用数据类型
- 如果您想要“最大可能的精度”,您应该使用 DECIMAL :) FLOAT(甚至是 Double)- 不是精确的数据类型。它允许大数,它允许分数——但它不精确。实际上不可能代表0.1! :)
- 如果您使用 DECIMAL,只要不超过 15 位数字,您就会得到精确的数字。对于更大的数字,无论如何你最终都会得到 DOUBLE,除非...
- 您在会话属性中启用
HIGH PRECISION
。然后您将继续使用最多 38 位的精确 DECIMAL 数字。 - 如果超过 38 位数字,您最终会得到 non-precise DOUBLE。是的 - 即使启用
HIGH PRECISION
- 检查 this doc.
在你的情况下,我认为你应该使用 DOUBLE
- 你的 SQL 服务器中的 FLOAT
无论如何都不是精确类型。
This 也是对这个问题的一个很好的总结。