[ABAP编程宝典]内表的填充(复制、插入和添加)

复制内表

简单赋值没有构造表达式的情况下,会复制另一个内表的内容(注意,现有的内容将被删除)。以下示例假定源表和目标表具有兼容的行类型。使用内联声明有助于避免为适当类型的额外内表声明。

itab = itab2.

DATA(itab3) = itab.
FINAL(itab4) = itab.

💡 注意

内表只能分配给内表。

如果内表的行类型兼容或可转换,内表之间可以相互分配。

如果目标表被分配了一个唯一主键或辅助键的重复项,赋值操作可能会触发不可捕获的异常。

使用 INSERT 和 APPEND 语句填充内表

可以使用 ABAP 关键字 INSERTAPPEND 向内表添加行。

使用 APPEND 和 INSERT 的注意事项

  • APPEND
    • 总是在内表的末尾添加行。
    • 对于标准表,使用索引管理行时没有问题。使用该语句时,系统字段 sy-tabix 会设置为最近添加行的索引。sy-tabix 总是相对于主表索引设置索引。
    • 无法用于哈希表。对于排序表,仅在匹配排序顺序且未创建唯一主表键的重复条目时,才追加行。因此,向排序表添加行时应使用 INSERT
  • INSERT

💡 注意: 对于唯一主表键,表不能有重复键的条目。如果插入重复条目,插入失败并且系统字段 sy-subrc 设置为 4

  • 可以用于在表的特定位置添加行(通过指定目标索引)。这样,所有后续行会向下移动一个位置。
    • 未指定位置时,在标准表中添加行到表末尾。然而,使用 INSERT 时,sy-tabix 不会像 APPEND 那样设置。在排序表中,行会自动插入到正确的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李威威wiwi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值