プログラムのコンパイル時のエラー メッセージ

DB2 LUW の使用には、メインフレーム DB2 の使用と比べた場合に 2 つの主な相違点があります。その 1 つは、プログラムをコンパイルするにはあらかじめデータベースに接続する必要があることです。メインフレーム DB2 では、DB2 がアクティブでない状態でプログラムを事前コンパイルできます。もう 1 つの大きな違いは、プログラムをコンパイルするには、プログラムで参照されるすべての行とテーブルをデータベースで作成しておく必要があることです。対照的に、メインフレーム DB2 ではその必要はありません。いずれの場合も、メインフレーム DB2 のプリコンパイラは SQL INCLUDE コピーブックの DECLARE TABLE 情報を使用して有効な構文を判定し、対照的に DB2 LUW では DB2 システム カタログの情報を使用して文の妥当性を検証します。またいずれも、DB2 の使用では SQL エラーが発生する場合があります。DB2 LUW は基本的に DB2 for z/OS と互換性がありますが、サポートされる DML 構文と機能、およびハードウェア / オペレーティング システム固有の特定の DDL 文の一部で例外的に互換性がない場合があります。DB2 for z/OS の SQL 文をサポート対象の DB2 LUW 構文に変換することで対処可能であれば、ホスト互換性オプションによって主な非互換性が解消される場合もあります。

また、プログラムのコンパイル中に無効な SQL 構文に遭遇すると、エラーに含まれる文ごとに SQL エラーが生成されます。SQL エラーに関連するテキストは、次のフォーマットで表示されます。

DB0100e SQLnnnnnn error-text

DB が DB2 ECM から生じたエラーを示す場合 (エラー番号は常に 0100)、e がエラーの重大度で、SQLnnnnnn が SQL エラー コードです (nnnnnn は 2 から 6 文字の間で変わります)。