获取错误 "Internal tables cannot be used as work areas" 方法内部



我是ABAP的新手。昨天我问了一个类似但不同的问题。

我将一个表(= table(复制到一个本地表(= localTable(并删除其中的所有重复项,这很好(前3个代码行(

现在,我想在这个本地表上循环,并将所有匹配的数据发送到具有INTO CORRESPONDING FIELDS OF的结构中——不幸的是,我总是收到以下错误:

Internal tables cannot be used as work areas.

信息:我正在一个方法内部工作!

这是我使用的代码:

DATA localTable TYPE STANDARD TABLE OF table. 
SELECT columnName FROM table INTO TABLE localTable.
DELETE ADJACENT DUPLICATES FROM localTable COMPARING columnName.
LOOP AT localTable ASSIGNING FIELD-SYMBOL(<fs_table>).
SELECT * FROM anotherTable as p
WHERE p~CN1 = @localVariable
AND p~CN2 = @<fs_table>-columnName
INTO CORRESPONDING FIELDS OF @exportStructure "<-- Here I always get my error
ENDSELECT.
ENDLOOP.

第一:我读到在使用命令DELETE ADJACENT DUPLICATES FROM localTable COMPARING columnName.之前必须对internal table进行排序,所以我在两者之间添加了以下代码行:

SORT localTable BY columnName ASCENDING.

第二:我使用的不是INTO CORRESPONDING FIELDS OF TABLE,而是APPENDING CORRESPONDING FIELDS OF TABLE,因为INTO用它自己覆盖每一行,所以我导出的结构中总共只有一行。

APPENDING每次我的陈述为真时都会添加一行新行。

相关内容

  • 没有找到相关文章

最新更新