0

我在 Cobol Mainframe VSAM 源文件上的 PowerCenter Designer 中工作,需要知道其中的值Prec以及Scale我应该使用什么来获取PIC S9(9)V99 COMP-3...
一位提到 Informatica 的同事可以识别它PIC S9(9)V9(2) COMP-3,因此我必须使用Prec 11-定义该字段Scale 2,并且我这样做了,但是一旦数据被加载到 SQL 中的 Stage 表中,某些字段会显示某些列的奇怪符号,而其他列会显示预期值。

我还尝试添加一个表达式转换,以将从 Normalizer 获得的结果值除以 100,但它也没有按预期工作。

您对如何处理有任何想法吗?

4

2 回答 2

0

请记住,comp-3 字段表示该值已被压缩,因此如果您使用文本编辑器打开会显示那些奇怪的字符而不是特定数字,您可以使用扩展 PowerExchange 看到这些值

于 2018-08-27T13:27:09.393 回答
0

' pic s9(9)V99 COMP-3' 解释如下:

s——签名。9(9) 九位数字。V 隐含的小数点。99 -- 两位数字 comp-3 -- 压缩十进制。

在 informatica 中,这将是 ' prec 11 scale 2'。不记得您如何告诉 Power Center 其压缩十进制,但我知道您可以。

压缩十进制:每个字节中有两个十进制数字,最后一个半字节有一个特殊的符号字符。所以 +123456 被存储为十六进制 '0123456C'. ( +123.456 将被存储为完全相同的十六进制字符串——你只需要知道你期望的比例!)

于 2017-08-18T09:14:09.370 回答