【学习笔记】SAP ABAP——内表

news/2024/11/8 3:08:33/

内表定义

​ 内表是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)不唯一唯一或者不唯一唯一
建议使用的访问方法索引访问关键字访问只能使用关键字访问

http://www.ppmy.cn/news/1545235.html

相关文章

Axure设计之三级联动选择器教程(中继器)

使用Axure设计三级联动选择器(如省市区选择器)时,可以利用中继器的数据存储和动态交互功能来实现。下面介绍中继器三级联动选择器设计的教程: 一、效果展示: 1、在三级联动选择器中,首先选择省份&#xff…

QML----复制指定下标的ListModel数据

我现在有一个写好的listmodel,我需要从里边抽取35个数据作为展示 头文件 #ifndef GETONEPAGESIZEMEMBERLISTMODEL_H #define GETONEPAGESIZEMEMBERLISTMODEL_H#include <QObject> #include <QAbstractListModel> #include <QDebug> #include "mylistm…

七.numpy模块

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库&#xff0c;支持大量的维度数组与矩阵运算&#xff0c;此外也针对数组运算提供大量的数学函数库。 NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发&#xff0c;2005 年&#xff0c;Travis Oliphant…

江西省技能培训平台(逆向破解登录国密SM2)

江西省技能培训平台(逆向破解登录) 登录破解(国密sm2加密方式) 请求接口 https://api.cloud.wozhipei.com/auth/user/v1/login 使用身份证和密码登录发现有password加密&#xff0c;好开始逆向js 全局搜索发现使用国密SM2进行加密 模拟算法 js 使用js进行模拟算法 <…

Java项目实战II基于Spring Boot的便利店信息管理系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在快节奏的…

基于C++的决策树C4.5机器学习算法(不调包)

目前玩机器学习的小伙伴&#xff0c;上来就是使用现有的sklearn机器学习包&#xff0c;写两行代码&#xff0c;调调参数就能跑起来&#xff0c;看似方便&#xff0c;实则有时不利于个人能力发展&#xff0c;要知道现在公司需要的算法工程师&#xff0c;不仅仅只是会调参&#x…

分布式中常见的问题及其解决办法

分布式中常见的问题及其解决办法 一、多个微服务要操作同一个存储在redis中的变量&#xff0c;如何确保这个变量的正确性 答&#xff1a; 在多个微服务操作同一个存储在Redis中的变量时&#xff0c;可以采取以下措施来确保变量的正确性&#xff1a; 1、使用Redis的事务&…

JAVA题目笔记(十三) 爬虫

一、网络爬取 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.util.regex.Matcher; import java.util.regex.Pattern;public class Main {public static v…