3

我正在寻找一个可以用来隐藏编译器警告时,当在选择的地方使用的字段可能包含数据库中的空值时,我可以用来隐藏编译器警告。

阅读 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.

请注意,我已经使用动态 where 子句替换了这个选择,该子句也隐藏了警告,因为编译器显然无法检查基于文本的位置。

4

1 回答 1

3

如果您对包含此代码段的程序运行扩展语法检查,您将看到它明确指出没有编译指示来抑制它(强调我的):

程序:<program_name> 行:<row>
语法检查警告
WHERE 条件中使用的字段“BWART”可能包含 NULL 值。
内部消息代码:MESSAGE GYT
无法使用编译指示或伪注释抑制

于 2013-12-19T15:00:38.383 回答