ABAP SELECT语句添加字段后报‘逗号无前导冒号’错误求助
问题分析与解决
你遇到的错误是因为ABAP语法要求:当通过SELECT语句同时选取多个字段,并将它们赋值到多个独立变量时,变量列表的每个变量前必须加冒号:,也可以在整个变量列表的最前面统一加一个冒号(ABAP允许这种批量简写方式)。
你的错误写法里,INTO ( lv_pernr, lv_begda )缺少了冒号,导致语法校验失败。
修正后的代码
SELECT pernr, begda INTO (:lv_pernr, :lv_begda) FROM pa0000 WHERE NOT ( begda GT lv_qryper_endda OR endda LT lv_qryper_begda ) AND massn <> '10'.
也可以用批量冒号的简写写法(效果完全一致):
SELECT pernr, begda INTO :lv_pernr, :lv_begda FROM pa0000 WHERE NOT ( begda GT lv_qryper_endda OR endda LT lv_qryper_begda ) AND massn <> '10'.
补充说明
ABAP中INTO子句的核心语法规则:
- 仅赋值给单个变量时,直接写
INTO lv_pernr即可,无需冒号 - 赋值给多个变量或结构体时,变量/结构体前必须加冒号,用来明确区分数据库字段与ABAP程序变量
内容的提问来源于stack exchange,提问作者Gonville Bromhead
相关产品推荐
相关产品推荐

