ABAP代码中的MODIFY TABLE子句出错

时间:2015-08-04 13:04:59

标签: abap

modify table子句出错。这里有什么问题。 我怀疑它与拥有一个独特的key-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.

2 个答案:

答案 0 :(得分:1)

这已经在documentation很长一段时间了:

  

您不能将关键字段用作带有HASHED或的HASHED的TRANSPORTING字段   分类表。

答案 1 :(得分:0)

@vwegert是对的,您无法更改HASHED和SORTED表中的键值。另一方面,你的错误是语法错误。如果你改变:

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会更清楚地向您显示错误:

  

您无法使用&#34; MODIFY&#34;更改搜索键。 &#34; COLB&#34;包含在内   在&#34; MYTABLE1&#34;。

的表格键中

检查documentation。在修改&#39;中指定条件(或包括&#39; WHERE&#39;)时声明你不应该使用“&#39; TABLE&#39;。

这个词

如果您仍想修改关键字段,请将内部表格更改为&#39; STANDARD&#39;像这样:

DATA mytable1 LIKE STANDARD TABLE OF line1 WITH KEY colb.

希望它有所帮助。