我有以下 SELECT 循环:
SELECT pernr
INTO lv_pernr
FROM pa0000
WHERE NOT ( begda GT lv_qryper_endda OR endda LT lv_qryper_begda )
AND massn <> '10'.
效果很好。添加一列
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'.
出现以下错误:
Komma ohne vorausgegangenen Doppelpunkt (nach SELECT ?) [逗号,前面没有冒号(SELECT 之后)]。
我做错了什么?
我从在线资源 [https://help.sap.com] 获取了如何解决问题的信息。 我希望将 SELECT 语句中的列放入列出的变量中。
您正在混合新旧(自版本 7.40 以来)SELECT 语法的功能。
旧语法在 SELECT 列表中的字段之间没有逗号,而新语法要求每个变量前面有
@
。
仍然允许使用旧语法,但是一旦您使用新语法的一项功能,解析器就会切换到新语法,并希望您在 SELECT 中执行其他所有操作也与其兼容。
旧语法中的 SELECT:
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:
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'.
顺便说一句,当我尝试在我们的系统中重现您的问题时,我收到了不同的错误消息。您使用的系统是否有可能版本状态远远落后?因为只有系统根本不理解新的 SQL 语法时,您发布的错误消息才有意义。这实际上不再是新的了。 (2013年发布7.40)。