ABAP几种内表的操作
ABAP中有三类内表,标准表,排序表和哈希表。
三种内表介绍
标准表的每一行对应一个逻辑索引-SY-TABIX,填充内表的时候,可以将数据附加在现有行
之后,也可以插入到指定的位置,程序对内表行的寻址操作可通过关键字或索引进行。在对表
进行插入删除等操作时,各数据行在内存中的位置不变,系统仅重新排列各数据行的索引值。
排序表也有逻辑索引,不同的是排序表总是按其表关键字升序排列后再进行存储,也就是在
内存中的位置发生改变。
哈希表没有索引,只有关键字。系统用哈希算法管理表中的数据,因而其寻址一个数据行的时间与表的行数无关。
表关键字 内表关键字在访问内表以及排序时非常之关键,定义时通过With key来定义,这也是一个可选项,即如果没有显式声明,那么内表中的非数值型栏位都为Key。 还有Unique的问题,即唯一性关键字声明,标准表不能使用此关键字,排序表可以用UNIQUE 或NON-UNIQUE,哈希表不能使用NON-UNIQUE,只能使用唯一表关键字。
行访问方式
标准表 排序表 哈希表
索引访问 允许 允许 不允许
关键字访问 允许 允许 允许
相同值关键字行 可重复 可重复或不可重复 不可重复
推荐访问方式 主要通过索引 主要通过关键字 只能通过关键字
具体到使用什么类型的内表
对于一个小于100行的内表,且很少使用关键字操作,则使用标准表没有效率问题;数据量
比较巨大,切不存在重复行,只需使用关键字访问的内表应定义为哈希表;排序表适用于运行
期内必须以某种排序形式出现的内表。