CONVT_NO_NUMBER
来源:互联网 发布:天尚网络电视机顶盒 编辑:程序博客网 时间:2024/06/03 20:50
代码1:
DATA: STLAN TYPE STLAN VALUE 'A'.
IF STLAN = 5.
WRITE : 'YES'.
ELSE.
WRITE : 'NO'.
ENDIF.
上面代码执行时候会dump,报错 CONVT_NO_NUMBER ,这个 时候我只是在进行比较没有进行赋值为什么它会dump。
此时变量STLAN 的值为 字母 ‘A’,变量STLAN类型为CHAR,CHAR是最常用的类型啊怎么会这样?
是因为 5 是数值类型,比较的时候会进行强制类型转换,将CHAR类型转换成数值类型,这个时候字母 ‘A’ 转换成数值就会报错了。
将代码做一下优化,如下:
代码2:
DATA: STLAN TYPE STLAN VALUE 'A'.
IF STLAN = '5'.
WRITE : 'YES'.
ELSE.
WRITE : 'NO'.
ENDIF.
此时再去执行就不会dump了。