Workflow 源限定符允许值大于Informatica中定义的大小

Workflow 源限定符允许值大于Informatica中定义的大小,workflow,scale,precision,informatica,sqldatatypes,Workflow,Scale,Precision,Informatica,Sqldatatypes,我的一次非正式会议行为怪异。对于特定列,精度和刻度值分别定义为17,16,启用“高精度”处于启用状态。 根据精度和刻度值,它应该允许小数点前只有一位数的数字,但在我的会话中,它允许小数点前最多2位数,小数点前3位数失败,错误为无效数字 . 我很困惑为什么它允许2位数字,因为它也应该失败? 例:精度17,刻度16 1.4567--容许 12.4567--允许 123.4567--被拒绝 除此之外,我还注意到,在源代码中,该列的数据类型为number,但在源代码限定符中,同一列的数据类型为decim

我的一次非正式会议行为怪异。对于特定列,精度和刻度值分别定义为17,16,启用“高精度”处于启用状态。 根据精度和刻度值,它应该允许小数点前只有一位数的数字,但在我的会话中,它允许小数点前最多2位数,小数点前3位数失败,错误为无效数字 . 我很困惑为什么它允许2位数字,因为它也应该失败? 例:精度17,刻度16 1.4567--容许 12.4567--允许 123.4567--被拒绝

除此之外,我还注意到,在源代码中,该列的数据类型为number,但在源代码限定符中,同一列的数据类型为decimal。为什么会发生这种内部转换


有人能帮忙吗?

至于问题的第二部分:
源限定符
转换功能之一是将任何源数据类型转换为PowerCenter数据类型。无论使用什么源,
源限定符
都将转换数据类型。这样,您就得到了相同的数据类型,Orace和MS SQL Server之间的比较也不会有问题。

这就是“12.4567——允许”的情况。由于开启了高精度模式,infa将自动将十进制转换为双精度。Double是8字节的数据。所以,如果你设置了一些 col(11,9)并尝试插入1234567890.1,infa将失败。
摘要-
如果指定的精度大于最大位数,则数据集成服务会在高精度模式下将十进制值转换为双精度值

这是根据Infa文件

8 bytes (if high precision is off or precision is greater than 38) 
16 bytes (if precision <= 18 and high precision is on) 
20 bytes (if precision > 18 and <= 28) 
24 bytes (if precision > 28 and <= 38)   
8字节(如果高精度关闭或精度大于38)
16字节(如果精度为18和28以及