编程技术分享平台

网站首页 > 技术教程 正文

SAP ABAP编程基础-内表的操作二(abap 内表类型)

xnh888 2024-11-04 14:56:13 技术教程 29 ℃ 0 评论

对SAP内表进行数据读取操作时,每次只能读取一条数据到工作区(结构),ABAP似乎也没有提供从一个表读取多行数据的功能,所以一般的内表查询操作时循环读取内表中的每条记录,然后按条件比对记录。

1.按索引读取内表的一条记录
只能读取索引表,不能读取散列表。
READ TABLE gt_tab INDEX 1 INTO gs_tab.

2.按主键读取内表的一条记录
此时只能使用等于号进行查询,不能使用大于号小于号等逻辑判断符号。只能读取索引表。
READ TABLE gt_tab WITH TABLE KEY...INTO gs_tab.

3.按字段值读取内表的一条记录
READ TABLE gt_tab WITH KEY...INTO gs_tab.

4.使用二分查找法读取内表的一条记录
必须指定字段条件,且这些字段需事先进行由小到大的排序。二分法可以提高查询的速度。
READ TABLE gt_tab WITH KEY...INTO gs_tab BINARY SEARCH.

对于内表的操作,经常会用到”LOOP AT {internal table} INTO {work area}",LOOP从内表的第一条记录开始,循环取得内表的每一条记录到工作区,然后进一步处理。

标准表的清空
当确定内表不再使用时,需要进行数据的清空,以释放内存空间。
1.CLEAR的用法
清除内表的所有数据,可以释放内表数据所占的空间,但是不能释放内表的初始空间。

2.REFRESH的用法
只能用于内表的清空,不能清除变量和结构体变量,否则会报错。

3.FREE的用法
删除内表的所有数据,并释放内表数据所占的空间,但是不能释放内表的初始空间。

内表的赋值
内表变量与其他变量一样,可以进行赋值
1.当两个内表结构类型相同时,内表不带表头,可以使用以下方法进行赋值
MOVE gt_tab1 TO gt_tab2.
MOVE gt_tab1[] TO gt_tab2[].
gt_tab1 = gt_tab2.
gt_tab1[] = gt_tab2[].

2.当两个内表结构类型不相同时,使用MOVE-CORRESPONDING,对两个表变量名称相同的字段进行赋值。
MOVE-CORRESPONDING gt_tab1 to gt_tab2.




Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表