我使用SELECT语句用大量的记录填充内部表。我是ABAP和OpenSQL的新手。我知道游标是如何工作的,在这种情况下为什么需要游标,但我似乎找不到任何好的例子来显示它们的正确实现。这是我正在使用的代码:
TYPES: BEGIN OF lty_it_ids,
iteration_id TYPE dat_itr_id,
END OF lty_it_ids.
DATA: lt_it_ids TYPE STANDARD TABLE OF lty_it_ids,
lt_records_to_delete TYPE STANDARD TABLE OF tab_01p.
SELECT 01r~iteration_id
INTO TABLE lt_it_ids
FROM tab_01r AS 01r INNER JOIN tab_01a AS 01a
ON 01r~iteration_id = 01a~iteration_id
WHERE 01a~collection_id = i_collection_id.
IF lt_it_ids IS NOT INITIAL.
SELECT * FROM tab_01p INTO CORRESPONDING FIELDS OF TABLE lt_records_to_delete
FOR ALL ENTRIES IN lt_it_ids
WHERE iteration_id = lt_it_ids-iteration_id AND collection_id = i_collection_id.
IF lt_records_to_delete IS NOT INITIAL.
DELETE tab_01p FROM TABLE lt_records_to_delete.
ENDIF.
ENDIF.在第一个SELECT语句中,我用一些与较大表的索引相对应的值填充了一个小的内部表。有了这些索引,我可以更快地搜索更大的表,找到我想要删除的所有条目。这是第二个SELECT语句,它填充了一个大型(几百万行)内部表。我想从数据库表中删除这个(lt_records_to_delete)内部表中的所有记录。
我可以以何种方式将游标引入到这段代码中,以便它以较小的批次选择和删除记录?
https://stackoverflow.com/questions/45347629
复制相似问题