如何使用SyncSort将数据转换为无符号打包格式?

时间:2013-06-25 13:25:07

标签: unsigned bcd syncsort

我需要将数字数据(存储为输入字符)转换为打包签名或打包无符号格式。我可以使用“PD”格式转换为打包/签名,但是我很难获得未签名的打包数据。

例如,我需要一个像14723这样的ZD编号转换为:

042

173

使用PD,我得到了这个(很好):

0173

042C

有什么建议吗?我们在这家商店没有COBOL,并且依靠SyncSort来处理这些数据转换。我没有在SyncSort中看到“PK”选项,但我以前错过了一些东西!

1 个答案:

答案 0 :(得分:0)

所以你不需要一个压缩十进制数,它在低位半字节中总是有一个符号(即使F表示无符号)。你想要二进制编码十进制(BCD)。

//STEP0100 EXEC PGM=SORT 
//SYSOUT   DD SYSOUT=* 
//SORTOUT  DD SYSOUT=* 
//SYSIN    DD * 
  OPTION COPY 

  INREC IFTHEN=(WHEN=INIT,OVERLAY=(1,5,ZD,MUL,+10,TO=PD,LENGTH=4)),
        IFTHEN=(WHEN=INIT,BUILD=(1,3)) 
//SORTIN   DD * 
14723 

将以垂直十六进制给你:

042
173

要使用现有的BCD,请查看字段类型PD0