SELECT 时出错...FOR ALL ENTRIES 有货币字段

Error when SELECT...FOR ALL ENTRIES have currency fields

我收到这个错误:

In a SELECT access, the read file could not be placed in the target field provided.

执行这行代码时:

SELECT vbeln
       posnr
       matnr
       netpr
       netwr
       kondm
       FROM vbap INTO TABLE t_tab
       FOR ALL ENTRIES IN postab
       WHERE vbeln = postab-vbeln.

我一一尝试,每次我放一个货币字段都会触发这个转储。有人知道根本原因吗?

您的 t_tab 是如何申报的?它似乎被声明为一个结构,或者,组件顺序可能是错误的。尝试做出这样的声明:

DATA: postab LIKE TABLE OF vbap,
      t_tab  LIKE TABLE OF vbap.

并用这段代码替换 INTO 子句

FROM vbap INTO CORRESPONDING FIELDS OF TABLE t_tab

如果您在 t_tab 中的字段有其他名称,那么您选择的字段一定要与 as:

匹配
SELECT vbeln AS ....
   posnr AS ....
   matnr AS ....
   netpr
   netwr
   kondm
   FROM vbap INTO TABLE t_tab
   FOR ALL ENTRIES IN postab
   WHERE vbeln = postab-vbeln.

如果他们的名字相同,请尝试 INTO CORRESPONDING FIELDS OF TABLE
还要确保 t_tab 中的字段格式正确。