Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, コンパイラーおよびランタイム 移行ガイド

マクロ・プリプロセッサーとストリング

従来のコンパイラーでは、マクロ・プリプロセッサーはストリング内やコメント内で囲まれているテキスト以外はすべて大文字になりました。 けれども従来のコンパイラーでは '...' で区切られたテキストだけがストリングとして認識され、 "..." で区切られたテキストはストリングとしては認識されず、大文字になりました。

新しいコンパイラーでもデフォルトのプリプロセッサー・オプション CASE(UPPER) を指定すると、ストリング内やコメント内で囲まれたテキスト以外はすべて大文字になります。 しかし新しいコンパイラーでは、'...' および "..." のどちらで区切られたテキストもストリングとして認識され、どちらも大文字にはなりません。

SQL プリプロセッサーの前に マクロ・プリプロセッサーを実行し、SQL ステートメントに以下のようなコードがある場合には、この違いが問題を引き起こす可能性があります。

   WHERE "system" = 'Wilmer'

従来のコンパイラーでは、次のようになりました。

   WHERE "SYSTEM" = 'Wilmer'

しかし新しいコンパイラーでは、次のようになります。

   WHERE "system" = 'Wilmer'

おそらく、後者の場合は DB2 で生成したい結果とはならないでしょう。 その場合には、(前処理の前に) ソースを変更して、"..." で区切られたテキストを大文字にする必要があります。


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)