我正在寻找一个pragma,我可以用来隐藏当select的WHERE条件中使用的字段在数据库中包含NULL值时生成的编译器警告。
阅读了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子句替换了这个select,它也隐藏了警告,因为编译器显然无法检查基于文本的位置。
答案 0 :(得分:3)
如果您使用此代码段运行扩展语法检查程序,您将看到它明确指出没有编译指示来抑制此情况(强调我的):
计划:< program_name>行:< row>
语法检查警告
领域" BWART"在WHERE条件中使用可能包含NULL值
内部消息代码:MESSAGE GYT
无法使用编译指示或伪注释