在ABAP代码中的MODIFY 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.

这在文档中已经存在很长时间了:

不能将关键字段用作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.

希望能有所帮助。

相关内容

  • 没有找到相关文章

最新更新