REFRESH .
此语句删除内部表itab中的所有行。这释放了表所需的内存空间,但初始内存需求除外。操作数itab必须是内部表。
REFRESH itab语句对内部表的影响与CLEAR itab[]相同。如果内部表itab有一个标题行,则初始化表体,而不是标题行。
如果内部表itab没有标题行,则REFRESH itab与CLEAR itab具有相同的效果。
FREE dobj
FREE语句从内部表中删除所有行,并释放这些行占用的完整内存区域,包括初始内存需求。
如果dobj是一个带有标题行的内部表,则FREE仅影响表体,而不影响标题行。与CLEAR不同,使用FREE时,初始内存需求不会一直占用。当内存不足时,这可能是必要的。
一般来说,只有当整个内存完全释放并且不再需要内部表或至少不会立即再次填充时,才应使用FREE。
在ABAP调试器的内存分析断点处,可以观察到FREE释放的已分配绑定内存比CLEAR释放的更多。
CLEAR dobj [ {WITH val [IN {CHARACTER|BYTE} MODE] }
| {WITH NULL} ].
如果dobj是一个有标题行的内部表,则必须指定dobj[]来删除这些行,否则只删除标题行。
在CLEAR的情况下,内部表的初始内存请求不会被释放,这可能会对在内部表中插入新行时的性能产生积极影响。只有在需要释放尽可能多的内存时,才需要声明FREE。