码迷,mamicode.com
首页 > 其他好文 > 详细

ABAP基础篇1 内表

时间:2019-12-22 14:58:09      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:tor   sort   des   type   data   height   读取   顺序   har   





内表类型

 

abap 内表类型有三种:

  1. 标准表(一般ABAP程序中用的最多就是这种表)

  • 系统为该表的每一行数据生成一个逻辑索引,自己内部维护着行号(Index)的编码。表的键值不唯一,且没有按照表键自动进行排序,支持通过索引访问和键访问两种方式。填充标准表时可以插入到指定位置或现在有行之后,程序对内表的寻址操作可以通过关键字或索引进行。在对表进行插入删除等操作时,各数据行在内存中的物理位置不变,系统仅重新排列各数据行的索引值。当经常用索引访问表的时候就选择标准表。
    经常使用二分法方式读取内表,效率高。
    定义方法:TYPES/DATA:BEGIN OF gt_data like  STANDARD TABLE OF MARA.

  • 2.排序表(要指定KEY值)
    也有一个逻辑索引,不同之处是排序表总是按其表关键字升序排序后现进行存储,排序内表自己内部也维护着行号的编号,表的键值可以唯一或者不唯一,支持通过索引访问和键访问两种方式。如果经常使用键来访问数据,或者希望数据能够自动排序时,就用排序表。
    定义方法:TYPES/DATA:LIKE/TYPE SORTED TABLE OF .

  • 3.哈希表(要指定KEY值)
    哈希表通过哈希函数生成的表键来标识和快速访问表行,哈希表中的表键没有顺序,其值在表中必须唯一,只允许通过表键来访问哈希表。寻址一个数据行的所需时间与表行数无关。如果内表非常大而且希望用主键访问,就用哈希表。
    定义方法:TYPES/DATA:LIKE/TYPE HASHED TABLE OF .

  • 各种类型内表充许的访问方式(索引访问、关键字访问):
    标准内表主要是索引访问,
    排序内表主要是Key访问,
    而哈希内表只能通过Key来访问:

技术图片

在定义排序表与哈希表时,一定要指定索引类型与关键字(可以指定为WITH KEY DEFAULT KEY),否则编译通过不过。

 

DEFAULT KEY:默认标准Key为行结构中所有byte-type(x ,xstring, xsequence)类型与character-type(c, d, n, t, string, clike)类型的所有字段,其他一切类型都会被忽略;如果行结构中还有子结构,则该子结构中的所有前面提到的类型字段也会被抽取出来作为Key的一部分;内表类型的字段不会成为默认Key的一部分;如果没有byte-type、character-type类型字段,则默认是不会有Key,:

  • 4.INDEX/ANY TABLE通用型内表

除上面三种标准类型外,还有一般性类型,即索引表(INDEX TABLE)和任意表(ANY TABLE),
一般性类型可以用于类型定义中,但不能用于声明一个内表对象,因为它并没有指明任何明确的表类型,因而系统无法确定对其操作方式。一般性类型还可以用于指明字段符号和接口参数的类型,其实际类型可能在运行期内才能够确定。

技术图片

?

ABAP基础篇1 内表

标签:tor   sort   des   type   data   height   读取   顺序   har   

原文地址:https://www.cnblogs.com/rainysblog/p/12079464.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!