Abap 隐藏警告的杂注:where条件中使用的字段可能包含空值

Abap 隐藏警告的杂注:where条件中使用的字段可能包含空值,abap,pragma,opensql,Abap,Pragma,Opensql,我正在寻找一个pragma,可以用来隐藏当select的WHERE条件中使用的字段在数据库中可能包含空值时生成的编译器警告 在阅读了SAP note 1088403之后,我知道此处可能存在的问题,但我无法应用此处建议的解决方案,因为我在WHERE子句中使用的是范围,而不是单个值。在任何一种情况下,这都是遗留代码,据我们所知,它从未被发现有缺陷,不久将被替换 然而,当我重写程序的其他部分时,我想用一个命令来禁用这个警告。有谁能告诉我,我可以用什么样的pragma来做这个 示例选择: SELECT

我正在寻找一个pragma,可以用来隐藏当select的WHERE条件中使用的字段在数据库中可能包含空值时生成的编译器警告

在阅读了SAP note 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.

请注意,我已经将此select替换为使用动态where子句的select,该子句还隐藏了警告,因为编译器显然无法检查基于文本的where。

如果对包含此代码段的程序运行扩展语法检查,您将看到它明确声明没有用于抑制此强调的杂注:

程序:行: 语法检查警告 WHERE条件中使用的字段BWART可能包含空值。 内部消息代码:消息GYT
无法使用pragma或伪注释抑制

请提供一小段代码好吗?此外,pragma EC*适用于所有内容。我根据要求添加了一个示例select。至于您提到的pragma,我相信它实际上是一个伪注释,用于禁用扩展程序检查中的警告。这些伪注释被pragmas废弃,在一个程序中同时使用这两个伪注释将触发EPC警告,根据ABAP引用,该警告无法停用。此外,我遇到的警告不是由EPC生成的,而是一个编译时警告,该伪注释似乎没有禁用。很高兴知道这里可以提到这一点,我将确保在将来检查它。