带压缩数字的 System i 命令行 RPG CALL - 如何格式化

System i command line RPG CALL with packed numeric - how to format

如果 RPG 程序参数定义为 PACKED(11,0)

CALL MYPGM parm(x'12345678901f')

给出十进制数据错误。

消息 ID MCH1202 原因 。 . . . . : packed 或 zoned
的符号或数字代码 十进制操作数错误。有效符号为十六进制 A-F,有效数字范围为 十六进制 0-9。

在程序转储中,参数显示为:

PACKED(11,0)         12345678901.   
VALUE IN HEX         '12345678901F'X 

已用谷歌搜索但找不到有关打包字段格式的简单说明。

最好编写一个将参数作为数字或字符作为参数并将其转换为打包的包装程序。

如果问题确实出在参数上,您可以通过执行以下解决方法来解决此问题。

在您的程序中添加调试断点 INZSR 并进行调用 mypgm parm(' ')。然后,您可以在调试模式下使用 EVAL 添加正确的值。