3

選択の WHERE 条件で使用されるフィールドにデータベース内の NULL 値が含まれている可能性がある場合に生成されるコンパイラ警告を非表示にするために使用できるプラグマを探しています。

SAP ノート 1088403 を読んで、ここで考えられる問題を認識していますが、WHERE 句で単一の値ではなく範囲を使用しているため、そこで提案されている解決策を適用できません。どちらの場合も、これは (私たちが知る限り) 欠陥があることが判明したことのないレガシー コードであり、間もなく置き換えられます。

ただし、プログラムの他のセクションを書き直しながら、プラグマを使用してこの警告を無効にしたいと考えています。これに使用できるプラグマを誰か教えてもらえますか?

選択例:

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 をチェックできないため、警告を非表示にする動的 where 句を使用して、この select を置き換えたことに注意してください。

4

1 に答える 1

3

このスニペットを含むプログラムに対して拡張構文チェックを実行すると、これを抑制するプラグマがないことが明確に示されていることがわかります (私の強調):

プログラム: <プログラム名> 行: <行>
構文チェック
の警告 WHERE 条件で使用されるフィールド "BWART" に NULL 値が含まれている可能性があります。
内部メッセージ コード: MESSAGE GYT
プラグマまたは疑似コメントを使用して抑制できません

于 2013-12-19T15:00:38.383 に答える