定义range的方式

2021-11-24 16:02发布


          点击此处--->   EasySAP.com 群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)

我们在从数据库表获取数据的时候经常会根据某个范围来获取,大致方式如下:

    select * into table A

        from B

        where b~a in C.

这里的C是一个范围,我们通常用以下的方式来定义,


RANGESlr_matnr FOR mara-matnr.

DATAr_matnr TYPE RANGE OF mara-matnr.

这两种定义方式是不一样的,区别的地方截图给大家:

image.png

用ranges方式定义的数据会自动生成一个工作区,而type range of 则不会。

在后面的代码中我们要注意,ranges 定义的 lr_matnr 在赋值的时候指的是工作区,要赋值多个数据时要使用 lr_matnr[]。

赋值对比如下:

lr_matnr = VALUE #( sign 'I' option = 'EQ' low = '101' ).


r_matnr = VALUE #( sign 'I' option = 'EQ' ( low = '101' )
                                            ( low = '102' )
                                            ( low = '103' )
                                            ( low = '104' ) ).

lr_matnr[] = VALUE #( sign 'I' option = 'EQ' ( low = '101' )
                                             ( low = '102' )
                                             ( low = '103' )
                                             ( low = '104' ) ).


在平常开发过程中,我们定义数据一定要确定好工作区和内表的区别,尽可能增多代码的可读性,以后大家一起努力吧。


赞赏支持