修改表子句错误。这是怎么了?我怀疑这与拥有唯一的密钥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.
这在文档中已经存在很长时间了:
不能将关键字段用作HASHED或排序表。
@vwegert是对的,你不能改变哈希和排序表中的键值。另一方面,你的错误是语法上的。如果您更改:
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会更清楚地显示错误:
不能使用"MODIFY"更改搜索键。包含"COLB"
检查文档。在'MODIFY'语句中指定条件(或包含'WHERE')时,不应该使用'TABLE'这个词。
如果你仍然想修改关键字段,那么把内部表改成'STANDARD',像这样:
DATA mytable1 LIKE STANDARD TABLE OF line1 WITH KEY colb.
希望能有所帮助。