更新:應該撤消該問題,該語法是正確的。顯然,SAP通過語法定義了ABAP,然後通過純文本中的附加規則進行修改。我錯過了第二部分。ABAP 7.40,SELECT .. UP到n ROWS語法混淆
我在查看ABAP關鍵字文檔7.40,SELECT - > SELECT additions。對於另外UP TO N行,它給人的例子
DATA: wa_scustom TYPE scustom.
SELECT *
FROM scustom
WHERE custtype = 'B'
ORDER BY discount DESCENDING
INTO @wa_scustom
UP TO 3 ROWS.
ENDSELECT.
我驗證碼在SAP系統7.40,並得到了錯誤
第7行:「變成」無效點擊這裏。 ''預計
另一方面,下面的代碼被接受,儘管它沒有被文檔中給出的SELECT語法覆蓋:UP TO n ROWS應該在FROM之後。
SELECT COUNT(*) UP TO 1 ROWS
FROM MARC
WHERE matnr eq 100.
我們正在編寫一個工具,可以自動生成ABAP代碼,這將是很好知道什麼是合法的,哪些不是。是否有「權威」文件?一般來說,值得嘗試聯繫SAP的某人進行更正嗎? (你看,我對SAP世界有些陌生)如果是的話,那可能是誰?
嗯,我想我找到了關於第二個代碼片段的一些信息:根據ABAP關鍵字文檔7.31,給定的代碼是合法的。所以,也許SAP改變了語法,但讓解析器靜靜地接受舊的語法。 –
它看起來像abap編譯器希望在「/ group by/order by part」之前的「up to」指令。但是我還沒有找到任何有關這些規則的文件。 –
是的,這是通常的SAP政策。在最新的文檔中,它強制只使用最新的語法,但始終支持傳統語法。 – Suncatcher