CONVT_NO_NUMBER

来源:互联网 发布:天尚网络电视机顶盒 编辑:程序博客网 时间:2024/06/03 20:50

代码1:

DATASTLAN 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:

DATASTLAN TYPE STLAN VALUE 'A'.

IF STLAN '5'.
  WRITE 'YES'.
  ELSE.
     WRITE 'NO'.
ENDIF.

此时再去执行就不会dump了。

原创粉丝点击