zoukankan      html  css  js  c++  java
  • ABAP基础篇1 内表





    内表类型

    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来访问:

    image174

    在定义排序表与哈希表时,一定要指定索引类型与关键字(可以指定为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),
    一般性类型可以用于类型定义中,但不能用于声明一个内表对象,因为它并没有指明任何明确的表类型,因而系统无法确定对其操作方式。一般性类型还可以用于指明字段符号和接口参数的类型,其实际类型可能在运行期内才能够确定。

    image176

  • 相关阅读:
    c#中的构造方法
    c# Dictionary拓展2个key得到1个value
    虚拟主机的提权两个小技巧
    teamviewer提权
    域渗透:mstsc连接记录清理
    linux之 vim 常用命令
    Linux之 find 命令学习
    域渗透:MS14-068
    学习:脱壳之Anti Dump和修复PE
    学习:KiUserExceptionDispatcher之寻找OEP
  • 原文地址:https://www.cnblogs.com/rainysblog/p/12079464.html
Copyright © 2011-2022 走看看