SAP ABAP——内表(一)【内表概要介绍】

简介: 本文是SAP ABAP【内表】文章系列的开篇,主要对内表进行简单的介绍,将从概要,分类以及比较三个方面进行介绍

本文是SAP ABAP【内表】文章系列的开篇,主要对内表进行简单的介绍,将从概要,分类以及比较三个方面进行介绍



内表概要

内表定义

     内表是SAP ABAP中最具有影响力且最重要的功能之一,简而言之,用一句话概括内表的定义就是:内表是可以在程序内部定义并且使用的表,属于本地表。如下图展示出了参照数据库表sflight定义的内表的结构

8adac97c8f65cdc07508d18753e0169.png

内表与数据库表区别

      内表和数据库表的很大区别在于:数据库表中存放的数据是永久的;而内表是动态数组,内表中存放的数据是临时的,只有当执行程序时才会占用内存,程序关闭时即释放内存。内表可以包含的数据件数为内存大小所限制。

内表的作用

      一般来说针对数据库表中数据的操作,都要首先将数据库表中数据输出到内表中,再通过内表对数据进行处理,最后再更新回数据库表中,在这过程中,内表相当于起到一个中间桥梁的作用,极大地保护了数据库表中数据的安全性。



内表的分类

      在SAP ABAP中内表有三种类型,它们分别是标准表,排序表以及哈希表,下面将依次介绍三种表

标准表

      标准表是有顺次索引的树型结构内表,是利用索引查找内表行数据时易于使用的内表类型。标准表的关键字并非唯一,即标准表中不能使用WITH UNIQUE语句,只能使用WITH NON-UNIQUE语句。

排序表

      排序表是已经按照关键字排序好的内表类型,其拥有索引,也拥有关键字,可以通过索引或者关键字查询对应的行数据。与标准表不同,排序表可使用WITH UNIQUE语句且自带BINARY SEARCH(二分查找)功能。又因为排序表已经排序,所以使用SORT语句会报错。

哈希表

      哈希表没有顺次索引,只能用哈希值计算出的KEY值进行检索,哈希值用于直接读取哈希算法算出的内存地址中存储的数据。哈希表一定要使用WITH UNIQUE语句指定关键字。



不同内表速度比较及适用场景

    为了更加直观地展现三种内表的速度和适用场景,将其制作成比较表展现如下:

语句 标准表 排序表 哈希表
READ语句速度比较 速度慢 速度快 速度最快
APPEND语句速度比较 速度快 速度最慢 速度慢
用索引访问(INDEX Access) 不是
用关键字访问(KEY Access)
关键字(KEY VALUES) 不唯一 唯一或者不唯一 唯一
建议使用的访问方法 索引访问 关键字访问 只能使用关键字访问
目录
相关文章
SAP ABAP 程序调用设置成后台作业模式
ABAP 程序调用设置成后台作业模式
504 0
SAP ABAP 内表排序 动态字段排序
对于动态内表排序引用ABAP_SORTORDER_TAB
288 0
|
SQL
SAP ABAP-OPENSQL-数值函数简介
S4中针对OPENSQL新提供一些函数
139 0
|
SQL
SAP ABAP-OPENSQL-字符串函数介绍
S4中SQL新语法字符串函数
204 0
|
SQL
SAP ABAP-OPENSQL-日期/时间戳函数
S4提供针对OPENSQL一些新的SQL函数调用,本文展示相关函数的使用
630 0
SAP ABAP-删除工序示例代码
ABAP-删除工序示例代码
169 0
SAP ABAP 检查事务码权限
检查用户是否有自开发事务码的权限
153 0
|
BI
SAP ABAP在线预览文档对象的开发实现
应用场景:有些定制化开发(报表/功能增强等)完成之后,客户需要将其操作手册或者相关文档放在某个报表的初始画面,供实际操作者在线查阅,当然这个功能也同样类似于模板的下载,这里就以在线预览(直接打开)为例进行说明。
224 0
SAP ABAP字符串拼接保留空格
字符串操作保留空格
1056 0
SAP MM/FI_运费处理方式
常见的采购运费处理方式