ecpgは、Cプログラム用の埋め込みSQLプリプロセッサです。 SQL呼び出しを特殊な関数呼び出しに置き換えることによって、埋め込みSQL文を含むCプログラムを、通常のCコードに変換します。 これにより、出力ファイルは、どのようなCコンパイラツールを使用しても処理することができます。
ecpgは、コマンドラインで指定される各入力ファイルを、対応するCの出力ファイルに変換します。
入力ファイルに.pgcという拡張子を付けておくと、出力ファイル名の拡張子が.cに置き換えられるので便利です。
入力ファイルの拡張子が.pgcでない場合、そのファイルのフルネームの末尾に.cを追加したものが出力ファイル名となります。
出力ファイル名は、-o
オプションによって上書きすることもできます。
このリファレンスページでは、埋め込みSQL言語については説明しません。 第30章を参照してください。
ecpgは、以下のコマンドライン引数を受け付けます。
-c
SQLコードから有効なCコードを自動的に生成します。 現在、このオプションはEXEC SQL TYPEに対して使用できます。
-C mode
互換モードを設定します。 modeはINFORMIXもしくはINFORMIX_SEのどちらかを取ることができます。
-D symbol
Cプリプロセッサのシンボルを定義します。
-I directory
追加のインクルード用パスを指定します。 これは、EXEC SQL INCLUDEを使用してインクルードされるファイルを検索する際に使用されます。 デフォルトでは順に、.(現行ディレクトリ)、/usr/local/include、コンパイル時に定義されるPostgreSQLのインクルードディレクトリ(デフォルトでは/usr/local/pgsql/include)、/usr/includeです。
-o filename
ecpgが、全ての出力をfilenameに書き込むことを指定します。
-r option
実行時の動作を選択します。 現時点では、optionはno_indicatorのみを取ることができます。
-t
トランザクションの自動コミットを有効にします。 このモードでは、各SQLコマンドは明示的なトランザクションブロックの内部にない限り、自動的にコミットされます。 デフォルトのモードでは、EXEC SQL COMMITが発行された時にのみコマンドがコミットされます。
-v
バージョンやインクルード用パスなどの補足情報を表示します。
--help
コマンドの使用法についての簡単な説明を表示し、終了します。
--version
バージョン情報を出力し、終了します。
前処理されたCコードファイルをコンパイルする際、コンパイラはPostgreSQLのインクルードディレクトリ内にあるECPGヘッダファイルを検索可能でなければなりません。
そのため、コンパイラの呼び出し時に、-I
オプションを使用しなければならない可能性があります(例:-I/usr/local/pgsql/include)。
SQLが埋め込まれたCプログラムには、-L/usr/local/pgsql/lib -lecpgリンカオプションを使用するなどして、libecpgライブラリをリンクする必要があります。
ご使用のシステムにおいて、上記の2つに対応するディレクトリを調べるには、pg_configを使用します。