复制内表
简单赋值没有构造表达式的情况下,会复制另一个内表的内容(注意,现有的内容将被删除)。以下示例假定源表和目标表具有兼容的行类型。使用内联声明有助于避免为适当类型的额外内表声明。
itab = itab2.
DATA(itab3) = itab.
FINAL(itab4) = itab.
💡 注意
内表只能分配给内表。
如果内表的行类型兼容或可转换,内表之间可以相互分配。
如果目标表被分配了一个唯一主键或辅助键的重复项,赋值操作可能会触发不可捕获的异常。
使用 INSERT 和 APPEND 语句填充内表
可以使用 ABAP 关键字 INSERT
和 APPEND
向内表添加行。
使用 APPEND 和 INSERT 的注意事项
- APPEND
- 总是在内表的末尾添加行。
- 对于标准表,使用索引管理行时没有问题。使用该语句时,系统字段
sy-tabix
会设置为最近添加行的索引。sy-tabix
总是相对于主表索引设置索引。 - 无法用于哈希表。对于排序表,仅在匹配排序顺序且未创建唯一主表键的重复条目时,才追加行。因此,向排序表添加行时应使用
INSERT
。
- INSERT
💡 注意: 对于唯一主表键,表不能有重复键的条目。如果插入重复条目,插入失败并且系统字段
sy-subrc
设置为 4
- 可以用于在表的特定位置添加行(通过指定目标索引)。这样,所有后续行会向下移动一个位置。
- 未指定位置时,在标准表中添加行到表末尾。然而,使用
INSERT
时,sy-tabix
不会像APPEND
那样设置。在排序表中,行会自动插入到正确的位置。
- 未指定位置时,在标准表中添加行到表末尾。然而,使用