我正在尋找一個編譯指示我可以用來隱藏在select的WHERE條件中使用的字段可能包含NULL值時生成的編譯器警告在數據庫中。Pragma要隱藏警告:where條件中使用的字段可能包含空值
讀過SAP註釋1088403後,我意識到可能存在的問題,但由於我在WHERE子句中使用範圍而不是單個值,因此我無法應用此處提出的解決方案。在這兩種情況下,這都是從未發現有缺陷的遺留代碼(據我們所知),並且不久將被替換。
但是,當我重寫程序的其他部分,我想要禁用此警告與pragma。任何人都可以告訴我,我能用這個編譯指示嗎?
示例選擇:
SELECT d~matnr d~werks d~lgort d~bdmng k~maktx
INTO CORRESPONDING FIELDS OF TABLE itab
FROM resb AS d
INNER JOIN makt AS k ON d~matnr = k~matnr
WHERE
k~spras = syst-langu
AND d~werks = p_werks
AND d~matnr IN s_matnr
AND d~bwart IN r_bwart.
請注意,我因爲使用這種替代選擇一個動態where子句也隱藏了,因爲編譯器警告顯然無法檢查基於文本的地方。
能否請您提供一個小小的一段代碼被抑制?另外,附註'#EC *'適用於所有內容。 –
我已經按要求添加了一個示例select。至於你提到的編譯指示,我相信它實際上是一個僞造的註釋來禁用擴展程序檢查中的警告。這些僞註釋被編譯指示廢棄,並且在一個程序中同時使用這兩個註釋會觸發無法停用的EPC警告(根據ABAP參考資料)。此外,我遇到的警告不是由EPC生成的,而是編譯時警告,此僞描述似乎不會被禁用。 – Lilienthal