プリプロセッサ指示子ecpgプリプロセッサがファイルを解析および処理する方法を変更することができる、プリプロセッサ指示子が複数あります。ファイルのインクルード埋め込みSQLプログラムに外部ファイルをインクルードするには、以下を使用します。"filename";埋め込みSQLプリプロセッサは、filename.hという名前のファイルを探し、その前処理を行い、最終的にC出力の中に含めます。このようにして、ヘッダファイル内の埋め込みSQL文が正しく扱われます。ecpgプリプロセッサは以下の順番で複数のディレクトリからファイルを検索します。"filename"が使われる場合、現在のディレクトリのみが検索されます。各ディレクトリの中で、プリプロセッサはまず指定されたファイル名を探します。見つからなければ(指定されたファイル名がこの接尾辞を持っていない限り)ファイル名に.hを付けて再検索します。INCLUDEは以下とは異なることに注意してください。<filename.h>このファイルにはSQLコマンド用前処理が行われないためです。当然ながら、他のヘッダファイルをインクルードするCの#includeディレクティブを使用することができます。INCLUDEコマンドの一部であったとしても、インクルードファイルの名前は大文字小文字が区別されます。defineおよびundef指示子Cで既知の#define指示子と同様、埋め込みSQLでも似たような概念を持ちます。value;このため、以下のように名前を定義することができます。HAVE_FEATURE;また、定数を定義することもできます。'abc';事前の定義を削除するにはundefを使用します。MYNUMBER;当然、Cの#defineや#undefを埋め込みSQLプログラムで使用することは可能です。違いは宣言した値がどこで評価されるかです。DEFINEを使用する場合、ecpgプリプロセッサがその定義を評価し、その値を置換します。MYNUMBER;と記載した場合、ecpgによる置換がすでに行われていますので、CコンパイラではMYNUMBERという名前や識別子を参照することはありません。埋め込みSQL問い合わせで使用する予定の定数に#defineを使用することはできませんので注意してください。この場合、埋め込みSQLプリプロセッサがこの宣言を参照することができないためです。以下の指示子を使用して、コンパイルするコード部分を選択することができます。nameで作成されていた場合に後続の行を処理します。nameで作成されていない場合に後続の行を処理します。nameで導入されたセクションの代替セクションを開始します。nameで作成されている場合に代替セクションを開始します。endif;代替セクションを終了します。埋め込みSQLプログラムの。