ABAP 代码中的 MODIFY TABLE 子句出错
Error in MODIFY TABLE clause in ABAP code
修改 table 子句时出错。这里有什么问题。
我怀疑这与拥有唯一的密钥有关- colb.
DATA : BEGIN OF line1,
cola TYPE i,
colb TYPE i,
END OF line1.
DATA mytable1 LIKE HASHED TABLE OF line1 WITH UNIQUE KEY colb.
DO 4 TIMES.
line1-cola = sy-index.
line1-colb = sy-index ** 2.
INSERT line1 INTO TABLE mytable1.
ENDDO.
line1-colb = 80.
**MODIFY TABLE mytable1 FROM line1 TRANSPORTING colb
where (colb > 2) and (cola < 5).**
LOOP AT mytable1 INTO line1.
WRITE :/ line1-cola, line1-colb.
ENDLOOP.
Error:
".", "ASSIGNING <fs>", "REFERENCE INTO data-reference", or "ASSIGNING
<fs> CASTING" expected after "COLB".
Note: Error line is in bold. The error is shown in red.
这已经在 documentation 很长时间了:
You may not use a key field as a TRANSPORTING field with HASHED or
SORTED tables.
@vwegert 是对的,您不能更改 HASHED 和 SORTED table 中的键值。另一方面,您的错误是语法上的。如果你改变:
MODIFY TABLE mytable1 FROM line1 TRANSPORTING colb where colb > 2 and cola < 5.
对于
MODIFY mytable1 FROM line1 TRANSPORTING colb where colb > 2 and cola < 5. "'TABLE' word omitted
这也是一个语法错误,但是,SAP 会更清楚地显示错误:
You cannot change the search key using "MODIFY". "COLB" is contained
in the table key of "MYTABLE1".
勾选documentation。在 'MODIFY' 语句中指定条件(或包含 'WHERE')时,不应使用 'TABLE'.
一词
如果您仍想修改关键字段,则将内部 table 更改为 'STANDARD',如下所示:
DATA mytable1 LIKE STANDARD TABLE OF line1 WITH KEY colb.
希望对您有所帮助。
修改 table 子句时出错。这里有什么问题。 我怀疑这与拥有唯一的密钥有关- colb.
DATA : BEGIN OF line1,
cola TYPE i,
colb TYPE i,
END OF line1.
DATA mytable1 LIKE HASHED TABLE OF line1 WITH UNIQUE KEY colb.
DO 4 TIMES.
line1-cola = sy-index.
line1-colb = sy-index ** 2.
INSERT line1 INTO TABLE mytable1.
ENDDO.
line1-colb = 80.
**MODIFY TABLE mytable1 FROM line1 TRANSPORTING colb
where (colb > 2) and (cola < 5).**
LOOP AT mytable1 INTO line1.
WRITE :/ line1-cola, line1-colb.
ENDLOOP.
Error:
".", "ASSIGNING <fs>", "REFERENCE INTO data-reference", or "ASSIGNING
<fs> CASTING" expected after "COLB".
Note: Error line is in bold. The error is shown in red.
这已经在 documentation 很长时间了:
You may not use a key field as a TRANSPORTING field with HASHED or SORTED tables.
@vwegert 是对的,您不能更改 HASHED 和 SORTED table 中的键值。另一方面,您的错误是语法上的。如果你改变:
MODIFY TABLE mytable1 FROM line1 TRANSPORTING colb where colb > 2 and cola < 5.
对于
MODIFY mytable1 FROM line1 TRANSPORTING colb where colb > 2 and cola < 5. "'TABLE' word omitted
这也是一个语法错误,但是,SAP 会更清楚地显示错误:
You cannot change the search key using "MODIFY". "COLB" is contained in the table key of "MYTABLE1".
勾选documentation。在 'MODIFY' 语句中指定条件(或包含 'WHERE')时,不应使用 'TABLE'.
一词如果您仍想修改关键字段,则将内部 table 更改为 'STANDARD',如下所示:
DATA mytable1 LIKE STANDARD TABLE OF line1 WITH KEY colb.
希望对您有所帮助。