以下代码有问题:-
C eval aaCHNO=%ucs2('0000000000')
C** move w_Chano aaCHNO
C Evalr aaCHNO= %ucs2(%editc(w_Chano:'X'))定义:
AACHNO Char(10) CCSID(1200)
W_CHANO Packed(6,0) 在AACHNO期待:- 0000123456但得到'bbbb123456‘在哪里b=blank为什么?
我怎样才能得到我想要的结果?干杯,杰姆格
发布于 2018-03-07 12:55:50
操作代码EVALR不像MOVE那样工作,而是像MOVE(P)那样工作。为了获得您想要的行为,您必须使用%SUBST()或将'0's连接到您的值前面,如下所示:
C Evalr aaCHNO = %ucs2('0000000000') + %ucs2(%editc(w_Chano:'X'))或自由格式使用:
evalr aaCHNO = %ucs2('0000000000') + %ucs2(%editc(w_Chano:'X'));注意:--有几个构造实际上没有附加类型,所以它们被定义为char()。字符常量就是其中之一。另一个是数据结构。当您使用UCS2数据时,您必须记住这一点并转换常量,并且只使用显式定义为UCS2的字段或子字段。否则,就会发生转换。
https://stackoverflow.com/questions/49148606
复制相似问题