ABAP几种内表的操作

2021-05-24 浏览
这次的程序用到了哈希表,在这里,也顺便总结一下ABAP三种内表的特点。

   ABAP中有三类内表,标准表,排序表和哈希表。

三种内表介绍

   标准表的每一行对应一个逻辑索引-SY-TABIX,填充内表的时候,可以将数据附加在现有行

之后,也可以插入到指定的位置,程序对内表行的寻址操作可通过关键字或索引进行。在对表

进行插入删除等操作时,各数据行在内存中的位置不变,系统仅重新排列各数据行的索引值。

   排序表也有逻辑索引,不同的是排序表总是按其表关键字升序排列后再进行存储,也就是在

内存中的位置发生改变。

   哈希表没有索引,只有关键字。系统用哈希算法管理表中的数据,因而其寻址一个数据行的时间与表的行数无关。

表关键字 内表关键字在访问内表以及排序时非常之关键,定义时通过With key来定义,这也是一个可选项,即如果没有显式声明,那么内表中的非数值型栏位都为Key。 还有Unique的问题,即唯一性关键字声明,标准表不能使用此关键字,排序表可以用UNIQUE 或NON-UNIQUE,哈希表不能使用NON-UNIQUE,只能使用唯一表关键字。

行访问方式

                    标准表                    排序表                 哈希表

索引访问             允许                       允许                 不允许

关键字访问           允许                       允许                  允许

相同值关键字行       可重复                   可重复或不可重复       不可重复 

推荐访问方式       主要通过索引               主要通过关键字        只能通过关键字  

 

具体到使用什么类型的内表     

    对于一个小于100行的内表,且很少使用关键字操作,则使用标准表没有效率问题;数据量

比较巨大,切不存在重复行,只需使用关键字访问的内表应定义为哈希表;排序表适用于运行

期内必须以某种排序形式出现的内表。

免费注册