DB2 から PostgreSQL へのアプリケーション移行

アプリケーションが、メインフレームの DB2 アプリケーションからメインフレームの特性に依存しない PostgreSQL アプリケーションに移行する過程で、コンパイル時に必要な DIALECT 設定と文プレフィックスの組み合わせは移行段階に応じて変わるため、DB2 から PostgreSQL への最適な移行を実現できます。次のシナリオでは、アプリケーション移行の各段階およびそれらの段階で推奨される DIALECT および文プレフィックス設定を紹介します。
段階 1 - すべての文が DB2 互換
推奨設定は以下のとおりです。
DIALECT 設定 文プレフィックス
MAINFRAME None
プリプロセッサは、すべての文を DB2 文として処理しようとし、HCOPG によって有効な DB2 文として認識されない PostgreSQL 互換の文に対して DB2 互換性の警告を発行します。DB2 互換性の警告が発生せずにコンパイルされる文は、QUALIFIER コンパイラ指令によって修飾されている文のみです。
段階 2 - 一部の PostgreSQL 固有の文以外、大半の文がメインフレーム互換
推奨設定は以下のとおりです。
DIALECT 設定 文プレフィックス
MAINFRAME PostgreSQL 互換のフラグを設定する文で [NODIALECT]

[NODIALECT] プレフィックスは、PostgreSQL とのみ互換性のある文で DB2 互換性の警告が発生することを抑制します。DIALECT=MAINFRAME の設定により、これらの文は QUALIFIER コンパイラ指令オプションで修飾されていないため、ソース コードで文を明示的に修飾するか、接続ポイントのデフォルト スキーマで PostgreSQL が正しいスキーマを指すようにしてください。

段階 3 - 大半の文が PostgreSQL 互換
推奨設定は以下のとおりです。
DIALECT 設定 文プレフィックス
MIXED SQL(CHECK) に失敗する文および PostgreSQL への変換の準備ができていない文で [MAINFRAME]

この段階で [NODIALECT] プレフィックスを除去できます (必須ではありません)。

段階 4 - ファースト クラスの PostgreSQL アプリケーション
推奨設定は以下のとおりです。
DIALECT 設定 文プレフィックス
NONE None

前の段階で指定した文プレフィックス [MAINFRAME] および [NODIALECT] をすべて除去します。これらのプレフィックスは、DIALECT を NONE に設定した場合にコンパイル エラーの原因になります。