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