ABAP 内表总结-1

一、内表是什么

 

 

用处:当程序中处理有固定结构的数据时候,就需要使用内表,特别是内表是在程序中存储数据库表的载体

内表:Internal memory table 内存中的表,是外设(屏幕、磁盘,打印机等)和数据库表数据交换的中介。

 

 

注意:  在ABAP语言中不提供二维数组,内表相当于二维数组, 它是一个表示内存的二维数据结构(m行*n列)。与传统二维数组的区别,二维数组的m*n 在编译期就已经确定多少个房间了,而内表的行数量是可以动态拓展的.

     

 

 

二、内表的属性

 

      内表和其他ABAP数据结构一样,包括数据类型(data types)和数据对象(data objects)。内表类型是内表在程序或者字典库(ABAP dictionary)的抽象描述,可以用内表类型来创建一个具体的内表对象。

 

         ABAP中有两种数据类型:内表和结构体(structure)。一个内表的数据类型包括:行类型(line type)、主键(key)、表类型(table type)。

 

          (一)、Line type 内表行类型 

1.         确定行类型 就是确定行中的 字段 和 字段类型

2.         用结构体 或 透明表 可以作为内表的 行类型

3.         内表可以当成数组.

4.         采用只有一个字段的结构体 或 一个不可再分的类型作为行类型,此内表就相当于一个数组

   (二)、Key definition.键定义(和主键很像)

1.      Table key 表键

2.      Table key:unique(唯一) / non-unique(不唯一,区别数据库,可以有重复记录)

3.       Components :构成键的字段,顺序敏感 , 顺序不同  table key也就不一样

 

   (三)、Data access type 数据访问类型

1.         Index access根据行号访问

2.         Key access 根据table key访问

 

 

 

 

 

 

三、内表的三种类型

 

 

 

 

1.         Standard table

      适合通过index访问表的每条记录情形。访问时间和表的记录数目大小成线性关系。

      访问: index access(推荐) , key access

       Table key: non-unique

2.         Sorted table

       适合当你输入记录时就根据主键排序的情形。

       天生就有排序的功能,插入数据后就会按照 table key排序

       访问: index access , key access(推荐)

       Table key: unique / non-unique

 

      

 

3.         Hashed table

 

       适合于通过主键来访问操作表的记录的情形。无论表记录的多少,访问时间是常量。当你想要创建一个类似数据库表的内表时,就使用Hashed table。数据量相当大时考虑用这种内表。

       访问: only key access

       Table key :unique.

      

 

 

 

 

四、内表的操作

 

 

 

(一)、创建内表

 

 

 

     DATA: BEGIN OF TY_OUTLIST,

         USER       LIKE  AGR_USERS-UNAME,         "用户名

         NAME       LIKE  ADRP-NAME2,              "用户姓名

         DEPART     LIKE  ADCP-DEPARTMENT,         "部门

         ROLENAME   LIKE  AGR_USERS-AGR_NAME,      "用户角色

         ROLETEXT   LIKE  AGR_TEXTS-TEXT,          "角色描述

       END OF TY_OUTLIST.

DATA: T_OUTLIST LIKE STANDARD TABLE OF TY_OUTLIST WITH HEADER LINE.

 

 

 

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值