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

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

?

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

时间: 2024-10-16 11:31:08

ABAP基础篇1 内表的相关文章

mysql基础篇 - 数据库及表的修改和删除

基础篇 - 数据库及表的修改和删除 修改和删除 一.实验简介 本节实验中,我们将学习并实践如何对数据库的内容做修改,删除,重命名等操作. 二.实验准备 在正式开始本实验内容之前,需要先下载相关代码. 该代码可以新建两个数据库,分别名为 test_01 和mysql_shiyan ,并在 mysql_shiyan 数据库中建 4 个表(department,employee,project,table_1),然后向其中插入数据. 具体操作如下,首先输入命令进入 /home/shiyanlou/De

ABAP基础篇2 数据类型

基本数据类型列表: 1.长度可变的内置类型(String.XString)1)string类型 在ABAP程序中,string类型是长度无限的字符型字段,可以和CHAR ,D,T ,I,N (F和P未测试)  直接转换,但是有些字符串的操作语句可以使用CHAR 类型,不允许使用string 类型,比如:SHIFT在系统内部,长度可变的内置类型(String.XString)是通过引用实际动态的数据对象的固定内存地址来进行操作,因而这两种内置类型和引用类型一样,属于纵深类型.2).xstring类

java基础篇---JSP内置对象详解

在JSP中为了简化用户的开发,提供了九个内置对象,这些内置对象将由容器为用户进行实例化,而用户直接使用即可,而不用像在java中那样,必须通过关键字new进行实例化对象之后才可以使用. No. 内置对象 类型 描述 1 pageContext javax.servlet.jsp.PageContext JSP的页面容器 2 request javax.servlet.http.HttpServletRequest 得到用户的请求信息 3 response javax.servlet.http.H

ABAP 内表 详解

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4293475.html 老式的内表类型定义... 214 基于基本类型内表类型... 214 基于结构体类型内表类型... 215 老式的内表对象创建... 215 参照现有内表类型或内表对象来创建... 215 参照现有结构类型或结构对象来

MySQL基础篇(02):从五个维度出发,审视表结构设计

本文源码:GitHub·点这里 || GitEE·点这里 一.数据场景 1.表结构简介 任何工具类的东西都是为了解决某个场景下的问题,比如Redis缓存系统热点数据,ClickHouse解决海量数据的实时分析,MySQL关系型数据库存储结构化数据.数据的存储则需要设计对应的表结构,清楚的表结构,有助于快速开发业务,和理解系统.表结构的设计通常从下面几个方面考虑:业务场景.设计规范.表结构.字段属性.数据管理. 2.用户场景 例如存储用户基础信息数据,通常都会下面几个相关表结构:用户信息表.单点登

[ABAP技术总结]内表

目录导航 声明:原创作品,转载时请注明文章来自SAP师太博客,并以超链接形式标明文章原始出处,否则将追究法律责任!原文出自: 3.      内表... 33 3.1.           LOOP AT循环内表... 33 3.1.1.        SUM.. 34 3.1.2.        AT... ENDAT. 34 3.1.3.        自已实现AT... ENDAT. 37 3.2.           在LOOP AT中修改当前内表行... 39 3.2.1.      

ABAP内表数据做层次XML输出

*&---------------------------------------------------------------------**& Report  Z_BARRY_TEST_XML*&---------------------------------------------------------------------**& 46C - ECC6 通用*&----------------------------------------------

ABAP 内表访问表达式的性能

内表访问表达式是ABAP 7.4中引入的重要特性,可以使语句变得更加简洁.美观.那么它的读写性能怎么样呢?我进行了一点点测试. 读取 测试代码,使用三种方式读取同一内表,分别是read table关键字.表达式和read table...binary search: REPORT ztest_read. DATA: BEGIN OF gs_test, index TYPE i, des TYPE string, END OF gs_test. DATA: gt_test LIKE STANDAR

ABAP 动态生成内表的几种方法

最近要写个程序,既有更新的,也有删除的,需要涉及到很多系统表,如果一个表一个表进行更新或者删除太慢了,于是就想通过创建动态内表来实现这些功能,在网上找了一些资料,经过多次尝试,终于测试成功了.网上讲述的创建动态内表的方法大致有两种.我做了一下测试,源代码附后.在这里提醒大家一点,在做动态更新程序的时候,要注意两点:      1.使用modify (p_tabname) from <dyn_wa>. 的时候,一定要确定要更新的字段是不是系统表的关键字段,如果是关键字段的话,需要先删除这条记录,