ABAP学习笔记之三

127265914


这几天太忙了,都没有时间写了,今天抽空写了点,关于abap内表的操作的。

1.      内表的类型及定义:
(1).ANY TABLE:即任意表类型,此种定义方式只能在传递参数的时候定义。
例如:FORM XXX USING/CHANGING TYPE ANY TABLE .
(2).ANY TABLE包括了两种类型:INDEX TABLE和HASHED TABLE 。
《1》.INDEX TABLE:包括了STANDARD TABLE和SORTED TABLE
A.      STANDARD TABLE:其实就是一个线性表,通过key访问内表是线性查找的,也就是说,随着表中记录的增加,对表的操作的时间开销也相应的增加。
定义方法:TYPES/DATA: LIKE/TYPE STANDARD TABLE OF .
B.      SORTED TABLE:顾名思义,表中的记录是按照一定的顺序排列的。访问表的主要方式是表中定义的key,如果key不唯一,则选择index最小的那个。也可以通过index来访问排序表,如果你想通过index插入一条记录,系统会自动检查你插入的位置是否正确。所以,如果插入的时间比插入到标准表的时间会长。因此,尽量选择key来对排序表进行操作。
定义方法:TYPES/DATA: LIKE/TYPE SORTED TABLE OF .
《2》.HASHED TABLE:对哈希表只能用你定义的key进行操作,而不能使用index进行操作。因此,定义哈希表必须定义unique key 。注意:所有关于使用index操作表的语句都不能用于操作哈希表。例如:sort,loop等。
定义方法:TYPES/DATA: LIKE/TYPE HASHED TABLE OF .
2.      内表的操作:
(1).创建:
A. 定义一个结构,然后type/like这个结构
例如:
TYPES: BEGIN OF ,

…,

END OF .
DATA  TYPE STANDARD TABLE OF
WITH NON-UNIQUE DEFAULT KEY
INITIAL SIZE
WITH HEADER LINE.
B. type/like系统表或者数据库表或者结构
DATA  TYPE STANDARD TABLE OF <系统表名>
INITIAL SIZE
WITH HEADER LINE.
(2).添加数据:
A.APPEND:直接向表中添加数据
1. APPEND [wa TO|INITIAL LINE TO] itab[ASSIGNING |REFERENCE INTO dref].
2. APPEND LINES OF itab1 [FROM idx1] [TO idx2] TO itab2.
3. APPEND [wa TO] itab SORTED BY f [ASSIGNING
B.向表中插入数据:
1. INSERT [wa INTO|INITIAL LINE INTO] itab [INDEX idx] [ASSIGNING |REFERENCE INTO dref].
2. INSERT [wa INTO|INITIAL LINE INTO] TABLE itab [ASSIGNING |REFERENCE INTO dref].
3. INSERT LINES OF itab1 [FROM idx1] [TO idx2] INTO itab2 [INDEX idx3].
4. INSERT LINES OF itab1 [FROM idx1] [TO idx2] INTO TABLE itab2.
C.相同字段求和向表里添加:
Basic form
COLLECT [wa INTO] itab.
Extras:
1. … ASSIGNING
2. … REFERENCE INTO dref
3. … SORTED BY f
(3).删除数据:
1. DELETE itab.
2. DELETE TABLE itab WITH TABLE KEY k1 = v1 … kn = vn.
3. DELETE TABLE itab [FROM wa].
4. DELETE itab INDEX idx.
5. DELETE itab FROM idx1 TO idx2.
6. DELETE itab WHERE logexp.
7. DELETE ADJACENT DUPLICATES FROM itab.
(4).修改数据:
1. MODIFY itab [FROM wa] [INDEX idx] [ASSIGNING |REFERENCE INTO dref] [TRANSPORTING f1 ... fn].
2. MODIFY TABLE itab [FROM wa] [ASSIGNING |REFERENCE INTO dref] [TRANSPORTING f1 ... fn].
3. MODIFY itab [FROM wa] TRANSPORTING f1 … fn WHERE cond.


About The Author

从事SAP行业有些年头,对SAP技术稍有了解; 如无特别声明,本博客文章为原创,转载请注明; 博主MSN:xuchunbo0901@hotmail.com; 博主邮箱:bob.xu@abaptech.com。

No Comments

Leave A Reply


注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。

无觅相关文章插件,快速提升流量